brintos

brintos / llvm-project-archived public Read only

0
0
Text · 18.7 KiB · b978689 Raw
485 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn -mcpu=hawaii -run-pass=regbankselect -regbankselect-fast -verify-machineinstrs -o - %s | FileCheck -check-prefix=GFX7 %s3# RUN: llc -mtriple=amdgcn -mcpu=fiji -run-pass=regbankselect -regbankselect-fast -verify-machineinstrs -o - %s | FileCheck -check-prefix=GFX8 %s4# RUN: llc -mtriple=amdgcn -mcpu=hawaii -run-pass=regbankselect -regbankselect-greedy -verify-machineinstrs -o - %s | FileCheck -check-prefix=GFX7 %s5# RUN: llc -mtriple=amdgcn -mcpu=fiji -run-pass=regbankselect -regbankselect-greedy -verify-machineinstrs -o - %s | FileCheck -check-prefix=GFX8 %s6 7---8name: icmp_eq_s32_ss9legalized: true10 11body: |12  bb.0:13    liveins: $sgpr0, $sgpr114    ; GFX7-LABEL: name: icmp_eq_s32_ss15    ; GFX7: liveins: $sgpr0, $sgpr116    ; GFX7-NEXT: {{  $}}17    ; GFX7-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr018    ; GFX7-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr119    ; GFX7-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY]](s32), [[COPY1]]20    ; GFX7-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)21    ; GFX8-LABEL: name: icmp_eq_s32_ss22    ; GFX8: liveins: $sgpr0, $sgpr123    ; GFX8-NEXT: {{  $}}24    ; GFX8-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr025    ; GFX8-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr126    ; GFX8-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY]](s32), [[COPY1]]27    ; GFX8-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)28    %0:_(s32) = COPY $sgpr029    %1:_(s32) = COPY $sgpr130    %2:_(s1) = G_ICMP intpred(eq), %0, %131...32 33---34name: icmp_eq_s32_sv35legalized: true36 37body: |38  bb.0:39    liveins: $sgpr0, $vgpr040    ; GFX7-LABEL: name: icmp_eq_s32_sv41    ; GFX7: liveins: $sgpr0, $vgpr042    ; GFX7-NEXT: {{  $}}43    ; GFX7-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr044    ; GFX7-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr045    ; GFX7-NEXT: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY [[COPY]](s32)46    ; GFX7-NEXT: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(eq), [[COPY2]](s32), [[COPY1]]47    ; GFX8-LABEL: name: icmp_eq_s32_sv48    ; GFX8: liveins: $sgpr0, $vgpr049    ; GFX8-NEXT: {{  $}}50    ; GFX8-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr051    ; GFX8-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr052    ; GFX8-NEXT: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY [[COPY]](s32)53    ; GFX8-NEXT: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(eq), [[COPY2]](s32), [[COPY1]]54    %0:_(s32) = COPY $sgpr055    %1:_(s32) = COPY $vgpr056    %2:_(s1) = G_ICMP intpred(eq), %0, %157...58 59---60name: icmp_eq_s32_vs61legalized: true62 63body: |64  bb.0:65    liveins: $sgpr0, $vgpr066    ; GFX7-LABEL: name: icmp_eq_s32_vs67    ; GFX7: liveins: $sgpr0, $vgpr068    ; GFX7-NEXT: {{  $}}69    ; GFX7-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr070    ; GFX7-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr071    ; GFX7-NEXT: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY [[COPY]](s32)72    ; GFX7-NEXT: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[COPY2]]73    ; GFX8-LABEL: name: icmp_eq_s32_vs74    ; GFX8: liveins: $sgpr0, $vgpr075    ; GFX8-NEXT: {{  $}}76    ; GFX8-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr077    ; GFX8-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr078    ; GFX8-NEXT: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY [[COPY]](s32)79    ; GFX8-NEXT: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[COPY2]]80    %0:_(s32) = COPY $sgpr081    %1:_(s32) = COPY $vgpr082    %2:_(s1) = G_ICMP intpred(eq), %1, %083...84 85---86name: icmp_eq_s32_vv87legalized: true88 89body: |90  bb.0:91    liveins: $vgpr0, $vgpr192    ; GFX7-LABEL: name: icmp_eq_s32_vv93    ; GFX7: liveins: $vgpr0, $vgpr194    ; GFX7-NEXT: {{  $}}95    ; GFX7-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr096    ; GFX7-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr197    ; GFX7-NEXT: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(eq), [[COPY]](s32), [[COPY1]]98    ; GFX8-LABEL: name: icmp_eq_s32_vv99    ; GFX8: liveins: $vgpr0, $vgpr1100    ; GFX8-NEXT: {{  $}}101    ; GFX8-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0102    ; GFX8-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr1103    ; GFX8-NEXT: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(eq), [[COPY]](s32), [[COPY1]]104    %0:_(s32) = COPY $vgpr0105    %1:_(s32) = COPY $vgpr1106    %2:_(s1) = G_ICMP intpred(eq), %0, %1107...108 109---110name: icmp_eq_s64_ss111legalized: true112 113body: |114  bb.0:115    liveins: $sgpr0_sgpr1, $sgpr2_sgpr3116    ; GFX7-LABEL: name: icmp_eq_s64_ss117    ; GFX7: liveins: $sgpr0_sgpr1, $sgpr2_sgpr3118    ; GFX7-NEXT: {{  $}}119    ; GFX7-NEXT: [[COPY:%[0-9]+]]:sgpr(s64) = COPY $sgpr0_sgpr1120    ; GFX7-NEXT: [[COPY1:%[0-9]+]]:sgpr(s64) = COPY $sgpr2_sgpr3121    ; GFX7-NEXT: [[COPY2:%[0-9]+]]:vgpr(s64) = COPY [[COPY]](s64)122    ; GFX7-NEXT: [[COPY3:%[0-9]+]]:vgpr(s64) = COPY [[COPY1]](s64)123    ; GFX7-NEXT: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(eq), [[COPY2]](s64), [[COPY3]]124    ; GFX8-LABEL: name: icmp_eq_s64_ss125    ; GFX8: liveins: $sgpr0_sgpr1, $sgpr2_sgpr3126    ; GFX8-NEXT: {{  $}}127    ; GFX8-NEXT: [[COPY:%[0-9]+]]:sgpr(s64) = COPY $sgpr0_sgpr1128    ; GFX8-NEXT: [[COPY1:%[0-9]+]]:sgpr(s64) = COPY $sgpr2_sgpr3129    ; GFX8-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY]](s64), [[COPY1]]130    ; GFX8-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)131    %0:_(s64) = COPY $sgpr0_sgpr1132    %1:_(s64) = COPY $sgpr2_sgpr3133    %2:_(s1) = G_ICMP intpred(eq), %0, %1134...135 136---137name: icmp_eq_s64_sv138legalized: true139 140body: |141  bb.0:142    liveins: $sgpr0_sgpr1, $vgpr0_vgpr1143    ; GFX7-LABEL: name: icmp_eq_s64_sv144    ; GFX7: liveins: $sgpr0_sgpr1, $vgpr0_vgpr1145    ; GFX7-NEXT: {{  $}}146    ; GFX7-NEXT: [[COPY:%[0-9]+]]:sgpr(s64) = COPY $sgpr0_sgpr1147    ; GFX7-NEXT: [[COPY1:%[0-9]+]]:vgpr(s64) = COPY $vgpr0_vgpr1148    ; GFX7-NEXT: [[COPY2:%[0-9]+]]:vgpr(s64) = COPY [[COPY]](s64)149    ; GFX7-NEXT: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(eq), [[COPY2]](s64), [[COPY1]]150    ; GFX8-LABEL: name: icmp_eq_s64_sv151    ; GFX8: liveins: $sgpr0_sgpr1, $vgpr0_vgpr1152    ; GFX8-NEXT: {{  $}}153    ; GFX8-NEXT: [[COPY:%[0-9]+]]:sgpr(s64) = COPY $sgpr0_sgpr1154    ; GFX8-NEXT: [[COPY1:%[0-9]+]]:vgpr(s64) = COPY $vgpr0_vgpr1155    ; GFX8-NEXT: [[COPY2:%[0-9]+]]:vgpr(s64) = COPY [[COPY]](s64)156    ; GFX8-NEXT: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(eq), [[COPY2]](s64), [[COPY1]]157    %0:_(s64) = COPY $sgpr0_sgpr1158    %1:_(s64) = COPY $vgpr0_vgpr1159    %2:_(s1) = G_ICMP intpred(eq), %0, %1160...161 162---163name: icmp_eq_s64_vs164legalized: true165 166body: |167  bb.0:168    liveins: $sgpr0_sgpr1, $vgpr0_vgpr1169    ; GFX7-LABEL: name: icmp_eq_s64_vs170    ; GFX7: liveins: $sgpr0_sgpr1, $vgpr0_vgpr1171    ; GFX7-NEXT: {{  $}}172    ; GFX7-NEXT: [[COPY:%[0-9]+]]:sgpr(s64) = COPY $sgpr0_sgpr1173    ; GFX7-NEXT: [[COPY1:%[0-9]+]]:vgpr(s64) = COPY $vgpr0_vgpr1174    ; GFX7-NEXT: [[COPY2:%[0-9]+]]:vgpr(s64) = COPY [[COPY]](s64)175    ; GFX7-NEXT: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(eq), [[COPY1]](s64), [[COPY2]]176    ; GFX8-LABEL: name: icmp_eq_s64_vs177    ; GFX8: liveins: $sgpr0_sgpr1, $vgpr0_vgpr1178    ; GFX8-NEXT: {{  $}}179    ; GFX8-NEXT: [[COPY:%[0-9]+]]:sgpr(s64) = COPY $sgpr0_sgpr1180    ; GFX8-NEXT: [[COPY1:%[0-9]+]]:vgpr(s64) = COPY $vgpr0_vgpr1181    ; GFX8-NEXT: [[COPY2:%[0-9]+]]:vgpr(s64) = COPY [[COPY]](s64)182    ; GFX8-NEXT: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(eq), [[COPY1]](s64), [[COPY2]]183    %0:_(s64) = COPY $sgpr0_sgpr1184    %1:_(s64) = COPY $vgpr0_vgpr1185    %2:_(s1) = G_ICMP intpred(eq), %1, %0186...187 188---189name: icmp_eq_s64_vv190legalized: true191 192body: |193  bb.0:194    liveins: $vgpr0_vgpr1, $vgpr2_vgpr3195    ; GFX7-LABEL: name: icmp_eq_s64_vv196    ; GFX7: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3197    ; GFX7-NEXT: {{  $}}198    ; GFX7-NEXT: [[COPY:%[0-9]+]]:vgpr(s64) = COPY $vgpr0_vgpr1199    ; GFX7-NEXT: [[COPY1:%[0-9]+]]:vgpr(s64) = COPY $vgpr2_vgpr3200    ; GFX7-NEXT: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(eq), [[COPY]](s64), [[COPY1]]201    ; GFX8-LABEL: name: icmp_eq_s64_vv202    ; GFX8: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3203    ; GFX8-NEXT: {{  $}}204    ; GFX8-NEXT: [[COPY:%[0-9]+]]:vgpr(s64) = COPY $vgpr0_vgpr1205    ; GFX8-NEXT: [[COPY1:%[0-9]+]]:vgpr(s64) = COPY $vgpr2_vgpr3206    ; GFX8-NEXT: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(eq), [[COPY]](s64), [[COPY1]]207    %0:_(s64) = COPY $vgpr0_vgpr1208    %1:_(s64) = COPY $vgpr2_vgpr3209    %2:_(s1) = G_ICMP intpred(eq), %0, %1210...211 212---213name: icmp_ne_s64_ss214legalized: true215 216body: |217  bb.0:218    liveins: $sgpr0_sgpr1, $sgpr2_sgpr3219    ; GFX7-LABEL: name: icmp_ne_s64_ss220    ; GFX7: liveins: $sgpr0_sgpr1, $sgpr2_sgpr3221    ; GFX7-NEXT: {{  $}}222    ; GFX7-NEXT: [[COPY:%[0-9]+]]:sgpr(s64) = COPY $sgpr0_sgpr1223    ; GFX7-NEXT: [[COPY1:%[0-9]+]]:sgpr(s64) = COPY $sgpr2_sgpr3224    ; GFX7-NEXT: [[COPY2:%[0-9]+]]:vgpr(s64) = COPY [[COPY]](s64)225    ; GFX7-NEXT: [[COPY3:%[0-9]+]]:vgpr(s64) = COPY [[COPY1]](s64)226    ; GFX7-NEXT: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(ne), [[COPY2]](s64), [[COPY3]]227    ; GFX8-LABEL: name: icmp_ne_s64_ss228    ; GFX8: liveins: $sgpr0_sgpr1, $sgpr2_sgpr3229    ; GFX8-NEXT: {{  $}}230    ; GFX8-NEXT: [[COPY:%[0-9]+]]:sgpr(s64) = COPY $sgpr0_sgpr1231    ; GFX8-NEXT: [[COPY1:%[0-9]+]]:sgpr(s64) = COPY $sgpr2_sgpr3232    ; GFX8-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(ne), [[COPY]](s64), [[COPY1]]233    ; GFX8-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)234    %0:_(s64) = COPY $sgpr0_sgpr1235    %1:_(s64) = COPY $sgpr2_sgpr3236    %2:_(s1) = G_ICMP intpred(ne), %0, %1237...238 239---240name: icmp_ne_s64_sv241legalized: true242 243body: |244  bb.0:245    liveins: $sgpr0_sgpr1, $vgpr0_vgpr1246    ; GFX7-LABEL: name: icmp_ne_s64_sv247    ; GFX7: liveins: $sgpr0_sgpr1, $vgpr0_vgpr1248    ; GFX7-NEXT: {{  $}}249    ; GFX7-NEXT: [[COPY:%[0-9]+]]:sgpr(s64) = COPY $sgpr0_sgpr1250    ; GFX7-NEXT: [[COPY1:%[0-9]+]]:vgpr(s64) = COPY $vgpr0_vgpr1251    ; GFX7-NEXT: [[COPY2:%[0-9]+]]:vgpr(s64) = COPY [[COPY]](s64)252    ; GFX7-NEXT: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(ne), [[COPY2]](s64), [[COPY1]]253    ; GFX8-LABEL: name: icmp_ne_s64_sv254    ; GFX8: liveins: $sgpr0_sgpr1, $vgpr0_vgpr1255    ; GFX8-NEXT: {{  $}}256    ; GFX8-NEXT: [[COPY:%[0-9]+]]:sgpr(s64) = COPY $sgpr0_sgpr1257    ; GFX8-NEXT: [[COPY1:%[0-9]+]]:vgpr(s64) = COPY $vgpr0_vgpr1258    ; GFX8-NEXT: [[COPY2:%[0-9]+]]:vgpr(s64) = COPY [[COPY]](s64)259    ; GFX8-NEXT: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(ne), [[COPY2]](s64), [[COPY1]]260    %0:_(s64) = COPY $sgpr0_sgpr1261    %1:_(s64) = COPY $vgpr0_vgpr1262    %2:_(s1) = G_ICMP intpred(ne), %0, %1263...264 265---266name: icmp_ne_s64_vs267legalized: true268 269body: |270  bb.0:271    liveins: $sgpr0_sgpr1, $vgpr0_vgpr1272    ; GFX7-LABEL: name: icmp_ne_s64_vs273    ; GFX7: liveins: $sgpr0_sgpr1, $vgpr0_vgpr1274    ; GFX7-NEXT: {{  $}}275    ; GFX7-NEXT: [[COPY:%[0-9]+]]:sgpr(s64) = COPY $sgpr0_sgpr1276    ; GFX7-NEXT: [[COPY1:%[0-9]+]]:vgpr(s64) = COPY $vgpr0_vgpr1277    ; GFX7-NEXT: [[COPY2:%[0-9]+]]:vgpr(s64) = COPY [[COPY]](s64)278    ; GFX7-NEXT: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(ne), [[COPY1]](s64), [[COPY2]]279    ; GFX8-LABEL: name: icmp_ne_s64_vs280    ; GFX8: liveins: $sgpr0_sgpr1, $vgpr0_vgpr1281    ; GFX8-NEXT: {{  $}}282    ; GFX8-NEXT: [[COPY:%[0-9]+]]:sgpr(s64) = COPY $sgpr0_sgpr1283    ; GFX8-NEXT: [[COPY1:%[0-9]+]]:vgpr(s64) = COPY $vgpr0_vgpr1284    ; GFX8-NEXT: [[COPY2:%[0-9]+]]:vgpr(s64) = COPY [[COPY]](s64)285    ; GFX8-NEXT: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(ne), [[COPY1]](s64), [[COPY2]]286    %0:_(s64) = COPY $sgpr0_sgpr1287    %1:_(s64) = COPY $vgpr0_vgpr1288    %2:_(s1) = G_ICMP intpred(ne), %1, %0289...290 291---292name: icmp_ne_s64_vv293legalized: true294 295body: |296  bb.0:297    liveins: $vgpr0_vgpr1, $vgpr2_vgpr3298    ; GFX7-LABEL: name: icmp_ne_s64_vv299    ; GFX7: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3300    ; GFX7-NEXT: {{  $}}301    ; GFX7-NEXT: [[COPY:%[0-9]+]]:vgpr(s64) = COPY $vgpr0_vgpr1302    ; GFX7-NEXT: [[COPY1:%[0-9]+]]:vgpr(s64) = COPY $vgpr2_vgpr3303    ; GFX7-NEXT: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(ne), [[COPY]](s64), [[COPY1]]304    ; GFX8-LABEL: name: icmp_ne_s64_vv305    ; GFX8: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3306    ; GFX8-NEXT: {{  $}}307    ; GFX8-NEXT: [[COPY:%[0-9]+]]:vgpr(s64) = COPY $vgpr0_vgpr1308    ; GFX8-NEXT: [[COPY1:%[0-9]+]]:vgpr(s64) = COPY $vgpr2_vgpr3309    ; GFX8-NEXT: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(ne), [[COPY]](s64), [[COPY1]]310    %0:_(s64) = COPY $vgpr0_vgpr1311    %1:_(s64) = COPY $vgpr2_vgpr3312    %2:_(s1) = G_ICMP intpred(ne), %0, %1313...314 315---316name: icmp_slt_s64_ss317legalized: true318 319body: |320  bb.0:321    liveins: $sgpr0_sgpr1, $sgpr2_sgpr3322    ; GFX7-LABEL: name: icmp_slt_s64_ss323    ; GFX7: liveins: $sgpr0_sgpr1, $sgpr2_sgpr3324    ; GFX7-NEXT: {{  $}}325    ; GFX7-NEXT: [[COPY:%[0-9]+]]:sgpr(s64) = COPY $sgpr0_sgpr1326    ; GFX7-NEXT: [[COPY1:%[0-9]+]]:sgpr(s64) = COPY $sgpr2_sgpr3327    ; GFX7-NEXT: [[COPY2:%[0-9]+]]:vgpr(s64) = COPY [[COPY]](s64)328    ; GFX7-NEXT: [[COPY3:%[0-9]+]]:vgpr(s64) = COPY [[COPY1]](s64)329    ; GFX7-NEXT: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(slt), [[COPY2]](s64), [[COPY3]]330    ; GFX8-LABEL: name: icmp_slt_s64_ss331    ; GFX8: liveins: $sgpr0_sgpr1, $sgpr2_sgpr3332    ; GFX8-NEXT: {{  $}}333    ; GFX8-NEXT: [[COPY:%[0-9]+]]:sgpr(s64) = COPY $sgpr0_sgpr1334    ; GFX8-NEXT: [[COPY1:%[0-9]+]]:sgpr(s64) = COPY $sgpr2_sgpr3335    ; GFX8-NEXT: [[COPY2:%[0-9]+]]:vgpr(s64) = COPY [[COPY]](s64)336    ; GFX8-NEXT: [[COPY3:%[0-9]+]]:vgpr(s64) = COPY [[COPY1]](s64)337    ; GFX8-NEXT: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(slt), [[COPY2]](s64), [[COPY3]]338    %0:_(s64) = COPY $sgpr0_sgpr1339    %1:_(s64) = COPY $sgpr2_sgpr3340    %2:_(s1) = G_ICMP intpred(slt), %0, %1341...342 343---344name: icmp_slt_s64_sv345legalized: true346 347body: |348  bb.0:349    liveins: $sgpr0_sgpr1, $vgpr0_vgpr1350    ; GFX7-LABEL: name: icmp_slt_s64_sv351    ; GFX7: liveins: $sgpr0_sgpr1, $vgpr0_vgpr1352    ; GFX7-NEXT: {{  $}}353    ; GFX7-NEXT: [[COPY:%[0-9]+]]:sgpr(s64) = COPY $sgpr0_sgpr1354    ; GFX7-NEXT: [[COPY1:%[0-9]+]]:vgpr(s64) = COPY $vgpr0_vgpr1355    ; GFX7-NEXT: [[COPY2:%[0-9]+]]:vgpr(s64) = COPY [[COPY]](s64)356    ; GFX7-NEXT: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(slt), [[COPY2]](s64), [[COPY1]]357    ; GFX8-LABEL: name: icmp_slt_s64_sv358    ; GFX8: liveins: $sgpr0_sgpr1, $vgpr0_vgpr1359    ; GFX8-NEXT: {{  $}}360    ; GFX8-NEXT: [[COPY:%[0-9]+]]:sgpr(s64) = COPY $sgpr0_sgpr1361    ; GFX8-NEXT: [[COPY1:%[0-9]+]]:vgpr(s64) = COPY $vgpr0_vgpr1362    ; GFX8-NEXT: [[COPY2:%[0-9]+]]:vgpr(s64) = COPY [[COPY]](s64)363    ; GFX8-NEXT: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(slt), [[COPY2]](s64), [[COPY1]]364    %0:_(s64) = COPY $sgpr0_sgpr1365    %1:_(s64) = COPY $vgpr0_vgpr1366    %2:_(s1) = G_ICMP intpred(slt), %0, %1367...368 369---370name: icmp_slt_s64_vs371legalized: true372 373body: |374  bb.0:375    liveins: $sgpr0_sgpr1, $vgpr0_vgpr1376    ; GFX7-LABEL: name: icmp_slt_s64_vs377    ; GFX7: liveins: $sgpr0_sgpr1, $vgpr0_vgpr1378    ; GFX7-NEXT: {{  $}}379    ; GFX7-NEXT: [[COPY:%[0-9]+]]:sgpr(s64) = COPY $sgpr0_sgpr1380    ; GFX7-NEXT: [[COPY1:%[0-9]+]]:vgpr(s64) = COPY $vgpr0_vgpr1381    ; GFX7-NEXT: [[COPY2:%[0-9]+]]:vgpr(s64) = COPY [[COPY]](s64)382    ; GFX7-NEXT: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(slt), [[COPY1]](s64), [[COPY2]]383    ; GFX8-LABEL: name: icmp_slt_s64_vs384    ; GFX8: liveins: $sgpr0_sgpr1, $vgpr0_vgpr1385    ; GFX8-NEXT: {{  $}}386    ; GFX8-NEXT: [[COPY:%[0-9]+]]:sgpr(s64) = COPY $sgpr0_sgpr1387    ; GFX8-NEXT: [[COPY1:%[0-9]+]]:vgpr(s64) = COPY $vgpr0_vgpr1388    ; GFX8-NEXT: [[COPY2:%[0-9]+]]:vgpr(s64) = COPY [[COPY]](s64)389    ; GFX8-NEXT: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(slt), [[COPY1]](s64), [[COPY2]]390    %0:_(s64) = COPY $sgpr0_sgpr1391    %1:_(s64) = COPY $vgpr0_vgpr1392    %2:_(s1) = G_ICMP intpred(slt), %1, %0393...394 395---396name: icmp_slt_s64_vv397legalized: true398 399body: |400  bb.0:401    liveins: $vgpr0_vgpr1, $vgpr2_vgpr3402    ; GFX7-LABEL: name: icmp_slt_s64_vv403    ; GFX7: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3404    ; GFX7-NEXT: {{  $}}405    ; GFX7-NEXT: [[COPY:%[0-9]+]]:vgpr(s64) = COPY $vgpr0_vgpr1406    ; GFX7-NEXT: [[COPY1:%[0-9]+]]:vgpr(s64) = COPY $vgpr2_vgpr3407    ; GFX7-NEXT: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(slt), [[COPY]](s64), [[COPY1]]408    ; GFX8-LABEL: name: icmp_slt_s64_vv409    ; GFX8: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3410    ; GFX8-NEXT: {{  $}}411    ; GFX8-NEXT: [[COPY:%[0-9]+]]:vgpr(s64) = COPY $vgpr0_vgpr1412    ; GFX8-NEXT: [[COPY1:%[0-9]+]]:vgpr(s64) = COPY $vgpr2_vgpr3413    ; GFX8-NEXT: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(slt), [[COPY]](s64), [[COPY1]]414    %0:_(s64) = COPY $vgpr0_vgpr1415    %1:_(s64) = COPY $vgpr2_vgpr3416    %2:_(s1) = G_ICMP intpred(slt), %0, %1417...418 419# Result is already constrained to be VCC bank, despite scalar inputs.420---421name:            map_icmp_already_vcc_bank_sgpr_inputs422legalized:       true423tracksRegLiveness: true424body:             |425  bb.0:426    liveins: $sgpr0, $sgpr1427 428    ; GFX7-LABEL: name: map_icmp_already_vcc_bank_sgpr_inputs429    ; GFX7: liveins: $sgpr0, $sgpr1430    ; GFX7-NEXT: {{  $}}431    ; GFX7-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0432    ; GFX7-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1433    ; GFX7-NEXT: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY [[COPY]](s32)434    ; GFX7-NEXT: [[COPY3:%[0-9]+]]:vgpr(s32) = COPY [[COPY1]](s32)435    ; GFX7-NEXT: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(eq), [[COPY2]](s32), [[COPY3]]436    ; GFX7-NEXT: S_ENDPGM 0, implicit [[ICMP]](s1)437    ; GFX8-LABEL: name: map_icmp_already_vcc_bank_sgpr_inputs438    ; GFX8: liveins: $sgpr0, $sgpr1439    ; GFX8-NEXT: {{  $}}440    ; GFX8-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0441    ; GFX8-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1442    ; GFX8-NEXT: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY [[COPY]](s32)443    ; GFX8-NEXT: [[COPY3:%[0-9]+]]:vgpr(s32) = COPY [[COPY1]](s32)444    ; GFX8-NEXT: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(eq), [[COPY2]](s32), [[COPY3]]445    ; GFX8-NEXT: S_ENDPGM 0, implicit [[ICMP]](s1)446    %0:_(s32) = COPY $sgpr0447    %1:_(s32) = COPY $sgpr1448    %2:vcc(s1) = G_ICMP intpred(eq), %0, %1449    S_ENDPGM 0, implicit %2450...451 452# Result is already con strained to be VCC bank, despite scalar inputs453# and also has a register class.454---455name:            map_icmp_already_vcc_regclass_sgpr_inputs456legalized:       true457tracksRegLiveness: true458body:             |459  bb.0:460    liveins: $sgpr0, $sgpr1461 462    ; GFX7-LABEL: name: map_icmp_already_vcc_regclass_sgpr_inputs463    ; GFX7: liveins: $sgpr0, $sgpr1464    ; GFX7-NEXT: {{  $}}465    ; GFX7-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0466    ; GFX7-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1467    ; GFX7-NEXT: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY [[COPY]](s32)468    ; GFX7-NEXT: [[COPY3:%[0-9]+]]:vgpr(s32) = COPY [[COPY1]](s32)469    ; GFX7-NEXT: [[ICMP:%[0-9]+]]:sreg_64_xexec(s1) = G_ICMP intpred(eq), [[COPY2]](s32), [[COPY3]]470    ; GFX7-NEXT: S_ENDPGM 0, implicit [[ICMP]](s1)471    ; GFX8-LABEL: name: map_icmp_already_vcc_regclass_sgpr_inputs472    ; GFX8: liveins: $sgpr0, $sgpr1473    ; GFX8-NEXT: {{  $}}474    ; GFX8-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0475    ; GFX8-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1476    ; GFX8-NEXT: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY [[COPY]](s32)477    ; GFX8-NEXT: [[COPY3:%[0-9]+]]:vgpr(s32) = COPY [[COPY1]](s32)478    ; GFX8-NEXT: [[ICMP:%[0-9]+]]:sreg_64_xexec(s1) = G_ICMP intpred(eq), [[COPY2]](s32), [[COPY3]]479    ; GFX8-NEXT: S_ENDPGM 0, implicit [[ICMP]](s1)480    %0:_(s32) = COPY $sgpr0481    %1:_(s32) = COPY $sgpr1482    %2:sreg_64_xexec(s1) = G_ICMP intpred(eq), %0, %1483    S_ENDPGM 0, implicit %2484...485