brintos

brintos / llvm-project-archived public Read only

0
0
Text · 10.2 KiB · f183271 Raw
306 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn-mesa-mesa3d -mcpu=fiji -O0 -run-pass=legalizer %s -o - | FileCheck %s3 4---5name: ctpop_s8_s86body: |7  bb.0:8    liveins: $vgpr09    ; CHECK-LABEL: name: ctpop_s8_s810    ; CHECK: liveins: $vgpr011    ; CHECK-NEXT: {{  $}}12    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr013    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 25514    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]15    ; CHECK-NEXT: [[CTPOP:%[0-9]+]]:_(s32) = G_CTPOP [[AND]](s32)16    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY [[CTPOP]](s32)17    ; CHECK-NEXT: $vgpr0 = COPY [[COPY1]](s32)18    %0:_(s32) = COPY $vgpr019    %1:_(s8) = G_TRUNC %020    %2:_(s8) = G_CTPOP %121    %3:_(s32) = G_ZEXT %222    $vgpr0 = COPY %323...24 25---26name: ctpop_s9_s927body: |28  bb.0:29    liveins: $vgpr030    ; CHECK-LABEL: name: ctpop_s9_s931    ; CHECK: liveins: $vgpr032    ; CHECK-NEXT: {{  $}}33    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr034    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 51135    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]36    ; CHECK-NEXT: [[CTPOP:%[0-9]+]]:_(s32) = G_CTPOP [[AND]](s32)37    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY [[CTPOP]](s32)38    ; CHECK-NEXT: $vgpr0 = COPY [[COPY1]](s32)39    %0:_(s32) = COPY $vgpr040    %1:_(s9) = G_TRUNC %041    %2:_(s9) = G_CTPOP %142    %3:_(s32) = G_ZEXT %243    $vgpr0 = COPY %344...45 46---47name: ctpop_s32_s3248 49body: |50  bb.0:51    liveins: $vgpr052    ; CHECK-LABEL: name: ctpop_s32_s3253    ; CHECK: liveins: $vgpr054    ; CHECK-NEXT: {{  $}}55    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr056    ; CHECK-NEXT: [[CTPOP:%[0-9]+]]:_(s32) = G_CTPOP [[COPY]](s32)57    ; CHECK-NEXT: $vgpr0 = COPY [[CTPOP]](s32)58    %0:_(s32) = COPY $vgpr059    %1:_(s32) = G_CTPOP %060    $vgpr0 = COPY %161...62 63---64name: ctpop_s32_s6465 66body: |67  bb.0:68    liveins: $vgpr0_vgpr169    ; CHECK-LABEL: name: ctpop_s32_s6470    ; CHECK: liveins: $vgpr0_vgpr171    ; CHECK-NEXT: {{  $}}72    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $vgpr0_vgpr173    ; CHECK-NEXT: [[CTPOP:%[0-9]+]]:_(s32) = G_CTPOP [[COPY]](s64)74    ; CHECK-NEXT: $vgpr0 = COPY [[CTPOP]](s32)75    %0:_(s64) = COPY $vgpr0_vgpr176    %1:_(s32) = G_CTPOP %077    $vgpr0 = COPY %178...79 80---81name: ctpop_s64_s6482 83body: |84  bb.0:85    liveins: $vgpr0_vgpr186    ; CHECK-LABEL: name: ctpop_s64_s6487    ; CHECK: liveins: $vgpr0_vgpr188    ; CHECK-NEXT: {{  $}}89    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $vgpr0_vgpr190    ; CHECK-NEXT: [[CTPOP:%[0-9]+]]:_(s32) = G_CTPOP [[COPY]](s64)91    ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:_(s64) = G_ZEXT [[CTPOP]](s32)92    ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[ZEXT]](s64)93    %0:_(s64) = COPY $vgpr0_vgpr194    %1:_(s64) = G_CTPOP %095    $vgpr0_vgpr1 = COPY %196...97 98---99name: ctpop_s16_s32100 101body: |102  bb.0:103    liveins: $vgpr0104    ; CHECK-LABEL: name: ctpop_s16_s32105    ; CHECK: liveins: $vgpr0106    ; CHECK-NEXT: {{  $}}107    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0108    ; CHECK-NEXT: [[CTPOP:%[0-9]+]]:_(s32) = G_CTPOP [[COPY]](s32)109    ; CHECK-NEXT: $vgpr0 = COPY [[CTPOP]](s32)110    %0:_(s32) = COPY $vgpr0111    %1:_(s16) = G_CTPOP %0112    %2:_(s32) = G_ZEXT %1113    $vgpr0 = COPY %2114...115 116---117name: ctpop_s16_s16118 119body: |120  bb.0:121    liveins: $vgpr0122    ; CHECK-LABEL: name: ctpop_s16_s16123    ; CHECK: liveins: $vgpr0124    ; CHECK-NEXT: {{  $}}125    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0126    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535127    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]128    ; CHECK-NEXT: [[CTPOP:%[0-9]+]]:_(s32) = G_CTPOP [[AND]](s32)129    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY [[CTPOP]](s32)130    ; CHECK-NEXT: $vgpr0 = COPY [[COPY1]](s32)131    %0:_(s32) = COPY $vgpr0132    %1:_(s16) = G_TRUNC %0133    %2:_(s16) = G_CTPOP %1134    %3:_(s32) = G_ZEXT %2135    $vgpr0 = COPY %3136...137 138---139name: ctpop_v2s32_v2s32140 141body: |142  bb.0:143    liveins: $vgpr0_vgpr1144    ; CHECK-LABEL: name: ctpop_v2s32_v2s32145    ; CHECK: liveins: $vgpr0_vgpr1146    ; CHECK-NEXT: {{  $}}147    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s32>) = COPY $vgpr0_vgpr1148    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY]](<2 x s32>)149    ; CHECK-NEXT: [[CTPOP:%[0-9]+]]:_(s32) = G_CTPOP [[UV]](s32)150    ; CHECK-NEXT: [[CTPOP1:%[0-9]+]]:_(s32) = G_CTPOP [[UV1]](s32)151    ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[CTPOP]](s32), [[CTPOP1]](s32)152    ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[BUILD_VECTOR]](<2 x s32>)153    %0:_(<2 x s32>) = COPY $vgpr0_vgpr1154    %1:_(<2 x s32>) = G_CTPOP %0155    $vgpr0_vgpr1 = COPY %1156...157 158---159name: ctpop_v2s32_v2s64160 161body: |162  bb.0:163    liveins: $vgpr0_vgpr1_vgpr2_vgpr3164    ; CHECK-LABEL: name: ctpop_v2s32_v2s64165    ; CHECK: liveins: $vgpr0_vgpr1_vgpr2_vgpr3166    ; CHECK-NEXT: {{  $}}167    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s64>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3168    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s64), [[UV1:%[0-9]+]]:_(s64) = G_UNMERGE_VALUES [[COPY]](<2 x s64>)169    ; CHECK-NEXT: [[CTPOP:%[0-9]+]]:_(s32) = G_CTPOP [[UV]](s64)170    ; CHECK-NEXT: [[CTPOP1:%[0-9]+]]:_(s32) = G_CTPOP [[UV1]](s64)171    ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[CTPOP]](s32), [[CTPOP1]](s32)172    ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[BUILD_VECTOR]](<2 x s32>)173    %0:_(<2 x s64>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3174    %1:_(<2 x s32>) = G_CTPOP %0175    $vgpr0_vgpr1 = COPY %1176...177 178---179name: ctpop_v2s16_v2s16180 181body: |182  bb.0:183    liveins: $vgpr0184    ; CHECK-LABEL: name: ctpop_v2s16_v2s16185    ; CHECK: liveins: $vgpr0186    ; CHECK-NEXT: {{  $}}187    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s16>) = COPY $vgpr0188    ; CHECK-NEXT: [[BITCAST:%[0-9]+]]:_(s32) = G_BITCAST [[COPY]](<2 x s16>)189    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 16190    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s32) = G_LSHR [[BITCAST]], [[C]](s32)191    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535192    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[BITCAST]], [[C1]]193    ; CHECK-NEXT: [[CTPOP:%[0-9]+]]:_(s32) = G_CTPOP [[AND]](s32)194    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY [[CTPOP]](s32)195    ; CHECK-NEXT: [[CTPOP1:%[0-9]+]]:_(s32) = G_CTPOP [[LSHR]](s32)196    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY [[CTPOP1]](s32)197    ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[COPY2]], [[C]](s32)198    ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s32) = G_OR [[COPY1]], [[SHL]]199    ; CHECK-NEXT: [[BITCAST1:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[OR]](s32)200    ; CHECK-NEXT: $vgpr0 = COPY [[BITCAST1]](<2 x s16>)201    %0:_(<2 x s16>) = COPY $vgpr0202    %1:_(<2 x s16>) = G_CTPOP %0203    $vgpr0 = COPY %1204...205 206---207name: ctpop_s7_s7208 209body: |210  bb.0:211    liveins: $vgpr0212 213    ; CHECK-LABEL: name: ctpop_s7_s7214    ; CHECK: liveins: $vgpr0215    ; CHECK-NEXT: {{  $}}216    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0217    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 127218    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]219    ; CHECK-NEXT: [[CTPOP:%[0-9]+]]:_(s32) = G_CTPOP [[AND]](s32)220    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY [[CTPOP]](s32)221    ; CHECK-NEXT: $vgpr0 = COPY [[COPY1]](s32)222    %0:_(s32) = COPY $vgpr0223    %1:_(s7) = G_TRUNC %0224    %2:_(s7) = G_CTPOP %1225    %3:_(s32) = G_ZEXT %2226    $vgpr0 = COPY %3227...228 229---230name: ctpop_s33_s33231 232body: |233  bb.0:234    liveins: $vgpr0_vgpr1235 236    ; CHECK-LABEL: name: ctpop_s33_s33237    ; CHECK: liveins: $vgpr0_vgpr1238    ; CHECK-NEXT: {{  $}}239    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $vgpr0_vgpr1240    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 8589934591241    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C]]242    ; CHECK-NEXT: [[CTPOP:%[0-9]+]]:_(s32) = G_CTPOP [[AND]](s64)243    ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:_(s64) = G_ZEXT [[CTPOP]](s32)244    ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[ZEXT]](s64)245    %0:_(s64) = COPY $vgpr0_vgpr1246    %1:_(s33) = G_TRUNC %0247    %2:_(s33) = G_CTPOP %1248    %3:_(s64) = G_ANYEXT %2249    $vgpr0_vgpr1 = COPY %3250...251 252---253name: ctpop_s65_s65254body: |255  bb.0:256    liveins: $vgpr0_vgpr1_vgpr2257    ; CHECK-LABEL: name: ctpop_s65_s65258    ; CHECK: liveins: $vgpr0_vgpr1_vgpr2259    ; CHECK-NEXT: {{  $}}260    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s96) = COPY $vgpr0_vgpr1_vgpr2261    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY]](s96)262    ; CHECK-NEXT: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF263    ; CHECK-NEXT: [[MV:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[UV]](s32), [[UV1]](s32)264    ; CHECK-NEXT: [[MV1:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[UV2]](s32), [[DEF]](s32)265    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 -1266    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 1267    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[MV]], [[C]]268    ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s64) = G_AND [[MV1]], [[C1]]269    ; CHECK-NEXT: [[CTPOP:%[0-9]+]]:_(s32) = G_CTPOP [[AND]](s64)270    ; CHECK-NEXT: [[CTPOP1:%[0-9]+]]:_(s32) = G_CTPOP [[AND1]](s64)271    ; CHECK-NEXT: [[ADD:%[0-9]+]]:_(s32) = G_ADD [[CTPOP1]], [[CTPOP]]272    ; CHECK-NEXT: $vgpr0 = COPY [[ADD]](s32)273    %0:_(s96) = COPY $vgpr0_vgpr1_vgpr2274    %1:_(s65) = G_TRUNC %0275    %2:_(s65) = G_CTPOP %1276    %3:_(s32) = G_TRUNC %2277    $vgpr0 = COPY %3278...279 280---281name: ctpop_s32_s65282body: |283  bb.0:284    liveins: $vgpr0_vgpr1_vgpr2285    ; CHECK-LABEL: name: ctpop_s32_s65286    ; CHECK: liveins: $vgpr0_vgpr1_vgpr2287    ; CHECK-NEXT: {{  $}}288    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s96) = COPY $vgpr0_vgpr1_vgpr2289    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY]](s96)290    ; CHECK-NEXT: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF291    ; CHECK-NEXT: [[MV:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[UV]](s32), [[UV1]](s32)292    ; CHECK-NEXT: [[MV1:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[UV2]](s32), [[DEF]](s32)293    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 -1294    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 1295    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[MV]], [[C]]296    ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s64) = G_AND [[MV1]], [[C1]]297    ; CHECK-NEXT: [[CTPOP:%[0-9]+]]:_(s32) = G_CTPOP [[AND]](s64)298    ; CHECK-NEXT: [[CTPOP1:%[0-9]+]]:_(s32) = G_CTPOP [[AND1]](s64)299    ; CHECK-NEXT: [[ADD:%[0-9]+]]:_(s32) = G_ADD [[CTPOP1]], [[CTPOP]]300    ; CHECK-NEXT: $vgpr0 = COPY [[ADD]](s32)301    %0:_(s96) = COPY $vgpr0_vgpr1_vgpr2302    %1:_(s65) = G_TRUNC %0303    %2:_(s32) = G_CTPOP %1304    $vgpr0 = COPY %2305...306