brintos

brintos / llvm-project-archived public Read only

0
0
Text · 46.2 KiB · 16ba8c2 Raw
1108 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn-- -O0 -run-pass=legalizer -global-isel-abort=0 -o - %s | FileCheck %s3 4---5name: test_unmerge_s32_s646body: |7  bb.0:8    ; CHECK-LABEL: name: test_unmerge_s32_s649    ; CHECK: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 010    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[C]](s64)11    ; CHECK-NEXT: $vgpr0 = COPY [[UV]](s32)12    ; CHECK-NEXT: $vgpr1 = COPY [[UV1]](s32)13    %0:_(s64) = G_CONSTANT i64 014    %1:_(s32), %2:_(s32) = G_UNMERGE_VALUES %0:_(s64)15    $vgpr0 = COPY %1(s32)16    $vgpr1 = COPY %2(s32)17...18 19---20name: test_unmerge_s32_v2s3221body: |22  bb.0:23    liveins: $vgpr0_vgpr124    ; CHECK-LABEL: name: test_unmerge_s32_v2s3225    ; CHECK: liveins: $vgpr0_vgpr126    ; CHECK-NEXT: {{  $}}27    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s32>) = COPY $vgpr0_vgpr128    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY]](<2 x s32>)29    ; CHECK-NEXT: $vgpr0 = COPY [[UV]](s32)30    ; CHECK-NEXT: $vgpr1 = COPY [[UV1]](s32)31    %0:_(<2 x s32>) = COPY $vgpr0_vgpr132    %1:_(s32), %2:_(s32) = G_UNMERGE_VALUES %033    $vgpr0 = COPY %134    $vgpr1 = COPY %235...36 37---38name: test_unmerge_s32_v7s6439body: |40  bb.0:41    liveins:42    ; CHECK-LABEL: name: test_unmerge_s32_v7s6443    ; CHECK: [[DEF:%[0-9]+]]:_(<7 x s64>) = IMPLICIT_DEF44    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32), [[UV4:%[0-9]+]]:_(s32), [[UV5:%[0-9]+]]:_(s32), [[UV6:%[0-9]+]]:_(s32), [[UV7:%[0-9]+]]:_(s32), [[UV8:%[0-9]+]]:_(s32), [[UV9:%[0-9]+]]:_(s32), [[UV10:%[0-9]+]]:_(s32), [[UV11:%[0-9]+]]:_(s32), [[UV12:%[0-9]+]]:_(s32), [[UV13:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[DEF]](<7 x s64>)45    ; CHECK-NEXT: $vgpr0 = COPY [[UV]](s32)46    ; CHECK-NEXT: $vgpr1 = COPY [[UV1]](s32)47    ; CHECK-NEXT: $vgpr2 = COPY [[UV2]](s32)48    ; CHECK-NEXT: $vgpr3 = COPY [[UV3]](s32)49    ; CHECK-NEXT: $vgpr4 = COPY [[UV4]](s32)50    ; CHECK-NEXT: $vgpr5 = COPY [[UV5]](s32)51    ; CHECK-NEXT: $vgpr6 = COPY [[UV6]](s32)52    ; CHECK-NEXT: $vgpr7 = COPY [[UV7]](s32)53    ; CHECK-NEXT: $vgpr8 = COPY [[UV8]](s32)54    ; CHECK-NEXT: $vgpr9 = COPY [[UV9]](s32)55    ; CHECK-NEXT: $vgpr10 = COPY [[UV10]](s32)56    ; CHECK-NEXT: $vgpr11 = COPY [[UV11]](s32)57    ; CHECK-NEXT: $vgpr12 = COPY [[UV12]](s32)58    ; CHECK-NEXT: $vgpr13 = COPY [[UV13]](s32)59    %0:_(<7 x s64>) = IMPLICIT_DEF60    %1:_(s32), %2:_(s32), %3:_(s32), %4:_(s32), %5:_(s32), %6:_(s32), %7:_(s32), %8:_(s32), %9:_(s32), %10:_(s32), %11:_(s32), %12:_(s32), %13:_(s32), %14:_(s32) = G_UNMERGE_VALUES %061    $vgpr0 = COPY %162    $vgpr1 = COPY %263    $vgpr2 = COPY %364    $vgpr3 = COPY %465    $vgpr4 = COPY %566    $vgpr5 = COPY %667    $vgpr6 = COPY %768    $vgpr7 = COPY %869    $vgpr8 = COPY %970    $vgpr9 = COPY %1071    $vgpr10 = COPY %1172    $vgpr11 = COPY %1273    $vgpr12 = COPY %1374    $vgpr13 = COPY %1475...76 77---78name: test_unmerge_s16_v2s1679body: |80  bb.0:81    liveins: $vgpr082    ; CHECK-LABEL: name: test_unmerge_s16_v2s1683    ; CHECK: liveins: $vgpr084    ; CHECK-NEXT: {{  $}}85    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s16>) = COPY $vgpr086    ; CHECK-NEXT: [[BITCAST:%[0-9]+]]:_(s32) = G_BITCAST [[COPY]](<2 x s16>)87    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1688    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s32) = G_LSHR [[BITCAST]], [[C]](s32)89    ; CHECK-NEXT: $vgpr0 = COPY [[BITCAST]](s32)90    ; CHECK-NEXT: $vgpr1 = COPY [[LSHR]](s32)91    %0:_(<2 x s16>) = COPY $vgpr092    %1:_(s16), %2:_(s16) = G_UNMERGE_VALUES %093    %3:_(s32) = G_ANYEXT %194    %4:_(s32) = G_ANYEXT %295    $vgpr0 = COPY %396    $vgpr1 = COPY %497...98 99---100name: test_unmerge_s16_v3s16101body: |102  bb.0:103    ; CHECK-LABEL: name: test_unmerge_s16_v3s16104    ; CHECK: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF105    ; CHECK-NEXT: $vgpr0 = COPY [[DEF]](s32)106    ; CHECK-NEXT: $vgpr1 = COPY [[DEF]](s32)107    ; CHECK-NEXT: $vgpr2 = COPY [[DEF]](s32)108    %0:_(<3 x s16>) = G_IMPLICIT_DEF109    %1:_(s16), %2:_(s16),  %3:_(s16) = G_UNMERGE_VALUES %0110    %4:_(s32) = G_ANYEXT %1111    %5:_(s32) = G_ANYEXT %2112    %6:_(s32) = G_ANYEXT %3113    $vgpr0 = COPY %4114    $vgpr1 = COPY %5115    $vgpr2 = COPY %6116...117 118---119 120name: test_unmerge_s16_v4s16121body: |122  bb.0:123    liveins: $vgpr0_vgpr1124    ; CHECK-LABEL: name: test_unmerge_s16_v4s16125    ; CHECK: liveins: $vgpr0_vgpr1126    ; CHECK-NEXT: {{  $}}127    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<4 x s16>) = COPY $vgpr0_vgpr1128    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(<2 x s16>), [[UV1:%[0-9]+]]:_(<2 x s16>) = G_UNMERGE_VALUES [[COPY]](<4 x s16>)129    ; CHECK-NEXT: [[BITCAST:%[0-9]+]]:_(s32) = G_BITCAST [[UV]](<2 x s16>)130    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 16131    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s32) = G_LSHR [[BITCAST]], [[C]](s32)132    ; CHECK-NEXT: [[BITCAST1:%[0-9]+]]:_(s32) = G_BITCAST [[UV1]](<2 x s16>)133    ; CHECK-NEXT: [[LSHR1:%[0-9]+]]:_(s32) = G_LSHR [[BITCAST1]], [[C]](s32)134    ; CHECK-NEXT: $vgpr0 = COPY [[BITCAST]](s32)135    ; CHECK-NEXT: $vgpr1 = COPY [[LSHR]](s32)136    ; CHECK-NEXT: $vgpr2 = COPY [[BITCAST1]](s32)137    ; CHECK-NEXT: $vgpr3 = COPY [[LSHR1]](s32)138    %0:_(<4 x s16>) = COPY $vgpr0_vgpr1139    %1:_(s16), %2:_(s16), %3:_(s16), %4:_(s16) = G_UNMERGE_VALUES %0140    %5:_(s32) = G_ANYEXT %1141    %6:_(s32) = G_ANYEXT %2142    %7:_(s32) = G_ANYEXT %3143    %8:_(s32) = G_ANYEXT %4144    $vgpr0 = COPY %5145    $vgpr1 = COPY %6146    $vgpr2 = COPY %7147    $vgpr3 = COPY %8148...149 150---151name: test_unmerge_s16_v6s16152body: |153  bb.0:154    liveins: $vgpr0_vgpr1155    ; CHECK-LABEL: name: test_unmerge_s16_v6s16156    ; CHECK: liveins: $vgpr0_vgpr1157    ; CHECK-NEXT: {{  $}}158    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<6 x s16>) = COPY $vgpr0_vgpr1_vgpr2159    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(<2 x s16>), [[UV1:%[0-9]+]]:_(<2 x s16>), [[UV2:%[0-9]+]]:_(<2 x s16>) = G_UNMERGE_VALUES [[COPY]](<6 x s16>)160    ; CHECK-NEXT: [[BITCAST:%[0-9]+]]:_(s32) = G_BITCAST [[UV]](<2 x s16>)161    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 16162    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s32) = G_LSHR [[BITCAST]], [[C]](s32)163    ; CHECK-NEXT: [[BITCAST1:%[0-9]+]]:_(s32) = G_BITCAST [[UV1]](<2 x s16>)164    ; CHECK-NEXT: [[LSHR1:%[0-9]+]]:_(s32) = G_LSHR [[BITCAST1]], [[C]](s32)165    ; CHECK-NEXT: [[BITCAST2:%[0-9]+]]:_(s32) = G_BITCAST [[UV2]](<2 x s16>)166    ; CHECK-NEXT: [[LSHR2:%[0-9]+]]:_(s32) = G_LSHR [[BITCAST2]], [[C]](s32)167    ; CHECK-NEXT: $vgpr0 = COPY [[BITCAST]](s32)168    ; CHECK-NEXT: $vgpr1 = COPY [[LSHR]](s32)169    ; CHECK-NEXT: $vgpr2 = COPY [[BITCAST1]](s32)170    ; CHECK-NEXT: $vgpr3 = COPY [[LSHR1]](s32)171    ; CHECK-NEXT: $vgpr4 = COPY [[BITCAST2]](s32)172    ; CHECK-NEXT: $vgpr5 = COPY [[LSHR2]](s32)173    %0:_(<6 x s16>) = COPY $vgpr0_vgpr1_vgpr2174    %1:_(s16), %2:_(s16), %3:_(s16), %4:_(s16), %5:_(s16), %6:_(s16) = G_UNMERGE_VALUES %0175    %7:_(s32) = G_ANYEXT %1176    %8:_(s32) = G_ANYEXT %2177    %9:_(s32) = G_ANYEXT %3178    %10:_(s32) = G_ANYEXT %4179    %11:_(s32) = G_ANYEXT %5180    %12:_(s32) = G_ANYEXT %6181    $vgpr0 = COPY %7182    $vgpr1 = COPY %8183    $vgpr2 = COPY %9184    $vgpr3 = COPY %10185    $vgpr4 = COPY %11186    $vgpr5 = COPY %12187...188 189---190 191name: test_unmerge_s8_s16192body: |193  bb.0:194    liveins: $vgpr0195    ; CHECK-LABEL: name: test_unmerge_s8_s16196    ; CHECK: liveins: $vgpr0197    ; CHECK-NEXT: {{  $}}198    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0199    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 8200    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s32) = G_LSHR [[COPY]], [[C]](s32)201    ; CHECK-NEXT: $vgpr0 = COPY [[COPY]](s32)202    ; CHECK-NEXT: $vgpr1 = COPY [[LSHR]](s32)203    %0:_(s32) = COPY $vgpr0204    %1:_(s16) = G_TRUNC %0205    %2:_(s8), %3:_(s8) = G_UNMERGE_VALUES %1206    %4:_(s32) = G_ANYEXT %2207    %5:_(s32) = G_ANYEXT %3208    $vgpr0 = COPY %4209    $vgpr1 = COPY %5210...211 212---213name: test_unmerge_s8_s32214body: |215  bb.0:216    liveins: $vgpr0217    ; CHECK-LABEL: name: test_unmerge_s8_s32218    ; CHECK: liveins: $vgpr0219    ; CHECK-NEXT: {{  $}}220    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0221    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 8222    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s32) = G_LSHR [[COPY]], [[C]](s32)223    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 16224    ; CHECK-NEXT: [[LSHR1:%[0-9]+]]:_(s32) = G_LSHR [[COPY]], [[C1]](s32)225    ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 24226    ; CHECK-NEXT: [[LSHR2:%[0-9]+]]:_(s32) = G_LSHR [[COPY]], [[C2]](s32)227    ; CHECK-NEXT: $vgpr0 = COPY [[COPY]](s32)228    ; CHECK-NEXT: $vgpr1 = COPY [[LSHR]](s32)229    ; CHECK-NEXT: $vgpr2 = COPY [[LSHR1]](s32)230    ; CHECK-NEXT: $vgpr3 = COPY [[LSHR2]](s32)231    %0:_(s32) = COPY $vgpr0232    %1:_(s8), %2:_(s8), %3:_(s8), %4:_(s8) = G_UNMERGE_VALUES %0233    %5:_(s32) = G_ANYEXT %1234    %6:_(s32) = G_ANYEXT %2235    %7:_(s32) = G_ANYEXT %3236    %8:_(s32) = G_ANYEXT %4237    $vgpr0 = COPY %5238    $vgpr1 = COPY %6239    $vgpr2 = COPY %7240    $vgpr3 = COPY %8241...242 243---244name: test_unmerge_s8_s48245body: |246  bb.0:247    liveins: $vgpr0_vgpr1248    ; CHECK-LABEL: name: test_unmerge_s8_s48249    ; CHECK: liveins: $vgpr0_vgpr1250    ; CHECK-NEXT: {{  $}}251    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $vgpr0_vgpr1252    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY]](s64)253    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 16254    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s32) = G_LSHR [[UV]], [[C]](s32)255    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8256    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY [[C1]](s32)257    ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535258    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[UV]], [[C2]]259    ; CHECK-NEXT: [[LSHR1:%[0-9]+]]:_(s32) = G_LSHR [[AND]], [[COPY1]](s32)260    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY [[C1]](s32)261    ; CHECK-NEXT: [[LSHR2:%[0-9]+]]:_(s32) = G_LSHR [[LSHR]], [[COPY2]](s32)262    ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s32) = G_AND [[UV1]], [[C2]]263    ; CHECK-NEXT: [[LSHR3:%[0-9]+]]:_(s32) = G_LSHR [[AND1]], [[C1]](s32)264    ; CHECK-NEXT: $vgpr0 = COPY [[UV]](s32)265    ; CHECK-NEXT: $vgpr1 = COPY [[LSHR1]](s32)266    ; CHECK-NEXT: $vgpr2 = COPY [[LSHR]](s32)267    ; CHECK-NEXT: $vgpr3 = COPY [[LSHR2]](s32)268    ; CHECK-NEXT: $vgpr4 = COPY [[UV1]](s32)269    ; CHECK-NEXT: $vgpr5 = COPY [[LSHR3]](s32)270    %0:_(s64) = COPY $vgpr0_vgpr1271    %1:_(s48) = G_TRUNC %0272    %2:_(s8), %3:_(s8), %4:_(s8), %5:_(s8), %6:_(s8), %7:_(s8) = G_UNMERGE_VALUES %1273    %8:_(s32) = G_ANYEXT %2274    %9:_(s32) = G_ANYEXT %3275    %10:_(s32) = G_ANYEXT %4276    %11:_(s32) = G_ANYEXT %5277    %12:_(s32) = G_ANYEXT %6278    %13:_(s32) = G_ANYEXT %7279    $vgpr0 = COPY %8280    $vgpr1 = COPY %9281    $vgpr2 = COPY %10282    $vgpr3 = COPY %11283    $vgpr4 = COPY %12284    $vgpr5 = COPY %13285...286 287---288name: test_unmerge_s16_s48289body: |290  bb.0:291    liveins: $vgpr0_vgpr1292    ; CHECK-LABEL: name: test_unmerge_s16_s48293    ; CHECK: liveins: $vgpr0_vgpr1294    ; CHECK-NEXT: {{  $}}295    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $vgpr0_vgpr1296    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY]](s64)297    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 16298    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s32) = G_LSHR [[UV]], [[C]](s32)299    ; CHECK-NEXT: $vgpr0 = COPY [[UV]](s32)300    ; CHECK-NEXT: $vgpr1 = COPY [[LSHR]](s32)301    ; CHECK-NEXT: $vgpr2 = COPY [[UV1]](s32)302    %0:_(s64) = COPY $vgpr0_vgpr1303    %1:_(s48) = G_TRUNC %0304    %2:_(s16), %3:_(s16), %4:_(s16) = G_UNMERGE_VALUES %1305    %5:_(s32) = G_ANYEXT %2306    %6:_(s32) = G_ANYEXT %3307    %7:_(s32) = G_ANYEXT %4308    $vgpr0 = COPY %5309    $vgpr1 = COPY %6310    $vgpr2 = COPY %7311...312 313---314name: test_unmerge_s8_s64315body: |316  bb.0:317    liveins: $vgpr0_vgpr1318    ; CHECK-LABEL: name: test_unmerge_s8_s64319    ; CHECK: liveins: $vgpr0_vgpr1320    ; CHECK-NEXT: {{  $}}321    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $vgpr0_vgpr1322    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY]](s64)323    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 16324    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s32) = G_LSHR [[UV]], [[C]](s32)325    ; CHECK-NEXT: [[LSHR1:%[0-9]+]]:_(s32) = G_LSHR [[UV1]], [[C]](s32)326    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8327    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY [[C1]](s32)328    ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535329    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[UV]], [[C2]]330    ; CHECK-NEXT: [[LSHR2:%[0-9]+]]:_(s32) = G_LSHR [[AND]], [[COPY1]](s32)331    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY [[C1]](s32)332    ; CHECK-NEXT: [[LSHR3:%[0-9]+]]:_(s32) = G_LSHR [[LSHR]], [[COPY2]](s32)333    ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY [[C1]](s32)334    ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s32) = G_AND [[UV1]], [[C2]]335    ; CHECK-NEXT: [[LSHR4:%[0-9]+]]:_(s32) = G_LSHR [[AND1]], [[COPY3]](s32)336    ; CHECK-NEXT: [[LSHR5:%[0-9]+]]:_(s32) = G_LSHR [[LSHR1]], [[C1]](s32)337    ; CHECK-NEXT: $vgpr0 = COPY [[UV]](s32)338    ; CHECK-NEXT: $vgpr1 = COPY [[LSHR2]](s32)339    ; CHECK-NEXT: $vgpr2 = COPY [[LSHR]](s32)340    ; CHECK-NEXT: $vgpr3 = COPY [[LSHR3]](s32)341    ; CHECK-NEXT: $vgpr4 = COPY [[UV1]](s32)342    ; CHECK-NEXT: $vgpr5 = COPY [[LSHR4]](s32)343    ; CHECK-NEXT: $vgpr6 = COPY [[LSHR1]](s32)344    ; CHECK-NEXT: $vgpr7 = COPY [[LSHR5]](s32)345    %0:_(s64) = COPY $vgpr0_vgpr1346    %1:_(s8), %2:_(s8), %3:_(s8), %4:_(s8), %5:_(s8), %6:_(s8), %7:_(s8), %8:_(s8) = G_UNMERGE_VALUES %0347    %10:_(s32) = G_ANYEXT %1348    %11:_(s32) = G_ANYEXT %2349    %12:_(s32) = G_ANYEXT %3350    %13:_(s32) = G_ANYEXT %4351    %14:_(s32) = G_ANYEXT %5352    %15:_(s32) = G_ANYEXT %6353    %16:_(s32) = G_ANYEXT %7354    %17:_(s32) = G_ANYEXT %8355    $vgpr0 = COPY %10356    $vgpr1 = COPY %11357    $vgpr2 = COPY %12358    $vgpr3 = COPY %13359    $vgpr4 = COPY %14360    $vgpr5 = COPY %15361    $vgpr6 = COPY %16362    $vgpr7 = COPY %17363...364 365---366name: test_unmerge_s8_p1367body: |368  bb.0:369    liveins: $vgpr0_vgpr1370    ; CHECK-LABEL: name: test_unmerge_s8_p1371    ; CHECK: liveins: $vgpr0_vgpr1372    ; CHECK-NEXT: {{  $}}373    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1374    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY]](p1)375    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 16376    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s32) = G_LSHR [[UV]], [[C]](s32)377    ; CHECK-NEXT: [[LSHR1:%[0-9]+]]:_(s32) = G_LSHR [[UV1]], [[C]](s32)378    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8379    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY [[C1]](s32)380    ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535381    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[UV]], [[C2]]382    ; CHECK-NEXT: [[LSHR2:%[0-9]+]]:_(s32) = G_LSHR [[AND]], [[COPY1]](s32)383    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY [[C1]](s32)384    ; CHECK-NEXT: [[LSHR3:%[0-9]+]]:_(s32) = G_LSHR [[LSHR]], [[COPY2]](s32)385    ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY [[C1]](s32)386    ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s32) = G_AND [[UV1]], [[C2]]387    ; CHECK-NEXT: [[LSHR4:%[0-9]+]]:_(s32) = G_LSHR [[AND1]], [[COPY3]](s32)388    ; CHECK-NEXT: [[LSHR5:%[0-9]+]]:_(s32) = G_LSHR [[LSHR1]], [[C1]](s32)389    ; CHECK-NEXT: $vgpr0 = COPY [[UV]](s32)390    ; CHECK-NEXT: $vgpr1 = COPY [[LSHR2]](s32)391    ; CHECK-NEXT: $vgpr2 = COPY [[LSHR]](s32)392    ; CHECK-NEXT: $vgpr3 = COPY [[LSHR3]](s32)393    ; CHECK-NEXT: $vgpr4 = COPY [[UV1]](s32)394    ; CHECK-NEXT: $vgpr5 = COPY [[LSHR4]](s32)395    ; CHECK-NEXT: $vgpr6 = COPY [[LSHR1]](s32)396    ; CHECK-NEXT: $vgpr7 = COPY [[LSHR5]](s32)397    %0:_(p1) = COPY $vgpr0_vgpr1398    %1:_(s8), %2:_(s8), %3:_(s8), %4:_(s8), %5:_(s8), %6:_(s8), %7:_(s8), %8:_(s8) = G_UNMERGE_VALUES %0399    %10:_(s32) = G_ANYEXT %1400    %11:_(s32) = G_ANYEXT %2401    %12:_(s32) = G_ANYEXT %3402    %13:_(s32) = G_ANYEXT %4403    %14:_(s32) = G_ANYEXT %5404    %15:_(s32) = G_ANYEXT %6405    %16:_(s32) = G_ANYEXT %7406    %17:_(s32) = G_ANYEXT %8407    $vgpr0 = COPY %10408    $vgpr1 = COPY %11409    $vgpr2 = COPY %12410    $vgpr3 = COPY %13411    $vgpr4 = COPY %14412    $vgpr5 = COPY %15413    $vgpr6 = COPY %16414    $vgpr7 = COPY %17415...416 417---418name: test_unmerge_s4_p1419body: |420  bb.0:421    liveins: $vgpr0_vgpr1422    ; CHECK-LABEL: name: test_unmerge_s4_p1423    ; CHECK: liveins: $vgpr0_vgpr1424    ; CHECK-NEXT: {{  $}}425    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1426    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY]](p1)427    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 16428    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s32) = G_LSHR [[UV]], [[C]](s32)429    ; CHECK-NEXT: [[LSHR1:%[0-9]+]]:_(s32) = G_LSHR [[UV1]], [[C]](s32)430    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 4431    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY [[C1]](s32)432    ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535433    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[UV]], [[C2]]434    ; CHECK-NEXT: [[LSHR2:%[0-9]+]]:_(s32) = G_LSHR [[AND]], [[COPY1]](s32)435    ; CHECK-NEXT: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 8436    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY [[C3]](s32)437    ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s32) = G_AND [[UV]], [[C2]]438    ; CHECK-NEXT: [[LSHR3:%[0-9]+]]:_(s32) = G_LSHR [[AND1]], [[COPY2]](s32)439    ; CHECK-NEXT: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 12440    ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY [[C4]](s32)441    ; CHECK-NEXT: [[AND2:%[0-9]+]]:_(s32) = G_AND [[UV]], [[C2]]442    ; CHECK-NEXT: [[LSHR4:%[0-9]+]]:_(s32) = G_LSHR [[AND2]], [[COPY3]](s32)443    ; CHECK-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY [[C1]](s32)444    ; CHECK-NEXT: [[LSHR5:%[0-9]+]]:_(s32) = G_LSHR [[LSHR]], [[COPY4]](s32)445    ; CHECK-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY [[C3]](s32)446    ; CHECK-NEXT: [[LSHR6:%[0-9]+]]:_(s32) = G_LSHR [[LSHR]], [[COPY5]](s32)447    ; CHECK-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY [[C4]](s32)448    ; CHECK-NEXT: [[LSHR7:%[0-9]+]]:_(s32) = G_LSHR [[LSHR]], [[COPY6]](s32)449    ; CHECK-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY [[C1]](s32)450    ; CHECK-NEXT: [[AND3:%[0-9]+]]:_(s32) = G_AND [[UV1]], [[C2]]451    ; CHECK-NEXT: [[LSHR8:%[0-9]+]]:_(s32) = G_LSHR [[AND3]], [[COPY7]](s32)452    ; CHECK-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY [[C3]](s32)453    ; CHECK-NEXT: [[AND4:%[0-9]+]]:_(s32) = G_AND [[UV1]], [[C2]]454    ; CHECK-NEXT: [[LSHR9:%[0-9]+]]:_(s32) = G_LSHR [[AND4]], [[COPY8]](s32)455    ; CHECK-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY [[C4]](s32)456    ; CHECK-NEXT: [[AND5:%[0-9]+]]:_(s32) = G_AND [[UV1]], [[C2]]457    ; CHECK-NEXT: [[LSHR10:%[0-9]+]]:_(s32) = G_LSHR [[AND5]], [[COPY9]](s32)458    ; CHECK-NEXT: [[LSHR11:%[0-9]+]]:_(s32) = G_LSHR [[LSHR1]], [[C1]](s32)459    ; CHECK-NEXT: [[LSHR12:%[0-9]+]]:_(s32) = G_LSHR [[LSHR1]], [[C3]](s32)460    ; CHECK-NEXT: [[LSHR13:%[0-9]+]]:_(s32) = G_LSHR [[LSHR1]], [[C4]](s32)461    ; CHECK-NEXT: $vgpr0 = COPY [[UV]](s32)462    ; CHECK-NEXT: $vgpr1 = COPY [[LSHR2]](s32)463    ; CHECK-NEXT: $vgpr2 = COPY [[LSHR3]](s32)464    ; CHECK-NEXT: $vgpr3 = COPY [[LSHR4]](s32)465    ; CHECK-NEXT: $vgpr4 = COPY [[LSHR]](s32)466    ; CHECK-NEXT: $vgpr5 = COPY [[LSHR5]](s32)467    ; CHECK-NEXT: $vgpr6 = COPY [[LSHR6]](s32)468    ; CHECK-NEXT: $vgpr7 = COPY [[LSHR7]](s32)469    ; CHECK-NEXT: $vgpr8 = COPY [[UV1]](s32)470    ; CHECK-NEXT: $vgpr9 = COPY [[LSHR8]](s32)471    ; CHECK-NEXT: $vgpr10 = COPY [[LSHR9]](s32)472    ; CHECK-NEXT: $vgpr11 = COPY [[LSHR10]](s32)473    ; CHECK-NEXT: $vgpr12 = COPY [[LSHR1]](s32)474    ; CHECK-NEXT: $vgpr13 = COPY [[LSHR11]](s32)475    ; CHECK-NEXT: $vgpr14 = COPY [[LSHR12]](s32)476    ; CHECK-NEXT: $vgpr15 = COPY [[LSHR13]](s32)477    %0:_(p1) = COPY $vgpr0_vgpr1478    %1:_(s4), %2:_(s4), %3:_(s4), %4:_(s4), %5:_(s4), %6:_(s4), %7:_(s4), %8:_(s4), %9:_(s4), %10:_(s4), %11:_(s4), %12:_(s4), %13:_(s4), %14:_(s4), %15:_(s4), %16:_(s4) = G_UNMERGE_VALUES %0479    %17:_(s32) = G_ANYEXT %1480    %18:_(s32) = G_ANYEXT %2481    %19:_(s32) = G_ANYEXT %3482    %20:_(s32) = G_ANYEXT %4483    %21:_(s32) = G_ANYEXT %5484    %22:_(s32) = G_ANYEXT %6485    %23:_(s32) = G_ANYEXT %7486    %24:_(s32) = G_ANYEXT %8487    %25:_(s32) = G_ANYEXT %9488    %26:_(s32) = G_ANYEXT %10489    %27:_(s32) = G_ANYEXT %11490    %28:_(s32) = G_ANYEXT %12491    %29:_(s32) = G_ANYEXT %13492    %30:_(s32) = G_ANYEXT %14493    %31:_(s32) = G_ANYEXT %15494    %32:_(s32) = G_ANYEXT %16495    $vgpr0 = COPY %17496    $vgpr1 = COPY %18497    $vgpr2 = COPY %19498    $vgpr3 = COPY %20499    $vgpr4 = COPY %21500    $vgpr5 = COPY %22501    $vgpr6 = COPY %23502    $vgpr7 = COPY %24503    $vgpr8 = COPY %25504    $vgpr9 = COPY %26505    $vgpr10 = COPY %27506    $vgpr11 = COPY %28507    $vgpr12 = COPY %29508    $vgpr13 = COPY %30509    $vgpr14 = COPY %31510    $vgpr15 = COPY %32511...512 513---514name: test_unmerge_s16_p1515body: |516  bb.0:517    liveins: $vgpr0_vgpr1518    ; CHECK-LABEL: name: test_unmerge_s16_p1519    ; CHECK: liveins: $vgpr0_vgpr1520    ; CHECK-NEXT: {{  $}}521    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1522    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY]](p1)523    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 16524    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s32) = G_LSHR [[UV]], [[C]](s32)525    ; CHECK-NEXT: [[LSHR1:%[0-9]+]]:_(s32) = G_LSHR [[UV1]], [[C]](s32)526    ; CHECK-NEXT: $vgpr0 = COPY [[UV]](s32)527    ; CHECK-NEXT: $vgpr1 = COPY [[LSHR]](s32)528    ; CHECK-NEXT: $vgpr2 = COPY [[UV1]](s32)529    ; CHECK-NEXT: $vgpr3 = COPY [[LSHR1]](s32)530    %0:_(p1) = COPY $vgpr0_vgpr1531    %1:_(s16), %2:_(s16), %3:_(s16), %4:_(s16) = G_UNMERGE_VALUES %0532    %5:_(s32) = G_ANYEXT %1533    %6:_(s32) = G_ANYEXT %2534    %7:_(s32) = G_ANYEXT %3535    %8:_(s32) = G_ANYEXT %4536    $vgpr0 = COPY %5537    $vgpr1 = COPY %6538    $vgpr2 = COPY %7539    $vgpr3 = COPY %8540...541 542---543name: test_unmerge_s32_p1544body: |545  bb.0:546    liveins: $vgpr0_vgpr1547    ; CHECK-LABEL: name: test_unmerge_s32_p1548    ; CHECK: liveins: $vgpr0_vgpr1549    ; CHECK-NEXT: {{  $}}550    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1551    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY]](p1)552    ; CHECK-NEXT: $vgpr0 = COPY [[UV]](s32)553    ; CHECK-NEXT: $vgpr1 = COPY [[UV1]](s32)554    %0:_(p1) = COPY $vgpr0_vgpr1555    %1:_(s32), %2:_(s32) = G_UNMERGE_VALUES %0556    $vgpr0 = COPY %1557    $vgpr1 = COPY %2558...559 560---561name: test_unmerge_s16_s32562body: |563  bb.0:564    liveins: $vgpr0565    ; CHECK-LABEL: name: test_unmerge_s16_s32566    ; CHECK: liveins: $vgpr0567    ; CHECK-NEXT: {{  $}}568    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0569    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 16570    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s32) = G_LSHR [[COPY]], [[C]](s32)571    ; CHECK-NEXT: $vgpr0 = COPY [[COPY]](s32)572    ; CHECK-NEXT: $vgpr1 = COPY [[LSHR]](s32)573    %0:_(s32) = COPY $vgpr0574    %1:_(s16), %2:_(s16) = G_UNMERGE_VALUES %0575    %3:_(s32) = G_ANYEXT %1576    %4:_(s32) = G_ANYEXT %2577    $vgpr0 = COPY %3578    $vgpr1 = COPY %4579...580 581---582name: test_unmerge_s16_p3583body: |584  bb.0:585    liveins: $vgpr0586    ; CHECK-LABEL: name: test_unmerge_s16_p3587    ; CHECK: liveins: $vgpr0588    ; CHECK-NEXT: {{  $}}589    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p3) = COPY $vgpr0590    ; CHECK-NEXT: [[PTRTOINT:%[0-9]+]]:_(s32) = G_PTRTOINT [[COPY]](p3)591    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 16592    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s32) = G_LSHR [[PTRTOINT]], [[C]](s32)593    ; CHECK-NEXT: $vgpr0 = COPY [[PTRTOINT]](s32)594    ; CHECK-NEXT: $vgpr1 = COPY [[LSHR]](s32)595    %0:_(p3) = COPY $vgpr0596    %1:_(s16), %2:_(s16) = G_UNMERGE_VALUES %0597    %3:_(s32) = G_ANYEXT %1598    %4:_(s32) = G_ANYEXT %2599    $vgpr0 = COPY %3600    $vgpr1 = COPY %4601...602 603---604name: test_unmerge_s8_p3605body: |606  bb.0:607    liveins: $vgpr0608    ; CHECK-LABEL: name: test_unmerge_s8_p3609    ; CHECK: liveins: $vgpr0610    ; CHECK-NEXT: {{  $}}611    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p3) = COPY $vgpr0612    ; CHECK-NEXT: [[PTRTOINT:%[0-9]+]]:_(s32) = G_PTRTOINT [[COPY]](p3)613    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 8614    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s32) = G_LSHR [[PTRTOINT]], [[C]](s32)615    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 16616    ; CHECK-NEXT: [[LSHR1:%[0-9]+]]:_(s32) = G_LSHR [[PTRTOINT]], [[C1]](s32)617    ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 24618    ; CHECK-NEXT: [[LSHR2:%[0-9]+]]:_(s32) = G_LSHR [[PTRTOINT]], [[C2]](s32)619    ; CHECK-NEXT: $vgpr0 = COPY [[PTRTOINT]](s32)620    ; CHECK-NEXT: $vgpr1 = COPY [[LSHR]](s32)621    ; CHECK-NEXT: $vgpr2 = COPY [[LSHR1]](s32)622    ; CHECK-NEXT: $vgpr3 = COPY [[LSHR2]](s32)623    %0:_(p3) = COPY $vgpr0624    %1:_(s8), %2:_(s8), %3:_(s8), %4:_(s8) = G_UNMERGE_VALUES %0625    %5:_(s32) = G_ANYEXT %1626    %6:_(s32) = G_ANYEXT %2627    %7:_(s32) = G_ANYEXT %3628    %8:_(s32) = G_ANYEXT %4629    $vgpr0 = COPY %5630    $vgpr1 = COPY %6631    $vgpr2 = COPY %7632    $vgpr3 = COPY %8633 634...635 636---637name: test_unmerge_s16_s64638body: |639  bb.0:640    liveins: $vgpr0_vgpr1641    ; CHECK-LABEL: name: test_unmerge_s16_s64642    ; CHECK: liveins: $vgpr0_vgpr1643    ; CHECK-NEXT: {{  $}}644    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $vgpr0_vgpr1645    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY]](s64)646    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 16647    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s32) = G_LSHR [[UV]], [[C]](s32)648    ; CHECK-NEXT: [[LSHR1:%[0-9]+]]:_(s32) = G_LSHR [[UV1]], [[C]](s32)649    ; CHECK-NEXT: $vgpr0 = COPY [[UV]](s32)650    ; CHECK-NEXT: $vgpr1 = COPY [[LSHR]](s32)651    ; CHECK-NEXT: $vgpr2 = COPY [[UV1]](s32)652    ; CHECK-NEXT: $vgpr3 = COPY [[LSHR1]](s32)653    %0:_(s64) = COPY $vgpr0_vgpr1654    %1:_(s16), %2:_(s16), %3:_(s16), %4:_(s16) = G_UNMERGE_VALUES %0655    %5:_(s32) = G_ANYEXT %1656    %6:_(s32) = G_ANYEXT %2657    %7:_(s32) = G_ANYEXT %3658    %8:_(s32) = G_ANYEXT %4659    $vgpr0 = COPY %5660    $vgpr1 = COPY %6661    $vgpr2 = COPY %7662    $vgpr3 = COPY %8663...664 665---666name: test_unmerge_s1_s3667body: |668  bb.0:669    liveins: $vgpr0670    ; CHECK-LABEL: name: test_unmerge_s1_s3671    ; CHECK: liveins: $vgpr0672    ; CHECK-NEXT: {{  $}}673    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0674    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1675    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s32) = G_LSHR [[COPY]], [[C]](s32)676    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2677    ; CHECK-NEXT: [[LSHR1:%[0-9]+]]:_(s32) = G_LSHR [[COPY]], [[C1]](s32)678    ; CHECK-NEXT: $vgpr0 = COPY [[COPY]](s32)679    ; CHECK-NEXT: $vgpr1 = COPY [[LSHR]](s32)680    ; CHECK-NEXT: $vgpr2 = COPY [[LSHR1]](s32)681    %0:_(s32) = COPY $vgpr0682    %1:_(s3) = G_TRUNC %0683    %2:_(s1), %3:_(s1), %4:_(s1) = G_UNMERGE_VALUES %1684    %5:_(s32) = G_ANYEXT %2685    %6:_(s32) = G_ANYEXT %3686    %7:_(s32) = G_ANYEXT %4687    $vgpr0 = COPY %5688    $vgpr1 = COPY %6689    $vgpr2 = COPY %7690...691 692---693name: test_unmerge_s1_s8694body: |695  bb.0:696    liveins: $vgpr0697    ; CHECK-LABEL: name: test_unmerge_s1_s8698    ; CHECK: liveins: $vgpr0699    ; CHECK-NEXT: {{  $}}700    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0701    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1702    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s32) = G_LSHR [[COPY]], [[C]](s32)703    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2704    ; CHECK-NEXT: [[LSHR1:%[0-9]+]]:_(s32) = G_LSHR [[COPY]], [[C1]](s32)705    ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3706    ; CHECK-NEXT: [[LSHR2:%[0-9]+]]:_(s32) = G_LSHR [[COPY]], [[C2]](s32)707    ; CHECK-NEXT: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 4708    ; CHECK-NEXT: [[LSHR3:%[0-9]+]]:_(s32) = G_LSHR [[COPY]], [[C3]](s32)709    ; CHECK-NEXT: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 5710    ; CHECK-NEXT: [[LSHR4:%[0-9]+]]:_(s32) = G_LSHR [[COPY]], [[C4]](s32)711    ; CHECK-NEXT: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 6712    ; CHECK-NEXT: [[LSHR5:%[0-9]+]]:_(s32) = G_LSHR [[COPY]], [[C5]](s32)713    ; CHECK-NEXT: [[C6:%[0-9]+]]:_(s32) = G_CONSTANT i32 7714    ; CHECK-NEXT: [[LSHR6:%[0-9]+]]:_(s32) = G_LSHR [[COPY]], [[C6]](s32)715    ; CHECK-NEXT: $vgpr0 = COPY [[COPY]](s32)716    ; CHECK-NEXT: $vgpr1 = COPY [[LSHR]](s32)717    ; CHECK-NEXT: $vgpr2 = COPY [[LSHR1]](s32)718    ; CHECK-NEXT: $vgpr3 = COPY [[LSHR2]](s32)719    ; CHECK-NEXT: $vgpr4 = COPY [[LSHR3]](s32)720    ; CHECK-NEXT: $vgpr5 = COPY [[LSHR4]](s32)721    ; CHECK-NEXT: $vgpr6 = COPY [[LSHR5]](s32)722    ; CHECK-NEXT: $vgpr7 = COPY [[LSHR6]](s32)723    %0:_(s32) = COPY $vgpr0724    %1:_(s8) = G_TRUNC %0725    %2:_(s1), %3:_(s1), %4:_(s1), %5:_(s1), %6:_(s1), %7:_(s1), %8:_(s1), %9:_(s1) = G_UNMERGE_VALUES %1726    %10:_(s32) = G_ANYEXT %2727    %11:_(s32) = G_ANYEXT %3728    %12:_(s32) = G_ANYEXT %4729    %13:_(s32) = G_ANYEXT %5730    %14:_(s32) = G_ANYEXT %6731    %15:_(s32) = G_ANYEXT %7732    %16:_(s32) = G_ANYEXT %8733    %17:_(s32) = G_ANYEXT %9734    $vgpr0 = COPY %10735    $vgpr1 = COPY %11736    $vgpr2 = COPY %12737    $vgpr3 = COPY %13738    $vgpr4 = COPY %14739    $vgpr5 = COPY %15740    $vgpr6 = COPY %16741    $vgpr7 = COPY %17742...743 744---745 746name: test_unmerge_s128_v2s128747body: |748  bb.0:749    liveins:  $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7750    ; CHECK-LABEL: name: test_unmerge_s128_v2s128751    ; CHECK: liveins: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7752    ; CHECK-NEXT: {{  $}}753    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s128>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7754    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s128), [[UV1:%[0-9]+]]:_(s128) = G_UNMERGE_VALUES [[COPY]](<2 x s128>)755    ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[UV]](s128)756    ; CHECK-NEXT: $vgpr4_vgpr5_vgpr6_vgpr7 = COPY [[UV1]](s128)757    %0:_(<2 x s128>) = COPY  $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7758    %1:_(s128), %2:_(s128) = G_UNMERGE_VALUES %0759    $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %1760    $vgpr4_vgpr5_vgpr6_vgpr7 = COPY %2761...762 763---764 765name: test_unmerge_s128_s256766body: |767  bb.0:768    liveins:  $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7769    ; CHECK-LABEL: name: test_unmerge_s128_s256770    ; CHECK: liveins: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7771    ; CHECK-NEXT: {{  $}}772    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s256) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7773    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s128), [[UV1:%[0-9]+]]:_(s128) = G_UNMERGE_VALUES [[COPY]](s256)774    ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[UV]](s128)775    ; CHECK-NEXT: $vgpr4_vgpr5_vgpr6_vgpr7 = COPY [[UV1]](s128)776    %0:_(s256) = COPY  $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7777    %1:_(s128), %2:_(s128) = G_UNMERGE_VALUES %0778    $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %1779    $vgpr4_vgpr5_vgpr6_vgpr7 = COPY %2780...781 782---783 784name: test_unmerge_s256_s512785body: |786  bb.0:787    liveins:  $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15788 789    ; CHECK-LABEL: name: test_unmerge_s256_s512790    ; CHECK: liveins: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15791    ; CHECK-NEXT: {{  $}}792    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s512) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15793    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s256), [[UV1:%[0-9]+]]:_(s256) = G_UNMERGE_VALUES [[COPY]](s512)794    ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = COPY [[UV]](s256)795    ; CHECK-NEXT: $vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = COPY [[UV1]](s256)796    %0:_(s512) = COPY  $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15797    %1:_(s256), %2:_(s256) = G_UNMERGE_VALUES %0798    $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = COPY %1799    $vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = COPY %2800...801 802---803 804name: test_unmerge_s256_v2s256805body: |806  bb.0:807    liveins:  $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15808 809    ; CHECK-LABEL: name: test_unmerge_s256_v2s256810    ; CHECK: liveins: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15811    ; CHECK-NEXT: {{  $}}812    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s256>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15813    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s256), [[UV1:%[0-9]+]]:_(s256) = G_UNMERGE_VALUES [[COPY]](<2 x s256>)814    ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = COPY [[UV]](s256)815    ; CHECK-NEXT: $vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = COPY [[UV1]](s256)816    %0:_(<2 x s256>) = COPY  $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15817    %1:_(s256), %2:_(s256) = G_UNMERGE_VALUES %0818    $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = COPY %1819    $vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = COPY %2820...821 822---823 824name: test_unmerge_s512_s1024825body: |826  bb.0:827    liveins:  $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31828 829    ; CHECK-LABEL: name: test_unmerge_s512_s1024830    ; CHECK: liveins: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31831    ; CHECK-NEXT: {{  $}}832    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s1024) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31833    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s512), [[UV1:%[0-9]+]]:_(s512) = G_UNMERGE_VALUES [[COPY]](s1024)834    ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = COPY [[UV]](s512)835    ; CHECK-NEXT: $vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31 = COPY [[UV1]](s512)836    %0:_(s1024) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31837    %1:_(s512), %2:_(s512) = G_UNMERGE_VALUES %0838    $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = COPY %1839    $vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31 = COPY %2840...841 842---843 844name: test_unmerge_s512_v2s512845body: |846  bb.0:847    liveins:  $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31848 849    ; CHECK-LABEL: name: test_unmerge_s512_v2s512850    ; CHECK: liveins: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31851    ; CHECK-NEXT: {{  $}}852    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s512>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31853    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s512), [[UV1:%[0-9]+]]:_(s512) = G_UNMERGE_VALUES [[COPY]](<2 x s512>)854    ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = COPY [[UV]](s512)855    ; CHECK-NEXT: $vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31 = COPY [[UV1]](s512)856    %0:_(<2 x s512>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31857    %1:_(s512), %2:_(s512) = G_UNMERGE_VALUES %0858    $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = COPY %1859    $vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31 = COPY %2860...861 862---863name: test_unmerge_v2s1864body: |865  bb.0:866    ; CHECK-LABEL: name: test_unmerge_v2s1867    ; CHECK: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF868    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s1) = G_TRUNC [[DEF]](s32)869    ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s1) = G_TRUNC [[DEF]](s32)870    ; CHECK-NEXT: S_NOP 0, implicit [[TRUNC]](s1)871    ; CHECK-NEXT: S_NOP 0, implicit [[TRUNC1]](s1)872    %0:_(<2 x s1>) = G_IMPLICIT_DEF873    %1:_(s1), %2:_(s1) = G_UNMERGE_VALUES %0874    S_NOP 0, implicit %1875    S_NOP 0, implicit %2876...877 878---879name: test_unmerge_s8_v4s8880body: |881  bb.0:882    liveins: $vgpr0883 884    ; CHECK-LABEL: name: test_unmerge_s8_v4s8885    ; CHECK: liveins: $vgpr0886    ; CHECK-NEXT: {{  $}}887    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0888    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 8889    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s32) = G_LSHR [[COPY]], [[C]](s32)890    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 16891    ; CHECK-NEXT: [[LSHR1:%[0-9]+]]:_(s32) = G_LSHR [[COPY]], [[C1]](s32)892    ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 24893    ; CHECK-NEXT: [[LSHR2:%[0-9]+]]:_(s32) = G_LSHR [[COPY]], [[C2]](s32)894    ; CHECK-NEXT: $vgpr0 = COPY [[COPY]](s32)895    ; CHECK-NEXT: $vgpr1 = COPY [[LSHR]](s32)896    ; CHECK-NEXT: $vgpr2 = COPY [[LSHR1]](s32)897    ; CHECK-NEXT: $vgpr3 = COPY [[LSHR2]](s32)898    %0:_(s32) = COPY $vgpr0899    %1:_(<4 x s8>) = G_BITCAST %0900    %2:_(s8), %3:_(s8),  %4:_(s8), %5:_(s8) = G_UNMERGE_VALUES %1901    %6:_(s32) = G_ANYEXT %2902    %7:_(s32) = G_ANYEXT %3903    %8:_(s32) = G_ANYEXT %4904    %9:_(s32) = G_ANYEXT %5905    $vgpr0 = COPY %6906    $vgpr1 = COPY %7907    $vgpr2 = COPY %8908    $vgpr3 = COPY %9909...910 911---912name: test_unmerge_s8_v3s8913body: |914  bb.0:915    liveins: $vgpr0916 917    ; CHECK-LABEL: name: test_unmerge_s8_v3s8918    ; CHECK: liveins: $vgpr0919    ; CHECK-NEXT: {{  $}}920    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0921    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 8922    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s32) = G_LSHR [[COPY]], [[C]](s32)923    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 16924    ; CHECK-NEXT: [[LSHR1:%[0-9]+]]:_(s32) = G_LSHR [[COPY]], [[C1]](s32)925    ; CHECK-NEXT: $vgpr0 = COPY [[COPY]](s32)926    ; CHECK-NEXT: $vgpr1 = COPY [[LSHR]](s32)927    ; CHECK-NEXT: $vgpr2 = COPY [[LSHR1]](s32)928    %0:_(s32) = COPY $vgpr0929    %1:_(s24) = G_TRUNC %0930    %2:_(<3 x s8>) = G_BITCAST %1931    %3:_(s8), %4:_(s8),  %5:_(s8) = G_UNMERGE_VALUES %2932    %6:_(s32) = G_ANYEXT %3933    %7:_(s32) = G_ANYEXT %4934    %8:_(s32) = G_ANYEXT %5935    $vgpr0 = COPY %6936    $vgpr1 = COPY %7937    $vgpr2 = COPY %8938...939 940---941name: test_unmerge_s8_v2s8942body: |943  bb.0:944    liveins: $vgpr0945 946    ; CHECK-LABEL: name: test_unmerge_s8_v2s8947    ; CHECK: liveins: $vgpr0948    ; CHECK-NEXT: {{  $}}949    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0950    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 8951    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s32) = G_LSHR [[COPY]], [[C]](s32)952    ; CHECK-NEXT: $vgpr0 = COPY [[COPY]](s32)953    ; CHECK-NEXT: $vgpr1 = COPY [[LSHR]](s32)954    %0:_(s32) = COPY $vgpr0955    %1:_(s16) = G_TRUNC %0956    %2:_(<2 x s8>) = G_BITCAST %1957    %3:_(s8), %4:_(s8) = G_UNMERGE_VALUES %2958    %5:_(s32) = G_ANYEXT %3959    %6:_(s32) = G_ANYEXT %4960    $vgpr0 = COPY %5961    $vgpr1 = COPY %6962 963...964 965---966name: test_unmerge_v3s32_v12s32967body: |968  bb.0:969    liveins: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5, $vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11970 971    ; CHECK-LABEL: name: test_unmerge_v3s32_v12s32972    ; CHECK: liveins: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5, $vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11973    ; CHECK-NEXT: {{  $}}974    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<6 x s32>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5975    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<6 x s32>) = COPY $vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11976    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(<3 x s32>), [[UV1:%[0-9]+]]:_(<3 x s32>) = G_UNMERGE_VALUES [[COPY]](<6 x s32>)977    ; CHECK-NEXT: [[UV2:%[0-9]+]]:_(<3 x s32>), [[UV3:%[0-9]+]]:_(<3 x s32>) = G_UNMERGE_VALUES [[COPY1]](<6 x s32>)978    ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2 = COPY [[UV]](<3 x s32>)979    ; CHECK-NEXT: $vgpr3_vgpr4_vgpr5 = COPY [[UV1]](<3 x s32>)980    ; CHECK-NEXT: $vgpr6_vgpr7_vgpr8 = COPY [[UV2]](<3 x s32>)981    ; CHECK-NEXT: $vgpr9_vgpr10_vgpr11 = COPY [[UV3]](<3 x s32>)982    %0:_(<6 x s32>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5983    %1:_(<6 x s32>) = COPY $vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11984    %2:_(<12 x s32>) = G_CONCAT_VECTORS %0, %1985    %3:_(<3 x s32>), %4:_(<3 x s32>), %5:_(<3 x s32>), %6:_(<3 x s32>) = G_UNMERGE_VALUES %2986    $vgpr0_vgpr1_vgpr2 = COPY %3987    $vgpr3_vgpr4_vgpr5 = COPY %4988    $vgpr6_vgpr7_vgpr8 = COPY %5989    $vgpr9_vgpr10_vgpr11 = COPY %6990 991...992 993---994name: test_unmerge_v3s8_v12s8995body: |996  bb.0:997    liveins: $vgpr0_vgpr1_vgpr2998 999    ; CHECK-LABEL: name: test_unmerge_v3s8_v12s81000    ; CHECK: liveins: $vgpr0_vgpr1_vgpr21001    ; CHECK-NEXT: {{  $}}1002    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<3 x s32>) = COPY $vgpr0_vgpr1_vgpr21003    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY]](<3 x s32>)1004    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 81005    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s32) = G_LSHR [[UV]], [[C]](s32)1006    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 161007    ; CHECK-NEXT: [[LSHR1:%[0-9]+]]:_(s32) = G_LSHR [[UV]], [[C1]](s32)1008    ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 241009    ; CHECK-NEXT: [[LSHR2:%[0-9]+]]:_(s32) = G_LSHR [[UV]], [[C2]](s32)1010    ; CHECK-NEXT: [[LSHR3:%[0-9]+]]:_(s32) = G_LSHR [[UV1]], [[C]](s32)1011    ; CHECK-NEXT: [[LSHR4:%[0-9]+]]:_(s32) = G_LSHR [[UV1]], [[C1]](s32)1012    ; CHECK-NEXT: [[LSHR5:%[0-9]+]]:_(s32) = G_LSHR [[UV1]], [[C2]](s32)1013    ; CHECK-NEXT: [[LSHR6:%[0-9]+]]:_(s32) = G_LSHR [[UV2]], [[C]](s32)1014    ; CHECK-NEXT: [[LSHR7:%[0-9]+]]:_(s32) = G_LSHR [[UV2]], [[C1]](s32)1015    ; CHECK-NEXT: [[LSHR8:%[0-9]+]]:_(s32) = G_LSHR [[UV2]], [[C2]](s32)1016    ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<3 x s32>) = G_BUILD_VECTOR [[UV]](s32), [[LSHR]](s32), [[LSHR1]](s32)1017    ; CHECK-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<3 x s32>) = G_BUILD_VECTOR [[LSHR2]](s32), [[UV1]](s32), [[LSHR3]](s32)1018    ; CHECK-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<3 x s32>) = G_BUILD_VECTOR [[LSHR4]](s32), [[LSHR5]](s32), [[UV2]](s32)1019    ; CHECK-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<3 x s32>) = G_BUILD_VECTOR [[LSHR6]](s32), [[LSHR7]](s32), [[LSHR8]](s32)1020    ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2 = COPY [[BUILD_VECTOR]](<3 x s32>)1021    ; CHECK-NEXT: $vgpr3_vgpr4_vgpr5 = COPY [[BUILD_VECTOR1]](<3 x s32>)1022    ; CHECK-NEXT: $vgpr6_vgpr7_vgpr8 = COPY [[BUILD_VECTOR2]](<3 x s32>)1023    ; CHECK-NEXT: $vgpr9_vgpr10_vgpr11 = COPY [[BUILD_VECTOR3]](<3 x s32>)1024    %0:_(<3 x s32>) = COPY $vgpr0_vgpr1_vgpr21025    %1:_(<12 x s8>) = G_BITCAST %01026    %2:_(<3 x s8>), %3:_(<3 x s8>), %4:_(<3 x s8>), %5:_(<3 x s8>) = G_UNMERGE_VALUES %11027    %6:_(<3 x s32>) = G_ANYEXT %21028    %7:_(<3 x s32>) = G_ANYEXT %31029    %8:_(<3 x s32>) = G_ANYEXT %41030    %9:_(<3 x s32>) = G_ANYEXT %51031    $vgpr0_vgpr1_vgpr2 = COPY %61032    $vgpr3_vgpr4_vgpr5 = COPY %71033    $vgpr6_vgpr7_vgpr8 = COPY %81034    $vgpr9_vgpr10_vgpr11 = COPY %91035 1036...1037 1038---1039name: test_unmerge_v3s16_v12s161040body: |1041  bb.0:1042    liveins: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr51043 1044    ; CHECK-LABEL: name: test_unmerge_v3s16_v12s161045    ; CHECK: liveins: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr51046    ; CHECK-NEXT: {{  $}}1047    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<12 x s16>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr51048    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(<2 x s16>), [[UV1:%[0-9]+]]:_(<2 x s16>), [[UV2:%[0-9]+]]:_(<2 x s16>), [[UV3:%[0-9]+]]:_(<2 x s16>), [[UV4:%[0-9]+]]:_(<2 x s16>), [[UV5:%[0-9]+]]:_(<2 x s16>) = G_UNMERGE_VALUES [[COPY]](<12 x s16>)1049    ; CHECK-NEXT: [[BITCAST:%[0-9]+]]:_(s32) = G_BITCAST [[UV]](<2 x s16>)1050    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 161051    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s32) = G_LSHR [[BITCAST]], [[C]](s32)1052    ; CHECK-NEXT: [[BITCAST1:%[0-9]+]]:_(s32) = G_BITCAST [[UV1]](<2 x s16>)1053    ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<3 x s32>) = G_BUILD_VECTOR [[BITCAST]](s32), [[LSHR]](s32), [[BITCAST1]](s32)1054    ; CHECK-NEXT: [[UV6:%[0-9]+]]:_(<2 x s16>), [[UV7:%[0-9]+]]:_(<2 x s16>), [[UV8:%[0-9]+]]:_(<2 x s16>), [[UV9:%[0-9]+]]:_(<2 x s16>), [[UV10:%[0-9]+]]:_(<2 x s16>), [[UV11:%[0-9]+]]:_(<2 x s16>) = G_UNMERGE_VALUES [[COPY]](<12 x s16>)1055    ; CHECK-NEXT: [[BITCAST2:%[0-9]+]]:_(s32) = G_BITCAST [[UV7]](<2 x s16>)1056    ; CHECK-NEXT: [[LSHR1:%[0-9]+]]:_(s32) = G_LSHR [[BITCAST2]], [[C]](s32)1057    ; CHECK-NEXT: [[BITCAST3:%[0-9]+]]:_(s32) = G_BITCAST [[UV8]](<2 x s16>)1058    ; CHECK-NEXT: [[LSHR2:%[0-9]+]]:_(s32) = G_LSHR [[BITCAST3]], [[C]](s32)1059    ; CHECK-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<3 x s32>) = G_BUILD_VECTOR [[LSHR1]](s32), [[BITCAST3]](s32), [[LSHR2]](s32)1060    ; CHECK-NEXT: [[UV12:%[0-9]+]]:_(<2 x s16>), [[UV13:%[0-9]+]]:_(<2 x s16>), [[UV14:%[0-9]+]]:_(<2 x s16>), [[UV15:%[0-9]+]]:_(<2 x s16>), [[UV16:%[0-9]+]]:_(<2 x s16>), [[UV17:%[0-9]+]]:_(<2 x s16>) = G_UNMERGE_VALUES [[COPY]](<12 x s16>)1061    ; CHECK-NEXT: [[BITCAST4:%[0-9]+]]:_(s32) = G_BITCAST [[UV15]](<2 x s16>)1062    ; CHECK-NEXT: [[LSHR3:%[0-9]+]]:_(s32) = G_LSHR [[BITCAST4]], [[C]](s32)1063    ; CHECK-NEXT: [[BITCAST5:%[0-9]+]]:_(s32) = G_BITCAST [[UV16]](<2 x s16>)1064    ; CHECK-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<3 x s32>) = G_BUILD_VECTOR [[BITCAST4]](s32), [[LSHR3]](s32), [[BITCAST5]](s32)1065    ; CHECK-NEXT: [[UV18:%[0-9]+]]:_(<2 x s16>), [[UV19:%[0-9]+]]:_(<2 x s16>), [[UV20:%[0-9]+]]:_(<2 x s16>), [[UV21:%[0-9]+]]:_(<2 x s16>), [[UV22:%[0-9]+]]:_(<2 x s16>), [[UV23:%[0-9]+]]:_(<2 x s16>) = G_UNMERGE_VALUES [[COPY]](<12 x s16>)1066    ; CHECK-NEXT: [[BITCAST6:%[0-9]+]]:_(s32) = G_BITCAST [[UV22]](<2 x s16>)1067    ; CHECK-NEXT: [[LSHR4:%[0-9]+]]:_(s32) = G_LSHR [[BITCAST6]], [[C]](s32)1068    ; CHECK-NEXT: [[BITCAST7:%[0-9]+]]:_(s32) = G_BITCAST [[UV23]](<2 x s16>)1069    ; CHECK-NEXT: [[LSHR5:%[0-9]+]]:_(s32) = G_LSHR [[BITCAST7]], [[C]](s32)1070    ; CHECK-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<3 x s32>) = G_BUILD_VECTOR [[LSHR4]](s32), [[BITCAST7]](s32), [[LSHR5]](s32)1071    ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2 = COPY [[BUILD_VECTOR]](<3 x s32>)1072    ; CHECK-NEXT: $vgpr3_vgpr4_vgpr5 = COPY [[BUILD_VECTOR1]](<3 x s32>)1073    ; CHECK-NEXT: $vgpr6_vgpr7_vgpr8 = COPY [[BUILD_VECTOR2]](<3 x s32>)1074    ; CHECK-NEXT: $vgpr9_vgpr10_vgpr11 = COPY [[BUILD_VECTOR3]](<3 x s32>)1075    %0:_(<12 x s16>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr51076    %1:_(<3 x s16>), %2:_(<3 x s16>), %3:_(<3 x s16>), %4:_(<3 x s16>) = G_UNMERGE_VALUES %01077    %5:_(<3 x s32>) = G_ANYEXT %11078    %6:_(<3 x s32>) = G_ANYEXT %21079    %7:_(<3 x s32>) = G_ANYEXT %31080    %8:_(<3 x s32>) = G_ANYEXT %41081    $vgpr0_vgpr1_vgpr2 = COPY %51082    $vgpr3_vgpr4_vgpr5 = COPY %61083    $vgpr6_vgpr7_vgpr8 = COPY %71084    $vgpr9_vgpr10_vgpr11 = COPY %81085 1086...1087 1088---1089name: test_unmerge_through_copy1090body: |1091  bb.0:1092    liveins: $vgpr01093 1094    ; CHECK-LABEL: name: test_unmerge_through_copy1095    ; CHECK: liveins: $vgpr01096    ; CHECK-NEXT: {{  $}}1097    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr01098    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2551099    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]1100    ; CHECK-NEXT: $vgpr0 = COPY [[AND]](s32)1101    %0:_(s32) = COPY $vgpr01102    %1:_(s16), %2:_(s16) = G_UNMERGE_VALUES %0:_(s32)1103    %3:_(s16) = COPY %1:_(s16)1104    %4:_(s8), %5:_(s8) = G_UNMERGE_VALUES %3:_(s16)1105    %6:_(s32) = G_ZEXT %4:_(s8)1106    $vgpr0 = COPY %6:_(s32)1107...1108