brintos

brintos / llvm-project-archived public Read only

0
0
Text · 24.3 KiB · a030506 Raw
593 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn-mesa-mesa3d -mcpu=tahiti -run-pass=instruction-select -verify-machineinstrs -global-isel-abort=2 -pass-remarks-missed='gisel*'  -o - %s | FileCheck -check-prefix=GCN  %s3 4---5name: test_merge_values_v_s64_v_s32_v_s326legalized:       true7regBankSelected: true8tracksRegLiveness: true9 10body: |11  bb.0:12    liveins: $vgpr0, $vgpr113 14    ; GCN-LABEL: name: test_merge_values_v_s64_v_s32_v_s3215    ; GCN: liveins: $vgpr0, $vgpr116    ; GCN-NEXT: {{  $}}17    ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr018    ; GCN-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr119    ; GCN-NEXT: [[REG_SEQUENCE:%[0-9]+]]:vreg_64 = REG_SEQUENCE [[COPY]], %subreg.sub0, [[COPY1]], %subreg.sub120    ; GCN-NEXT: S_ENDPGM 0, implicit [[REG_SEQUENCE]]21    %0:vgpr(s32) = COPY $vgpr022    %1:vgpr(s32) = COPY $vgpr123    %2:vgpr(s64) = G_MERGE_VALUES %0, %124    S_ENDPGM 0, implicit %225...26 27---28name: test_merge_values_v_s64_s_s32_v_s3229legalized:       true30regBankSelected: true31tracksRegLiveness: true32 33body: |34  bb.0:35    liveins: $sgpr0, $vgpr036 37    ; GCN-LABEL: name: test_merge_values_v_s64_s_s32_v_s3238    ; GCN: liveins: $sgpr0, $vgpr039    ; GCN-NEXT: {{  $}}40    ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr041    ; GCN-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr042    ; GCN-NEXT: [[REG_SEQUENCE:%[0-9]+]]:vreg_64 = REG_SEQUENCE [[COPY]], %subreg.sub0, [[COPY1]], %subreg.sub143    ; GCN-NEXT: S_ENDPGM 0, implicit [[REG_SEQUENCE]]44    %0:sgpr(s32) = COPY $sgpr045    %1:vgpr(s32) = COPY $vgpr046    %2:vgpr(s64) = G_MERGE_VALUES %0, %147    S_ENDPGM 0, implicit %248...49 50---51name: test_merge_values_v_s64_v_s32_s_s3252legalized:       true53regBankSelected: true54tracksRegLiveness: true55 56body: |57  bb.0:58    liveins: $sgpr0, $vgpr059 60    ; GCN-LABEL: name: test_merge_values_v_s64_v_s32_s_s3261    ; GCN: liveins: $sgpr0, $vgpr062    ; GCN-NEXT: {{  $}}63    ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr064    ; GCN-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr065    ; GCN-NEXT: [[REG_SEQUENCE:%[0-9]+]]:vreg_64 = REG_SEQUENCE [[COPY]], %subreg.sub0, [[COPY1]], %subreg.sub166    ; GCN-NEXT: S_ENDPGM 0, implicit [[REG_SEQUENCE]]67    %0:vgpr(s32) = COPY $vgpr068    %1:sgpr(s32) = COPY $sgpr069    %2:vgpr(s64) = G_MERGE_VALUES %0, %170    S_ENDPGM 0, implicit %271...72 73---74name: test_merge_values_s_s64_s_s32_s_s3275legalized:       true76regBankSelected: true77tracksRegLiveness: true78 79body: |80  bb.0:81    liveins: $sgpr0, $sgpr182 83    ; GCN-LABEL: name: test_merge_values_s_s64_s_s32_s_s3284    ; GCN: liveins: $sgpr0, $sgpr185    ; GCN-NEXT: {{  $}}86    ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr087    ; GCN-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr188    ; GCN-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sreg_64 = REG_SEQUENCE [[COPY]], %subreg.sub0, [[COPY1]], %subreg.sub189    ; GCN-NEXT: S_ENDPGM 0, implicit [[REG_SEQUENCE]]90    %0:sgpr(s32) = COPY $sgpr091    %1:sgpr(s32) = COPY $sgpr192    %2:sgpr(s64) = G_MERGE_VALUES %0, %193    S_ENDPGM 0, implicit %294...95 96---97name: test_merge_values_s_s96_s_s32_s_s32_s_s3298legalized:       true99regBankSelected: true100 101body: |102  bb.0:103    liveins: $sgpr0, $sgpr1, $sgpr2104 105    ; GCN-LABEL: name: test_merge_values_s_s96_s_s32_s_s32_s_s32106    ; GCN: liveins: $sgpr0, $sgpr1, $sgpr2107    ; GCN-NEXT: {{  $}}108    ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0109    ; GCN-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1110    ; GCN-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY $sgpr2111    ; GCN-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_96 = REG_SEQUENCE [[COPY]], %subreg.sub0, [[COPY1]], %subreg.sub1, [[COPY2]], %subreg.sub2112    ; GCN-NEXT: $sgpr0_sgpr1_sgpr2 = COPY [[REG_SEQUENCE]]113    %0:sgpr(s32) = COPY $sgpr0114    %1:sgpr(s32) = COPY $sgpr1115    %2:sgpr(s32) = COPY $sgpr2116    %3:sgpr(s96) = G_MERGE_VALUES %0, %1, %2117    $sgpr0_sgpr1_sgpr2 = COPY %3118...119 120---121name: test_merge_values_v_s96_v_s32_v_s32_v_s32122legalized:       true123regBankSelected: true124tracksRegLiveness: true125 126body: |127  bb.0:128    liveins: $vgpr0, $vgpr1, $vgpr2129 130    ; GCN-LABEL: name: test_merge_values_v_s96_v_s32_v_s32_v_s32131    ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2132    ; GCN-NEXT: {{  $}}133    ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0134    ; GCN-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1135    ; GCN-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2136    ; GCN-NEXT: [[REG_SEQUENCE:%[0-9]+]]:vreg_96 = REG_SEQUENCE [[COPY]], %subreg.sub0, [[COPY1]], %subreg.sub1, [[COPY2]], %subreg.sub2137    ; GCN-NEXT: $vgpr0_vgpr1_vgpr2 = COPY [[REG_SEQUENCE]]138    %0:vgpr(s32) = COPY $vgpr0139    %1:vgpr(s32) = COPY $vgpr1140    %2:vgpr(s32) = COPY $vgpr2141    %3:vgpr(s96) = G_MERGE_VALUES %0, %1, %2142    $vgpr0_vgpr1_vgpr2 = COPY %3143...144 145---146name: test_merge_values_s_s128_s_s32_s_s32_s_s32_s_s32147legalized:       true148regBankSelected: true149tracksRegLiveness: true150 151body: |152  bb.0:153    liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3154 155    ; GCN-LABEL: name: test_merge_values_s_s128_s_s32_s_s32_s_s32_s_s32156    ; GCN: liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3157    ; GCN-NEXT: {{  $}}158    ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0159    ; GCN-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1160    ; GCN-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY $sgpr2161    ; GCN-NEXT: [[COPY3:%[0-9]+]]:sreg_32 = COPY $sgpr3162    ; GCN-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_128 = REG_SEQUENCE [[COPY]], %subreg.sub0, [[COPY1]], %subreg.sub1, [[COPY2]], %subreg.sub2, [[COPY3]], %subreg.sub3163    ; GCN-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3 = COPY [[REG_SEQUENCE]]164    %0:sgpr(s32) = COPY $sgpr0165    %1:sgpr(s32) = COPY $sgpr1166    %2:sgpr(s32) = COPY $sgpr2167    %3:sgpr(s32) = COPY $sgpr3168    %4:sgpr(s128) = G_MERGE_VALUES %0, %1, %2, %3169    $sgpr0_sgpr1_sgpr2_sgpr3 = COPY %4170...171 172---173name: test_merge_values_v_s128_v_s32_v_s32_v_s32174legalized:       true175regBankSelected: true176tracksRegLiveness: true177 178body: |179  bb.0:180    liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3181 182    ; GCN-LABEL: name: test_merge_values_v_s128_v_s32_v_s32_v_s32183    ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3184    ; GCN-NEXT: {{  $}}185    ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0186    ; GCN-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1187    ; GCN-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2188    ; GCN-NEXT: [[COPY3:%[0-9]+]]:vgpr_32 = COPY $vgpr3189    ; GCN-NEXT: [[REG_SEQUENCE:%[0-9]+]]:vreg_128 = REG_SEQUENCE [[COPY]], %subreg.sub0, [[COPY1]], %subreg.sub1, [[COPY2]], %subreg.sub2, [[COPY3]], %subreg.sub3190    ; GCN-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[REG_SEQUENCE]]191    %0:vgpr(s32) = COPY $vgpr0192    %1:vgpr(s32) = COPY $vgpr1193    %2:vgpr(s32) = COPY $vgpr2194    %3:vgpr(s32) = COPY $vgpr3195    %4:vgpr(s128) = G_MERGE_VALUES %0, %1, %2, %3196    $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %4197...198 199---200name: test_merge_values_s_s128_s_s64_s_s64201legalized:       true202regBankSelected: true203tracksRegLiveness: true204 205body: |206  bb.0:207    liveins: $sgpr0_sgpr1, $sgpr2_sgpr3208 209    ; GCN-LABEL: name: test_merge_values_s_s128_s_s64_s_s64210    ; GCN: liveins: $sgpr0_sgpr1, $sgpr2_sgpr3211    ; GCN-NEXT: {{  $}}212    ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1213    ; GCN-NEXT: [[COPY1:%[0-9]+]]:sreg_64 = COPY $sgpr2_sgpr3214    ; GCN-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_128 = REG_SEQUENCE [[COPY]], %subreg.sub0_sub1, [[COPY1]], %subreg.sub2_sub3215    ; GCN-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3 = COPY [[REG_SEQUENCE]]216    %0:sgpr(s64) = COPY $sgpr0_sgpr1217    %1:sgpr(s64) = COPY $sgpr2_sgpr3218    %4:sgpr(s128) = G_MERGE_VALUES %0, %1219    $sgpr0_sgpr1_sgpr2_sgpr3 = COPY %4220...221 222---223name: test_merge_values_v_s128_v_s64_v_s64224legalized:       true225regBankSelected: true226tracksRegLiveness: true227 228body: |229  bb.0:230    liveins: $vgpr0_vgpr1, $vgpr2_vgpr3231 232    ; GCN-LABEL: name: test_merge_values_v_s128_v_s64_v_s64233    ; GCN: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3234    ; GCN-NEXT: {{  $}}235    ; GCN-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1236    ; GCN-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3237    ; GCN-NEXT: [[REG_SEQUENCE:%[0-9]+]]:vreg_128 = REG_SEQUENCE [[COPY]], %subreg.sub0_sub1, [[COPY1]], %subreg.sub2_sub3238    ; GCN-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[REG_SEQUENCE]]239    %0:vgpr(s64) = COPY $vgpr0_vgpr1240    %1:vgpr(s64) = COPY $vgpr2_vgpr3241    %2:vgpr(s128) = G_MERGE_VALUES %0, %1242    $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %2243...244 245---246name: test_merge_values_s_s160_s_s32_s_s32_s_s32_s_s32_s_s32247legalized:       true248regBankSelected: true249tracksRegLiveness: true250 251body: |252  bb.0:253    liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $sgpr4254 255    ; GCN-LABEL: name: test_merge_values_s_s160_s_s32_s_s32_s_s32_s_s32_s_s32256    ; GCN: liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $sgpr4257    ; GCN-NEXT: {{  $}}258    ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0259    ; GCN-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1260    ; GCN-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY $sgpr2261    ; GCN-NEXT: [[COPY3:%[0-9]+]]:sreg_32 = COPY $sgpr3262    ; GCN-NEXT: [[COPY4:%[0-9]+]]:sreg_32 = COPY $sgpr4263    ; GCN-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_160 = REG_SEQUENCE [[COPY]], %subreg.sub0, [[COPY1]], %subreg.sub1, [[COPY2]], %subreg.sub2, [[COPY3]], %subreg.sub3, [[COPY4]], %subreg.sub4264    ; GCN-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4 = COPY [[REG_SEQUENCE]]265    %0:sgpr(s32) = COPY $sgpr0266    %1:sgpr(s32) = COPY $sgpr1267    %2:sgpr(s32) = COPY $sgpr2268    %3:sgpr(s32) = COPY $sgpr3269    %4:sgpr(s32) = COPY $sgpr4270    %5:sgpr(s160) = G_MERGE_VALUES %0, %1, %2, %3, %4271    $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4 = COPY %5272...273 274---275name: test_merge_values_v_s160_v_s32_v_s32_v_s32_v_s32_v_s32276legalized:       true277regBankSelected: true278tracksRegLiveness: true279 280body: |281  bb.0:282    liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4283 284    ; GCN-LABEL: name: test_merge_values_v_s160_v_s32_v_s32_v_s32_v_s32_v_s32285    ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4286    ; GCN-NEXT: {{  $}}287    ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0288    ; GCN-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1289    ; GCN-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2290    ; GCN-NEXT: [[COPY3:%[0-9]+]]:vgpr_32 = COPY $vgpr3291    ; GCN-NEXT: [[COPY4:%[0-9]+]]:vgpr_32 = COPY $vgpr4292    ; GCN-NEXT: [[REG_SEQUENCE:%[0-9]+]]:vreg_160 = REG_SEQUENCE [[COPY]], %subreg.sub0, [[COPY1]], %subreg.sub1, [[COPY2]], %subreg.sub2, [[COPY3]], %subreg.sub3, [[COPY4]], %subreg.sub4293    ; GCN-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4 = COPY [[REG_SEQUENCE]]294    %0:vgpr(s32) = COPY $vgpr0295    %1:vgpr(s32) = COPY $vgpr1296    %2:vgpr(s32) = COPY $vgpr2297    %3:vgpr(s32) = COPY $vgpr3298    %4:vgpr(s32) = COPY $vgpr4299    %5:vgpr(s160) = G_MERGE_VALUES %0, %1, %2, %3, %4300    $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4 = COPY %5301...302 303---304name: test_merge_values_s_s192_s_s64_s_s64_s_s64305legalized:       true306regBankSelected: true307tracksRegLiveness: true308 309body: |310  bb.0:311    liveins: $sgpr0_sgpr1, $sgpr2_sgpr3, $sgpr4_sgpr5312 313    ; GCN-LABEL: name: test_merge_values_s_s192_s_s64_s_s64_s_s64314    ; GCN: liveins: $sgpr0_sgpr1, $sgpr2_sgpr3, $sgpr4_sgpr5315    ; GCN-NEXT: {{  $}}316    ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1317    ; GCN-NEXT: [[COPY1:%[0-9]+]]:sreg_64 = COPY $sgpr2_sgpr3318    ; GCN-NEXT: [[COPY2:%[0-9]+]]:sreg_64 = COPY $sgpr4_sgpr5319    ; GCN-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_192 = REG_SEQUENCE [[COPY]], %subreg.sub0_sub1, [[COPY1]], %subreg.sub2_sub3, [[COPY2]], %subreg.sub4_sub5320    ; GCN-NEXT: S_ENDPGM 0, implicit [[REG_SEQUENCE]]321    %0:sgpr(s64) = COPY $sgpr0_sgpr1322    %1:sgpr(s64) = COPY $sgpr2_sgpr3323    %2:sgpr(s64) = COPY $sgpr4_sgpr5324    %3:sgpr(s192) = G_MERGE_VALUES %0, %1, %2325    S_ENDPGM 0, implicit %3326...327 328---329name: test_merge_values_v_s192_v_s64_v_s64_v_s64330legalized:       true331regBankSelected: true332tracksRegLiveness: true333 334body: |335  bb.0:336    liveins: $vgpr0_vgpr1, $vgpr2_vgpr3, $vgpr4_vgpr5337 338    ; GCN-LABEL: name: test_merge_values_v_s192_v_s64_v_s64_v_s64339    ; GCN: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3, $vgpr4_vgpr5340    ; GCN-NEXT: {{  $}}341    ; GCN-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1342    ; GCN-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3343    ; GCN-NEXT: [[COPY2:%[0-9]+]]:vreg_64 = COPY $vgpr4_vgpr5344    ; GCN-NEXT: [[REG_SEQUENCE:%[0-9]+]]:vreg_192 = REG_SEQUENCE [[COPY]], %subreg.sub0_sub1, [[COPY1]], %subreg.sub2_sub3, [[COPY2]], %subreg.sub4_sub5345    ; GCN-NEXT: S_ENDPGM 0, implicit [[REG_SEQUENCE]]346    %0:vgpr(s64) = COPY $vgpr0_vgpr1347    %1:vgpr(s64) = COPY $vgpr2_vgpr3348    %2:vgpr(s64) = COPY $vgpr4_vgpr5349    %3:vgpr(s192) = G_MERGE_VALUES %0, %1, %2350    S_ENDPGM 0, implicit %3351...352 353---354name: test_merge_values_s_s256_s_s64_s_s64_s_s64_s_s64355legalized:       true356regBankSelected: true357tracksRegLiveness: true358 359body: |360  bb.0:361    liveins: $sgpr0_sgpr1, $sgpr2_sgpr3, $sgpr4_sgpr5, $sgpr6_sgpr7362 363    ; GCN-LABEL: name: test_merge_values_s_s256_s_s64_s_s64_s_s64_s_s64364    ; GCN: liveins: $sgpr0_sgpr1, $sgpr2_sgpr3, $sgpr4_sgpr5, $sgpr6_sgpr7365    ; GCN-NEXT: {{  $}}366    ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1367    ; GCN-NEXT: [[COPY1:%[0-9]+]]:sreg_64 = COPY $sgpr2_sgpr3368    ; GCN-NEXT: [[COPY2:%[0-9]+]]:sreg_64 = COPY $sgpr4_sgpr5369    ; GCN-NEXT: [[COPY3:%[0-9]+]]:sreg_64 = COPY $sgpr6_sgpr7370    ; GCN-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_256 = REG_SEQUENCE [[COPY]], %subreg.sub0_sub1, [[COPY1]], %subreg.sub2_sub3, [[COPY2]], %subreg.sub4_sub5, [[COPY3]], %subreg.sub6_sub7371    ; GCN-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7 = COPY [[REG_SEQUENCE]]372    %0:sgpr(s64) = COPY $sgpr0_sgpr1373    %1:sgpr(s64) = COPY $sgpr2_sgpr3374    %2:sgpr(s64) = COPY $sgpr4_sgpr5375    %3:sgpr(s64) = COPY $sgpr6_sgpr7376    %4:sgpr(s256) = G_MERGE_VALUES %0, %1, %2, %3377    $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7 = COPY %4378...379 380---381name: test_merge_values_s_s256_s_s128_s_s128382legalized:       true383regBankSelected: true384tracksRegLiveness: true385 386body: |387  bb.0:388    liveins: $sgpr0_sgpr1_sgpr2_sgpr3, $sgpr4_sgpr5_sgpr6_sgpr7389 390    ; GCN-LABEL: name: test_merge_values_s_s256_s_s128_s_s128391    ; GCN: liveins: $sgpr0_sgpr1_sgpr2_sgpr3, $sgpr4_sgpr5_sgpr6_sgpr7392    ; GCN-NEXT: {{  $}}393    ; GCN-NEXT: [[COPY:%[0-9]+]]:sgpr_128 = COPY $sgpr0_sgpr1_sgpr2_sgpr3394    ; GCN-NEXT: [[COPY1:%[0-9]+]]:sgpr_128 = COPY $sgpr4_sgpr5_sgpr6_sgpr7395    ; GCN-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_256 = REG_SEQUENCE [[COPY]], %subreg.sub0_sub1_sub2_sub3, [[COPY1]], %subreg.sub4_sub5_sub6_sub7396    ; GCN-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7 = COPY [[REG_SEQUENCE]]397    %0:sgpr(s128) = COPY $sgpr0_sgpr1_sgpr2_sgpr3398    %1:sgpr(s128) = COPY $sgpr4_sgpr5_sgpr6_sgpr7399    %2:sgpr(s256) = G_MERGE_VALUES %0, %1400    $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7 = COPY %2401...402 403---404name: test_merge_values_s_s512_s_s256_s_s256405legalized:       true406regBankSelected: true407tracksRegLiveness: true408 409body: |410  bb.0:411    liveins: $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7, $sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15412 413    ; GCN-LABEL: name: test_merge_values_s_s512_s_s256_s_s256414    ; GCN: liveins: $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7, $sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15415    ; GCN-NEXT: {{  $}}416    ; GCN-NEXT: [[COPY:%[0-9]+]]:sgpr_256 = COPY $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7417    ; GCN-NEXT: [[COPY1:%[0-9]+]]:sgpr_256 = COPY $sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15418    ; GCN-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_512 = REG_SEQUENCE [[COPY]], %subreg.sub0_sub1_sub2_sub3_sub4_sub5_sub6_sub7, [[COPY1]], %subreg.sub8_sub9_sub10_sub11_sub12_sub13_sub14_sub15419    ; GCN-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7_sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15 = COPY [[REG_SEQUENCE]]420    %0:sgpr(s256) = COPY $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7,421    %1:sgpr(s256) = COPY $sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15422    %4:sgpr(s512) = G_MERGE_VALUES %0, %1423    $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7_sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15 = COPY %4424...425 426---427name: test_merge_values_s_s512_s_s64_s_s64_s_s64_s_s64_s_s64_s_s64_s_s64_s_s64428legalized:       true429regBankSelected: true430tracksRegLiveness: true431 432body: |433  bb.0:434    liveins: $sgpr0_sgpr1, $sgpr2_sgpr3, $sgpr4_sgpr5, $sgpr6_sgpr7, $sgpr8_sgpr9, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15435 436    ; GCN-LABEL: name: test_merge_values_s_s512_s_s64_s_s64_s_s64_s_s64_s_s64_s_s64_s_s64_s_s64437    ; GCN: liveins: $sgpr0_sgpr1, $sgpr2_sgpr3, $sgpr4_sgpr5, $sgpr6_sgpr7, $sgpr8_sgpr9, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15438    ; GCN-NEXT: {{  $}}439    ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1440    ; GCN-NEXT: [[COPY1:%[0-9]+]]:sreg_64 = COPY $sgpr2_sgpr3441    ; GCN-NEXT: [[COPY2:%[0-9]+]]:sreg_64 = COPY $sgpr4_sgpr5442    ; GCN-NEXT: [[COPY3:%[0-9]+]]:sreg_64 = COPY $sgpr6_sgpr7443    ; GCN-NEXT: [[COPY4:%[0-9]+]]:sreg_64 = COPY $sgpr8_sgpr9444    ; GCN-NEXT: [[COPY5:%[0-9]+]]:sreg_64 = COPY $sgpr10_sgpr11445    ; GCN-NEXT: [[COPY6:%[0-9]+]]:sreg_64 = COPY $sgpr12_sgpr13446    ; GCN-NEXT: [[COPY7:%[0-9]+]]:sreg_64 = COPY $sgpr14_sgpr15447    ; GCN-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_512 = REG_SEQUENCE [[COPY]], %subreg.sub0_sub1, [[COPY1]], %subreg.sub2_sub3, [[COPY2]], %subreg.sub4_sub5, [[COPY3]], %subreg.sub6_sub7, [[COPY4]], %subreg.sub8_sub9, [[COPY5]], %subreg.sub10_sub11, [[COPY6]], %subreg.sub12_sub13, [[COPY7]], %subreg.sub14_sub15448    ; GCN-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7_sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15 = COPY [[REG_SEQUENCE]]449    %0:sgpr(s64) = COPY $sgpr0_sgpr1450    %1:sgpr(s64) = COPY $sgpr2_sgpr3451    %2:sgpr(s64) = COPY $sgpr4_sgpr5452    %3:sgpr(s64) = COPY $sgpr6_sgpr7453    %4:sgpr(s64) = COPY $sgpr8_sgpr9454    %5:sgpr(s64) = COPY $sgpr10_sgpr11455    %6:sgpr(s64) = COPY $sgpr12_sgpr13456    %7:sgpr(s64) = COPY $sgpr14_sgpr15457    %8:sgpr(s512) = G_MERGE_VALUES %0, %1, %2, %3, %4, %5, %6, %7458    $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7_sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15 = COPY %8459...460 461---462name: test_merge_values_v_v512_v_s64_v_s64_v_s64_v_s64_v_s64_v_s64_v_s64_v_s64463legalized:       true464regBankSelected: true465tracksRegLiveness: true466 467body: |468  bb.0:469    liveins: $vgpr0_vgpr1, $vgpr2_vgpr3, $vgpr4_vgpr5, $vgpr6_vgpr7, $vgpr8_vgpr9, $vgpr10_vgpr11, $vgpr12_vgpr13, $vgpr14_vgpr15470 471    ; GCN-LABEL: name: test_merge_values_v_v512_v_s64_v_s64_v_s64_v_s64_v_s64_v_s64_v_s64_v_s64472    ; GCN: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3, $vgpr4_vgpr5, $vgpr6_vgpr7, $vgpr8_vgpr9, $vgpr10_vgpr11, $vgpr12_vgpr13, $vgpr14_vgpr15473    ; GCN-NEXT: {{  $}}474    ; GCN-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1475    ; GCN-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3476    ; GCN-NEXT: [[COPY2:%[0-9]+]]:vreg_64 = COPY $vgpr4_vgpr5477    ; GCN-NEXT: [[COPY3:%[0-9]+]]:vreg_64 = COPY $vgpr6_vgpr7478    ; GCN-NEXT: [[COPY4:%[0-9]+]]:vreg_64 = COPY $vgpr8_vgpr9479    ; GCN-NEXT: [[COPY5:%[0-9]+]]:vreg_64 = COPY $vgpr10_vgpr11480    ; GCN-NEXT: [[COPY6:%[0-9]+]]:vreg_64 = COPY $vgpr12_vgpr13481    ; GCN-NEXT: [[COPY7:%[0-9]+]]:vreg_64 = COPY $vgpr14_vgpr15482    ; GCN-NEXT: [[REG_SEQUENCE:%[0-9]+]]:vreg_512 = REG_SEQUENCE [[COPY]], %subreg.sub0_sub1, [[COPY1]], %subreg.sub2_sub3, [[COPY2]], %subreg.sub4_sub5, [[COPY3]], %subreg.sub6_sub7, [[COPY4]], %subreg.sub8_sub9, [[COPY5]], %subreg.sub10_sub11, [[COPY6]], %subreg.sub12_sub13, [[COPY7]], %subreg.sub14_sub15483    ; GCN-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = COPY [[REG_SEQUENCE]]484    %0:vgpr(s64) = COPY $vgpr0_vgpr1485    %1:vgpr(s64) = COPY $vgpr2_vgpr3486    %2:vgpr(s64) = COPY $vgpr4_vgpr5487    %3:vgpr(s64) = COPY $vgpr6_vgpr7488    %4:vgpr(s64) = COPY $vgpr8_vgpr9489    %5:vgpr(s64) = COPY $vgpr10_vgpr11490    %6:vgpr(s64) = COPY $vgpr12_vgpr13491    %7:vgpr(s64) = COPY $vgpr14_vgpr15492    %8:vgpr(s512) = G_MERGE_VALUES %0, %1, %2, %3, %4, %5, %6, %7493    $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = COPY %8494...495 496---497name: test_merge_values_rc_already_set_src_v_s64_v_s32_v_s32498legalized:       true499regBankSelected: true500tracksRegLiveness: true501 502body: |503  bb.0:504    liveins: $vgpr0, $vgpr1505 506    ; GCN-LABEL: name: test_merge_values_rc_already_set_src_v_s64_v_s32_v_s32507    ; GCN: liveins: $vgpr0, $vgpr1508    ; GCN-NEXT: {{  $}}509    ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0510    ; GCN-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1511    ; GCN-NEXT: [[REG_SEQUENCE:%[0-9]+]]:vreg_64 = REG_SEQUENCE [[COPY]], %subreg.sub0, [[COPY1]], %subreg.sub1512    ; GCN-NEXT: S_ENDPGM 0, implicit [[REG_SEQUENCE]]513    %0:vgpr_32(s32) = COPY $vgpr0514    %1:vgpr_32(s32) = COPY $vgpr1515    %2:vgpr(s64) = G_MERGE_VALUES %0, %1516    S_ENDPGM 0, implicit %2517...518 519---520name: test_merge_values_rc_already_set_dst_v_s64_v_s32_v_s32521legalized:       true522regBankSelected: true523tracksRegLiveness: true524 525body: |526  bb.0:527    liveins: $vgpr0, $vgpr1528 529    ; GCN-LABEL: name: test_merge_values_rc_already_set_dst_v_s64_v_s32_v_s32530    ; GCN: liveins: $vgpr0, $vgpr1531    ; GCN-NEXT: {{  $}}532    ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0533    ; GCN-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1534    ; GCN-NEXT: [[REG_SEQUENCE:%[0-9]+]]:vreg_64 = REG_SEQUENCE [[COPY]], %subreg.sub0, [[COPY1]], %subreg.sub1535    ; GCN-NEXT: S_ENDPGM 0, implicit [[REG_SEQUENCE]]536    %0:vgpr(s32) = COPY $vgpr0537    %1:vgpr(s32) = COPY $vgpr1538    %2:vreg_64(s64) = G_MERGE_VALUES %0, %1539    S_ENDPGM 0, implicit %2540...541 542---543name: test_merge_values_s_s1024_s_s256_s_s256_s_s256_s_s256544legalized:       true545regBankSelected: true546tracksRegLiveness: true547 548body: |549  bb.0:550    liveins: $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7, $sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15551 552    ; GCN-LABEL: name: test_merge_values_s_s1024_s_s256_s_s256_s_s256_s_s256553    ; GCN: liveins: $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7, $sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15554    ; GCN-NEXT: {{  $}}555    ; GCN-NEXT: [[COPY:%[0-9]+]]:sgpr_256 = COPY $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7556    ; GCN-NEXT: [[DEF:%[0-9]+]]:sgpr_256 = IMPLICIT_DEF557    ; GCN-NEXT: [[COPY1:%[0-9]+]]:sgpr_256 = COPY $sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15558    ; GCN-NEXT: [[DEF1:%[0-9]+]]:sgpr_256 = IMPLICIT_DEF559    ; GCN-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_1024 = REG_SEQUENCE [[COPY]], %subreg.sub0_sub1_sub2_sub3_sub4_sub5_sub6_sub7, [[DEF]], %subreg.sub8_sub9_sub10_sub11_sub12_sub13_sub14_sub15, [[COPY1]], %subreg.sub16_sub17_sub18_sub19_sub20_sub21_sub22_sub23, [[DEF1]], %subreg.sub24_sub25_sub26_sub27_sub28_sub29_sub30_sub31560    ; GCN-NEXT: S_ENDPGM 0, implicit [[REG_SEQUENCE]]561    %0:sgpr(s256) = COPY $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7,562    %1:sgpr(s256) = G_IMPLICIT_DEF563    %2:sgpr(s256) = COPY $sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15564    %3:sgpr(s256) = G_IMPLICIT_DEF565    %4:sgpr(s1024) = G_MERGE_VALUES %0, %1, %2, %3566    S_ENDPGM 0, implicit %4567...568 569---570 571name: test_merge_values_s_s1024_s_s512572legalized:       true573regBankSelected: true574tracksRegLiveness: true575 576body: |577  bb.0:578    liveins: $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7_sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15, $sgpr16_sgpr17_sgpr18_sgpr19_sgpr20_sgpr21_sgpr22_sgpr23_sgpr24_sgpr25_sgpr26_sgpr27_sgpr28_sgpr29_sgpr30_sgpr31579 580    ; GCN-LABEL: name: test_merge_values_s_s1024_s_s512581    ; GCN: liveins: $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7_sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15, $sgpr16_sgpr17_sgpr18_sgpr19_sgpr20_sgpr21_sgpr22_sgpr23_sgpr24_sgpr25_sgpr26_sgpr27_sgpr28_sgpr29_sgpr30_sgpr31582    ; GCN-NEXT: {{  $}}583    ; GCN-NEXT: [[COPY:%[0-9]+]]:sgpr_512 = COPY $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7_sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15584    ; GCN-NEXT: [[COPY1:%[0-9]+]]:sgpr_512 = COPY $sgpr16_sgpr17_sgpr18_sgpr19_sgpr20_sgpr21_sgpr22_sgpr23_sgpr24_sgpr25_sgpr26_sgpr27_sgpr28_sgpr29_sgpr30_sgpr31585    ; GCN-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_1024 = REG_SEQUENCE [[COPY]], %subreg.sub0_sub1_sub2_sub3_sub4_sub5_sub6_sub7_sub8_sub9_sub10_sub11_sub12_sub13_sub14_sub15, [[COPY1]], %subreg.sub16_sub17_sub18_sub19_sub20_sub21_sub22_sub23_sub24_sub25_sub26_sub27_sub28_sub29_sub30_sub31586    ; GCN-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7_sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15_sgpr16_sgpr17_sgpr18_sgpr19_sgpr20_sgpr21_sgpr22_sgpr23_sgpr24_sgpr25_sgpr26_sgpr27_sgpr28_sgpr29_sgpr30_sgpr31 = COPY [[REG_SEQUENCE]]587    %0:sgpr(s512) = COPY $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7_sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15588    %1:sgpr(s512) = COPY $sgpr16_sgpr17_sgpr18_sgpr19_sgpr20_sgpr21_sgpr22_sgpr23_sgpr24_sgpr25_sgpr26_sgpr27_sgpr28_sgpr29_sgpr30_sgpr31589    %2:sgpr(s1024) = G_MERGE_VALUES %0, %1590    $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7_sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15_sgpr16_sgpr17_sgpr18_sgpr19_sgpr20_sgpr21_sgpr22_sgpr23_sgpr24_sgpr25_sgpr26_sgpr27_sgpr28_sgpr29_sgpr30_sgpr31 = COPY %2591 592...593