brintos

brintos / llvm-project-archived public Read only

0
0
Text · 8.9 KiB · d954ba0 Raw
287 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn -mcpu=fiji -run-pass="amdgpu-regbankselect,amdgpu-regbanklegalize" %s -verify-machineinstrs -o - | FileCheck %s3 4---5name: anyext_s32_to_s64_s6legalized: true7 8body: |9  bb.0:10    liveins: $sgpr011    ; CHECK-LABEL: name: anyext_s32_to_s64_s12    ; CHECK: liveins: $sgpr013    ; CHECK-NEXT: {{  $}}14    ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr015    ; CHECK-NEXT: [[DEF:%[0-9]+]]:sgpr(s32) = G_IMPLICIT_DEF16    ; CHECK-NEXT: [[MV:%[0-9]+]]:sgpr(s64) = G_MERGE_VALUES [[COPY]](s32), [[DEF]](s32)17    %0:_(s32) = COPY $sgpr018    %1:_(s64) = G_ANYEXT %019...20 21---22name: anyext_s32_to_s64_v23legalized: true24 25body: |26  bb.0:27    liveins: $vgpr028    ; CHECK-LABEL: name: anyext_s32_to_s64_v29    ; CHECK: liveins: $vgpr030    ; CHECK-NEXT: {{  $}}31    ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr032    ; CHECK-NEXT: [[DEF:%[0-9]+]]:vgpr(s32) = G_IMPLICIT_DEF33    ; CHECK-NEXT: [[MV:%[0-9]+]]:vgpr(s64) = G_MERGE_VALUES [[COPY]](s32), [[DEF]](s32)34    %0:_(s32) = COPY $vgpr035    %1:_(s64) = G_ANYEXT %036...37 38---39name: anyext_s1_to_s16_scc40legalized: true41 42body: |43  bb.0:44    liveins: $sgpr0, $sgpr145    ; CHECK-LABEL: name: anyext_s1_to_s16_scc46    ; CHECK: liveins: $sgpr0, $sgpr147    ; CHECK-NEXT: {{  $}}48    ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr049    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr150    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY]](s32), [[COPY1]]51    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s16) = G_TRUNC [[ICMP]](s32)52    %0:_(s32) = COPY $sgpr053    %1:_(s32) = COPY $sgpr154    %2:_(s1) = G_ICMP intpred(eq), %0, %155    %3:_(s16) = G_ANYEXT %256...57 58---59name: anyext_s1_to_s32_scc60legalized: true61 62body: |63  bb.0:64    liveins: $sgpr0, $sgpr165    ; CHECK-LABEL: name: anyext_s1_to_s32_scc66    ; CHECK: liveins: $sgpr0, $sgpr167    ; CHECK-NEXT: {{  $}}68    ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr069    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr170    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY]](s32), [[COPY1]]71    ; CHECK-NEXT: S_ENDPGM 0, implicit [[ICMP]](s32)72    %0:_(s32) = COPY $sgpr073    %1:_(s32) = COPY $sgpr174    %2:_(s1) = G_ICMP intpred(eq), %0, %175    %3:_(s32) = G_ANYEXT %276    S_ENDPGM 0, implicit %377...78 79---80name: anyext_s1_to_s64_scc81legalized: true82 83body: |84  bb.0:85    liveins: $sgpr0, $sgpr186    ; CHECK-LABEL: name: anyext_s1_to_s64_scc87    ; CHECK: liveins: $sgpr0, $sgpr188    ; CHECK-NEXT: {{  $}}89    ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr090    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr191    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY]](s32), [[COPY1]]92    ; CHECK-NEXT: [[DEF:%[0-9]+]]:sgpr(s32) = G_IMPLICIT_DEF93    ; CHECK-NEXT: [[MV:%[0-9]+]]:sgpr(s64) = G_MERGE_VALUES [[ICMP]](s32), [[DEF]](s32)94    %0:_(s32) = COPY $sgpr095    %1:_(s32) = COPY $sgpr196    %2:_(s1) = G_ICMP intpred(eq), %0, %197    %3:_(s64) = G_ANYEXT %298...99 100---101name: anyext_s1_to_s16_vcc102legalized: true103 104body: |105  bb.0:106    liveins: $vgpr0, $vgpr1107    ; CHECK-LABEL: name: anyext_s1_to_s16_vcc108    ; CHECK: liveins: $vgpr0, $vgpr1109    ; CHECK-NEXT: {{  $}}110    ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0111    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr1112    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(eq), [[COPY]](s32), [[COPY1]]113    ; CHECK-NEXT: [[C:%[0-9]+]]:vgpr(s16) = G_CONSTANT i16 1114    ; CHECK-NEXT: [[C1:%[0-9]+]]:vgpr(s16) = G_CONSTANT i16 0115    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:vgpr(s16) = G_SELECT [[ICMP]](s1), [[C]], [[C1]]116    %0:_(s32) = COPY $vgpr0117    %1:_(s32) = COPY $vgpr1118    %2:_(s1) = G_ICMP intpred(eq), %0, %1119    %3:_(s16) = G_ANYEXT %2120...121 122---123name: anyext_s1_to_s32_vcc124legalized: true125 126body: |127  bb.0:128    liveins: $vgpr0, $vgpr1129    ; CHECK-LABEL: name: anyext_s1_to_s32_vcc130    ; CHECK: liveins: $vgpr0, $vgpr1131    ; CHECK-NEXT: {{  $}}132    ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0133    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr1134    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(eq), [[COPY]](s32), [[COPY1]]135    ; CHECK-NEXT: [[C:%[0-9]+]]:vgpr(s32) = G_CONSTANT i32 1136    ; CHECK-NEXT: [[C1:%[0-9]+]]:vgpr(s32) = G_CONSTANT i32 0137    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[C]], [[C1]]138    %0:_(s32) = COPY $vgpr0139    %1:_(s32) = COPY $vgpr1140    %2:_(s1) = G_ICMP intpred(eq), %0, %1141    %3:_(s32) = G_ANYEXT %2142...143 144---145name: anyext_s1_to_s64_vcc146legalized: true147 148body: |149  bb.0:150    liveins: $vgpr0, $vgpr1151    ; CHECK-LABEL: name: anyext_s1_to_s64_vcc152    ; CHECK: liveins: $vgpr0, $vgpr1153    ; CHECK-NEXT: {{  $}}154    ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0155    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr1156    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(eq), [[COPY]](s32), [[COPY1]]157    ; CHECK-NEXT: [[C:%[0-9]+]]:vgpr(s32) = G_CONSTANT i32 1158    ; CHECK-NEXT: [[C1:%[0-9]+]]:vgpr(s32) = G_CONSTANT i32 0159    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[C]], [[C1]]160    ; CHECK-NEXT: [[DEF:%[0-9]+]]:vgpr(s32) = G_IMPLICIT_DEF161    ; CHECK-NEXT: [[MV:%[0-9]+]]:vgpr(s64) = G_MERGE_VALUES [[SELECT]](s32), [[DEF]](s32)162    %0:_(s32) = COPY $vgpr0163    %1:_(s32) = COPY $vgpr1164    %2:_(s1) = G_ICMP intpred(eq), %0, %1165    %3:_(s64) = G_ANYEXT %2166...167 168---169name: anyext_s1_to_s16_sgpr170legalized: true171 172body: |173  bb.0:174    liveins: $sgpr0175    ; CHECK-LABEL: name: anyext_s1_to_s16_sgpr176    ; CHECK: liveins: $sgpr0177    ; CHECK-NEXT: {{  $}}178    ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0179    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s16) = G_TRUNC [[COPY]](s32)180    %0:_(s32) = COPY $sgpr0181    %1:_(s1) = G_TRUNC %0182    %2:_(s16) = G_ANYEXT %1183...184 185---186name: anyext_s1_to_s32_sgpr187legalized: true188 189body: |190  bb.0:191    liveins: $sgpr0192    ; CHECK-LABEL: name: anyext_s1_to_s32_sgpr193    ; CHECK: liveins: $sgpr0194    ; CHECK-NEXT: {{  $}}195    ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0196    ; CHECK-NEXT: S_ENDPGM 0, implicit [[COPY]](s32)197    %0:_(s32) = COPY $sgpr0198    %1:_(s1) = G_TRUNC %0199    %2:_(s32) = G_ANYEXT %1200    S_ENDPGM 0, implicit %2201...202 203---204name: anyext_s1_to_s64_sgpr205legalized: true206 207body: |208  bb.0:209    liveins: $sgpr0210    ; CHECK-LABEL: name: anyext_s1_to_s64_sgpr211    ; CHECK: liveins: $sgpr0212    ; CHECK-NEXT: {{  $}}213    ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0214    ; CHECK-NEXT: [[DEF:%[0-9]+]]:sgpr(s32) = G_IMPLICIT_DEF215    ; CHECK-NEXT: [[MV:%[0-9]+]]:sgpr(s64) = G_MERGE_VALUES [[COPY]](s32), [[DEF]](s32)216    %0:_(s32) = COPY $sgpr0217    %1:_(s1) = G_TRUNC %0218    %2:_(s64) = G_ANYEXT %1219...220 221---222name: anyext_s1_to_s16_vgpr223legalized: true224 225body: |226  bb.0:227    liveins: $vgpr0228    ; CHECK-LABEL: name: anyext_s1_to_s16_vgpr229    ; CHECK: liveins: $vgpr0230    ; CHECK-NEXT: {{  $}}231    ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0232    ; CHECK-NEXT: [[C:%[0-9]+]]:vgpr(s32) = G_CONSTANT i32 1233    ; CHECK-NEXT: [[AND:%[0-9]+]]:vgpr(s32) = G_AND [[COPY]], [[C]]234    ; CHECK-NEXT: [[C1:%[0-9]+]]:vgpr(s32) = G_CONSTANT i32 0235    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(ne), [[AND]](s32), [[C1]]236    ; CHECK-NEXT: [[C2:%[0-9]+]]:vgpr(s16) = G_CONSTANT i16 1237    ; CHECK-NEXT: [[C3:%[0-9]+]]:vgpr(s16) = G_CONSTANT i16 0238    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:vgpr(s16) = G_SELECT [[ICMP]](s1), [[C2]], [[C3]]239    %0:_(s32) = COPY $vgpr0240    %1:_(s1) = G_TRUNC %0241    %2:_(s16) = G_ANYEXT %1242...243 244---245name: anyext_s1_to_s32_vgpr246legalized: true247 248body: |249  bb.0:250    liveins: $vgpr0251    ; CHECK-LABEL: name: anyext_s1_to_s32_vgpr252    ; CHECK: liveins: $vgpr0253    ; CHECK-NEXT: {{  $}}254    ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0255    ; CHECK-NEXT: [[C:%[0-9]+]]:vgpr(s32) = G_CONSTANT i32 1256    ; CHECK-NEXT: [[AND:%[0-9]+]]:vgpr(s32) = G_AND [[COPY]], [[C]]257    ; CHECK-NEXT: [[C1:%[0-9]+]]:vgpr(s32) = G_CONSTANT i32 0258    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(ne), [[AND]](s32), [[C1]]259    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[C]], [[C1]]260    %0:_(s32) = COPY $vgpr0261    %1:_(s1) = G_TRUNC %0262    %2:_(s32) = G_ANYEXT %1263...264 265---266name: anyext_s1_to_s64_vgpr267legalized: true268 269body: |270  bb.0:271    liveins: $vgpr0272    ; CHECK-LABEL: name: anyext_s1_to_s64_vgpr273    ; CHECK: liveins: $vgpr0274    ; CHECK-NEXT: {{  $}}275    ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0276    ; CHECK-NEXT: [[C:%[0-9]+]]:vgpr(s32) = G_CONSTANT i32 1277    ; CHECK-NEXT: [[AND:%[0-9]+]]:vgpr(s32) = G_AND [[COPY]], [[C]]278    ; CHECK-NEXT: [[C1:%[0-9]+]]:vgpr(s32) = G_CONSTANT i32 0279    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(ne), [[AND]](s32), [[C1]]280    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[C]], [[C1]]281    ; CHECK-NEXT: [[DEF:%[0-9]+]]:vgpr(s32) = G_IMPLICIT_DEF282    ; CHECK-NEXT: [[MV:%[0-9]+]]:vgpr(s64) = G_MERGE_VALUES [[SELECT]](s32), [[DEF]](s32)283    %0:_(s32) = COPY $vgpr0284    %1:_(s1) = G_TRUNC %0285    %2:_(s64) = G_ANYEXT %1286...287