brintos

brintos / llvm-project-archived public Read only

0
0
Text · 36.3 KiB · d6a433a Raw
816 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 -global-isel-abort=2 -pass-remarks-missed='gisel*'  -o - %s | FileCheck -check-prefix=GCN  %s3 4 5---6name: test_concat_vectors_v_v4s16_v_v2s16_v_v2s167legalized:       true8regBankSelected: true9 10body: |11  bb.0:12    liveins: $vgpr0, $vgpr113 14    ; GCN-LABEL: name: test_concat_vectors_v_v4s16_v_v2s16_v_v2s1615    ; 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: $vgpr0_vgpr1 = COPY [[REG_SEQUENCE]]21    %0:vgpr(<2 x s16>) = COPY $vgpr022    %1:vgpr(<2 x s16>) = COPY $vgpr123    %2:vgpr(<4 x s16>) = G_CONCAT_VECTORS %0, %124    $vgpr0_vgpr1 = COPY %225...26 27---28name: test_concat_vectors_v_v4s16_s_v2s16_v_v2s1629legalized:       true30regBankSelected: true31 32body: |33  bb.0:34    liveins: $sgpr0, $vgpr035 36    ; GCN-LABEL: name: test_concat_vectors_v_v4s16_s_v2s16_v_v2s1637    ; GCN: liveins: $sgpr0, $vgpr038    ; GCN-NEXT: {{  $}}39    ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr040    ; GCN-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr141    ; GCN-NEXT: [[REG_SEQUENCE:%[0-9]+]]:vreg_64 = REG_SEQUENCE [[COPY]], %subreg.sub0, [[COPY1]], %subreg.sub142    ; GCN-NEXT: $vgpr0_vgpr1 = COPY [[REG_SEQUENCE]]43    %0:sgpr(<2 x s16>) = COPY $sgpr044    %1:vgpr(<2 x s16>) = COPY $vgpr145    %2:vgpr(<4 x s16>) = G_CONCAT_VECTORS %0, %146    $vgpr0_vgpr1 = COPY %247...48 49---50name: test_concat_vectors_v_v4s16_v_v2s16_s_v2s1651legalized:       true52regBankSelected: true53 54body: |55  bb.0:56    liveins: $sgpr0, $vgpr057 58    ; GCN-LABEL: name: test_concat_vectors_v_v4s16_v_v2s16_s_v2s1659    ; GCN: liveins: $sgpr0, $vgpr060    ; GCN-NEXT: {{  $}}61    ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr062    ; GCN-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr063    ; GCN-NEXT: [[REG_SEQUENCE:%[0-9]+]]:vreg_64 = REG_SEQUENCE [[COPY]], %subreg.sub0, [[COPY1]], %subreg.sub164    ; GCN-NEXT: $vgpr0_vgpr1 = COPY [[REG_SEQUENCE]]65    %0:vgpr(<2 x s16>) = COPY $vgpr066    %1:sgpr(<2 x s16>) = COPY $sgpr067    %2:vgpr(<4 x s16>) = G_CONCAT_VECTORS %0, %168    $vgpr0_vgpr1 = COPY %269...70 71---72name: test_concat_vectors_s_v4s16_s_v2s16_s_v2s1673legalized:       true74regBankSelected: true75 76body: |77  bb.0:78    liveins: $sgpr0, $sgpr179 80    ; GCN-LABEL: name: test_concat_vectors_s_v4s16_s_v2s16_s_v2s1681    ; GCN: liveins: $sgpr0, $sgpr182    ; GCN-NEXT: {{  $}}83    ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr084    ; GCN-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr185    ; GCN-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sreg_64 = REG_SEQUENCE [[COPY]], %subreg.sub0, [[COPY1]], %subreg.sub186    ; GCN-NEXT: $sgpr0_sgpr1 = COPY [[REG_SEQUENCE]]87    %0:sgpr(<2 x s16>) = COPY $sgpr088    %1:sgpr(<2 x s16>) = COPY $sgpr189    %2:sgpr(<4 x s16>) = G_CONCAT_VECTORS %0, %190    $sgpr0_sgpr1 = COPY %291...92 93---94name: test_concat_vectors_s_s96_s_v2s16_s_v2s16_s_v2s1695legalized:       true96regBankSelected: true97 98body: |99  bb.0:100    liveins: $sgpr0, $sgpr1, $sgpr2101 102    ; GCN-LABEL: name: test_concat_vectors_s_s96_s_v2s16_s_v2s16_s_v2s16103    ; GCN: liveins: $sgpr0, $sgpr1, $sgpr2104    ; GCN-NEXT: {{  $}}105    ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0106    ; GCN-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1107    ; GCN-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY $sgpr2108    ; GCN-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_96 = REG_SEQUENCE [[COPY]], %subreg.sub0, [[COPY1]], %subreg.sub1, [[COPY2]], %subreg.sub2109    ; GCN-NEXT: $sgpr0_sgpr1_sgpr2 = COPY [[REG_SEQUENCE]]110    %0:sgpr(<2 x s16>) = COPY $sgpr0111    %1:sgpr(<2 x s16>) = COPY $sgpr1112    %2:sgpr(<2 x s16>) = COPY $sgpr2113    %3:sgpr(<6 x s16>) = G_CONCAT_VECTORS %0, %1, %2114    $sgpr0_sgpr1_sgpr2 = COPY %3115...116 117---118name: test_concat_vectors_v_s96_v_v2s16_v_v2s16_v_v2s16119legalized:       true120regBankSelected: true121 122body: |123  bb.0:124    liveins: $vgpr0, $vgpr1, $vgpr2125 126    ; GCN-LABEL: name: test_concat_vectors_v_s96_v_v2s16_v_v2s16_v_v2s16127    ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2128    ; GCN-NEXT: {{  $}}129    ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0130    ; GCN-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1131    ; GCN-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2132    ; GCN-NEXT: [[REG_SEQUENCE:%[0-9]+]]:vreg_96 = REG_SEQUENCE [[COPY]], %subreg.sub0, [[COPY1]], %subreg.sub1, [[COPY2]], %subreg.sub2133    ; GCN-NEXT: $vgpr0_vgpr1_vgpr2 = COPY [[REG_SEQUENCE]]134    %0:vgpr(<2 x s16>) = COPY $vgpr0135    %1:vgpr(<2 x s16>) = COPY $vgpr1136    %2:vgpr(<2 x s16>) = COPY $vgpr2137    %3:vgpr(<6 x s16>) = G_CONCAT_VECTORS %0, %1, %2138    $vgpr0_vgpr1_vgpr2 = COPY %3139...140 141---142name: test_concat_vectors_s_v8s16_s_v2s16_s_v2s16_s_v2s16_s_v2s16143legalized:       true144regBankSelected: true145 146body: |147  bb.0:148    liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3149 150    ; GCN-LABEL: name: test_concat_vectors_s_v8s16_s_v2s16_s_v2s16_s_v2s16_s_v2s16151    ; GCN: liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3152    ; GCN-NEXT: {{  $}}153    ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0154    ; GCN-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1155    ; GCN-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY $sgpr2156    ; GCN-NEXT: [[COPY3:%[0-9]+]]:sreg_32 = COPY $sgpr3157    ; GCN-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_128 = REG_SEQUENCE [[COPY]], %subreg.sub0, [[COPY1]], %subreg.sub1, [[COPY2]], %subreg.sub2, [[COPY3]], %subreg.sub3158    ; GCN-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3 = COPY [[REG_SEQUENCE]]159    %0:sgpr(<2 x s16>) = COPY $sgpr0160    %1:sgpr(<2 x s16>) = COPY $sgpr1161    %2:sgpr(<2 x s16>) = COPY $sgpr2162    %3:sgpr(<2 x s16>) = COPY $sgpr3163    %4:sgpr(<8 x s16>) = G_CONCAT_VECTORS %0, %1, %2, %3164    $sgpr0_sgpr1_sgpr2_sgpr3 = COPY %4165...166 167---168name: test_concat_vectors_v_v8s16_v_v2s16_v_v2s16_v_v2s16169legalized:       true170regBankSelected: true171 172body: |173  bb.0:174    liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3175 176    ; GCN-LABEL: name: test_concat_vectors_v_v8s16_v_v2s16_v_v2s16_v_v2s16177    ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3178    ; GCN-NEXT: {{  $}}179    ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0180    ; GCN-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1181    ; GCN-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2182    ; GCN-NEXT: [[COPY3:%[0-9]+]]:vgpr_32 = COPY $vgpr3183    ; GCN-NEXT: [[REG_SEQUENCE:%[0-9]+]]:vreg_128 = REG_SEQUENCE [[COPY]], %subreg.sub0, [[COPY1]], %subreg.sub1, [[COPY2]], %subreg.sub2, [[COPY3]], %subreg.sub3184    ; GCN-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[REG_SEQUENCE]]185    %0:vgpr(<2 x s16>) = COPY $vgpr0186    %1:vgpr(<2 x s16>) = COPY $vgpr1187    %2:vgpr(<2 x s16>) = COPY $vgpr2188    %3:vgpr(<2 x s16>) = COPY $vgpr3189    %4:vgpr(<8 x s16>) = G_CONCAT_VECTORS %0, %1, %2, %3190    $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %4191...192 193---194name: test_concat_vectors_s_v8s16_s_v4s16_s_v4s16195legalized:       true196regBankSelected: true197 198body: |199  bb.0:200    liveins: $sgpr0_sgpr1, $sgpr2_sgpr3201 202    ; GCN-LABEL: name: test_concat_vectors_s_v8s16_s_v4s16_s_v4s16203    ; GCN: liveins: $sgpr0_sgpr1, $sgpr2_sgpr3204    ; GCN-NEXT: {{  $}}205    ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1206    ; GCN-NEXT: [[COPY1:%[0-9]+]]:sreg_64 = COPY $sgpr2_sgpr3207    ; GCN-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_128 = REG_SEQUENCE [[COPY]], %subreg.sub0_sub1, [[COPY1]], %subreg.sub2_sub3208    ; GCN-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3 = COPY [[REG_SEQUENCE]]209    %0:sgpr(<4 x s16>) = COPY $sgpr0_sgpr1210    %1:sgpr(<4 x s16>) = COPY $sgpr2_sgpr3211    %2:sgpr(<8 x s16>) = G_CONCAT_VECTORS %0, %1212    $sgpr0_sgpr1_sgpr2_sgpr3 = COPY %2213...214 215---216name: test_concat_vectors_v_v8s16_v_v4s16_v_v4s16217legalized:       true218regBankSelected: true219 220body: |221  bb.0:222    liveins: $vgpr0_vgpr1, $vgpr2_vgpr3223 224    ; GCN-LABEL: name: test_concat_vectors_v_v8s16_v_v4s16_v_v4s16225    ; GCN: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3226    ; GCN-NEXT: {{  $}}227    ; GCN-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1228    ; GCN-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3229    ; GCN-NEXT: [[REG_SEQUENCE:%[0-9]+]]:vreg_128 = REG_SEQUENCE [[COPY]], %subreg.sub0_sub1, [[COPY1]], %subreg.sub2_sub3230    ; GCN-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[REG_SEQUENCE]]231    %0:vgpr(<4 x s16>) = COPY $vgpr0_vgpr1232    %1:vgpr(<4 x s16>) = COPY $vgpr2_vgpr3233    %2:vgpr(<8 x s16>) = G_CONCAT_VECTORS %0, %1234    $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %2235...236 237---238name: test_concat_vectors_s_s160_s_v2s16_s_v2s16_s_v2s16_s_v2s16_s_v2s16239legalized:       true240regBankSelected: true241 242body: |243  bb.0:244    liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $sgpr4245 246    ; GCN-LABEL: name: test_concat_vectors_s_s160_s_v2s16_s_v2s16_s_v2s16_s_v2s16_s_v2s16247    ; GCN: liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3, $sgpr4248    ; GCN-NEXT: {{  $}}249    ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0250    ; GCN-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1251    ; GCN-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY $sgpr2252    ; GCN-NEXT: [[COPY3:%[0-9]+]]:sreg_32 = COPY $sgpr3253    ; GCN-NEXT: [[COPY4:%[0-9]+]]:sreg_32 = COPY $sgpr4254    ; GCN-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_160 = REG_SEQUENCE [[COPY]], %subreg.sub0, [[COPY1]], %subreg.sub1, [[COPY2]], %subreg.sub2, [[COPY3]], %subreg.sub3, [[COPY4]], %subreg.sub4255    ; GCN-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4 = COPY [[REG_SEQUENCE]]256    %0:sgpr(<2 x s16>) = COPY $sgpr0257    %1:sgpr(<2 x s16>) = COPY $sgpr1258    %2:sgpr(<2 x s16>) = COPY $sgpr2259    %3:sgpr(<2 x s16>) = COPY $sgpr3260    %4:sgpr(<2 x s16>) = COPY $sgpr4261    %5:sgpr(<10 x s16>) = G_CONCAT_VECTORS %0, %1, %2, %3, %4262    $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4 = COPY %5263...264 265---266name: test_concat_vectors_v_s160_v_v2s16_v_v2s16_v_v2s16_v_v2s16_v_v2s16267legalized:       true268regBankSelected: true269 270body: |271  bb.0:272    liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4273 274    ; GCN-LABEL: name: test_concat_vectors_v_s160_v_v2s16_v_v2s16_v_v2s16_v_v2s16_v_v2s16275    ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4276    ; GCN-NEXT: {{  $}}277    ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0278    ; GCN-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1279    ; GCN-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2280    ; GCN-NEXT: [[COPY3:%[0-9]+]]:vgpr_32 = COPY $vgpr3281    ; GCN-NEXT: [[COPY4:%[0-9]+]]:vgpr_32 = COPY $vgpr4282    ; GCN-NEXT: [[REG_SEQUENCE:%[0-9]+]]:vreg_160 = REG_SEQUENCE [[COPY]], %subreg.sub0, [[COPY1]], %subreg.sub1, [[COPY2]], %subreg.sub2, [[COPY3]], %subreg.sub3, [[COPY4]], %subreg.sub4283    ; GCN-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4 = COPY [[REG_SEQUENCE]]284    %0:vgpr(<2 x s16>) = COPY $vgpr0285    %1:vgpr(<2 x s16>) = COPY $vgpr1286    %2:vgpr(<2 x s16>) = COPY $vgpr2287    %3:vgpr(<2 x s16>) = COPY $vgpr3288    %4:vgpr(<2 x s16>) = COPY $vgpr4289    %5:vgpr(<10 x s16>) = G_CONCAT_VECTORS %0, %1, %2, %3, %4290    $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4 = COPY %5291...292 293---294name: test_concat_vectors_s_v12s16_s_v4s16_s_v4s16_s_v4s16295legalized:       true296regBankSelected: true297 298body: |299  bb.0:300    liveins: $sgpr0_sgpr1, $sgpr2_sgpr3, $sgpr4_sgpr5301 302    ; GCN-LABEL: name: test_concat_vectors_s_v12s16_s_v4s16_s_v4s16_s_v4s16303    ; GCN: liveins: $sgpr0_sgpr1, $sgpr2_sgpr3, $sgpr4_sgpr5304    ; GCN-NEXT: {{  $}}305    ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1306    ; GCN-NEXT: [[COPY1:%[0-9]+]]:sreg_64 = COPY $sgpr2_sgpr3307    ; GCN-NEXT: [[COPY2:%[0-9]+]]:sreg_64 = COPY $sgpr4_sgpr5308    ; GCN-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_192 = REG_SEQUENCE [[COPY]], %subreg.sub0_sub1, [[COPY1]], %subreg.sub2_sub3, [[COPY2]], %subreg.sub4_sub5309    ; GCN-NEXT: S_ENDPGM 0, implicit [[REG_SEQUENCE]]310    %0:sgpr(<4 x s16>) = COPY $sgpr0_sgpr1311    %1:sgpr(<4 x s16>) = COPY $sgpr2_sgpr3312    %2:sgpr(<4 x s16>) = COPY $sgpr4_sgpr5313    %3:sgpr(<12 x s16>) = G_CONCAT_VECTORS %0, %1, %2314    S_ENDPGM 0, implicit %3315...316 317---318name: test_concat_vectors_v_v12s16_v_v4s16_v_v4s16_v_v4s16319legalized:       true320regBankSelected: true321 322body: |323  bb.0:324    liveins: $vgpr0_vgpr1, $vgpr2_vgpr3, $vgpr4_vgpr5325 326    ; GCN-LABEL: name: test_concat_vectors_v_v12s16_v_v4s16_v_v4s16_v_v4s16327    ; GCN: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3, $vgpr4_vgpr5328    ; GCN-NEXT: {{  $}}329    ; GCN-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1330    ; GCN-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3331    ; GCN-NEXT: [[COPY2:%[0-9]+]]:vreg_64 = COPY $vgpr4_vgpr5332    ; GCN-NEXT: [[REG_SEQUENCE:%[0-9]+]]:vreg_192 = REG_SEQUENCE [[COPY]], %subreg.sub0_sub1, [[COPY1]], %subreg.sub2_sub3, [[COPY2]], %subreg.sub4_sub5333    ; GCN-NEXT: S_ENDPGM 0, implicit [[REG_SEQUENCE]]334    %0:vgpr(<4 x s16>) = COPY $vgpr0_vgpr1335    %1:vgpr(<4 x s16>) = COPY $vgpr2_vgpr3336    %2:vgpr(<4 x s16>) = COPY $vgpr4_vgpr5337    %3:vgpr(<12 x s16>) = G_CONCAT_VECTORS %0, %1, %2338    S_ENDPGM 0, implicit %3339...340 341---342name: test_concat_vectors_s_v16s16_s_v4s16_s_v4s16_s_v4s16_s_v4s16343legalized:       true344regBankSelected: true345 346body: |347  bb.0:348    liveins: $sgpr0_sgpr1, $sgpr2_sgpr3, $sgpr4_sgpr5, $sgpr6_sgpr7349 350    ; GCN-LABEL: name: test_concat_vectors_s_v16s16_s_v4s16_s_v4s16_s_v4s16_s_v4s16351    ; GCN: liveins: $sgpr0_sgpr1, $sgpr2_sgpr3, $sgpr4_sgpr5, $sgpr6_sgpr7352    ; GCN-NEXT: {{  $}}353    ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1354    ; GCN-NEXT: [[COPY1:%[0-9]+]]:sreg_64 = COPY $sgpr2_sgpr3355    ; GCN-NEXT: [[COPY2:%[0-9]+]]:sreg_64 = COPY $sgpr4_sgpr5356    ; GCN-NEXT: [[COPY3:%[0-9]+]]:sreg_64 = COPY $sgpr6_sgpr7357    ; 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_sub7358    ; GCN-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7 = COPY [[REG_SEQUENCE]]359    %0:sgpr(<4 x s16>) = COPY $sgpr0_sgpr1360    %1:sgpr(<4 x s16>) = COPY $sgpr2_sgpr3361    %2:sgpr(<4 x s16>) = COPY $sgpr4_sgpr5362    %3:sgpr(<4 x s16>) = COPY $sgpr6_sgpr7363    %4:sgpr(<16 x s16>) = G_CONCAT_VECTORS %0, %1, %2, %3364    $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7 = COPY %4365...366 367---368name: test_concat_vectors_s_v12s16_s_v8s16_s_v8s16369legalized:       true370regBankSelected: true371 372body: |373  bb.0:374    liveins: $sgpr0_sgpr1_sgpr2_sgpr3, $sgpr4_sgpr5_sgpr6_sgpr7375 376    ; GCN-LABEL: name: test_concat_vectors_s_v12s16_s_v8s16_s_v8s16377    ; GCN: liveins: $sgpr0_sgpr1_sgpr2_sgpr3, $sgpr4_sgpr5_sgpr6_sgpr7378    ; GCN-NEXT: {{  $}}379    ; GCN-NEXT: [[COPY:%[0-9]+]]:sgpr_128 = COPY $sgpr0_sgpr1_sgpr2_sgpr3380    ; GCN-NEXT: [[COPY1:%[0-9]+]]:sgpr_128 = COPY $sgpr4_sgpr5_sgpr6_sgpr7381    ; GCN-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_256 = REG_SEQUENCE [[COPY]], %subreg.sub0_sub1_sub2_sub3, [[COPY1]], %subreg.sub4_sub5_sub6_sub7382    ; GCN-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7 = COPY [[REG_SEQUENCE]]383    %0:sgpr(<8 x s16>) = COPY $sgpr0_sgpr1_sgpr2_sgpr3384    %1:sgpr(<8 x s16>) = COPY $sgpr4_sgpr5_sgpr6_sgpr7385    %2:sgpr(<16 x s16>) = G_CONCAT_VECTORS %0, %1386    $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7 = COPY %2387...388 389---390name: test_concat_vectors_s_v32s16_s_v12s16_s_v12s16391legalized:       true392regBankSelected: true393 394body: |395  bb.0:396    liveins: $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7, $sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15397 398    ; GCN-LABEL: name: test_concat_vectors_s_v32s16_s_v12s16_s_v12s16399    ; GCN: liveins: $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7, $sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15400    ; GCN-NEXT: {{  $}}401    ; GCN-NEXT: [[COPY:%[0-9]+]]:sgpr_256 = COPY $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7402    ; GCN-NEXT: [[COPY1:%[0-9]+]]:sgpr_256 = COPY $sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15403    ; 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_sub15404    ; GCN-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7_sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15 = COPY [[REG_SEQUENCE]]405    %0:sgpr(<16 x s16>) = COPY $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7,406    %1:sgpr(<16 x s16>) = COPY $sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15407    %4:sgpr(<32 x s16>) = G_CONCAT_VECTORS %0, %1408    $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7_sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15 = COPY %4409...410 411---412name: test_concat_vectors_s_v32s16_s_v4s16_s_v4s16_s_v4s16_s_v4s16_s_v4s16_s_v4s16_s_v4s16_s_v4s16413legalized:       true414regBankSelected: true415 416body: |417  bb.0:418    liveins: $sgpr0_sgpr1, $sgpr2_sgpr3, $sgpr4_sgpr5, $sgpr6_sgpr7, $sgpr8_sgpr9, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15419 420    ; GCN-LABEL: name: test_concat_vectors_s_v32s16_s_v4s16_s_v4s16_s_v4s16_s_v4s16_s_v4s16_s_v4s16_s_v4s16_s_v4s16421    ; GCN: liveins: $sgpr0_sgpr1, $sgpr2_sgpr3, $sgpr4_sgpr5, $sgpr6_sgpr7, $sgpr8_sgpr9, $sgpr10_sgpr11, $sgpr12_sgpr13, $sgpr14_sgpr15422    ; GCN-NEXT: {{  $}}423    ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1424    ; GCN-NEXT: [[COPY1:%[0-9]+]]:sreg_64 = COPY $sgpr2_sgpr3425    ; GCN-NEXT: [[COPY2:%[0-9]+]]:sreg_64 = COPY $sgpr4_sgpr5426    ; GCN-NEXT: [[COPY3:%[0-9]+]]:sreg_64 = COPY $sgpr6_sgpr7427    ; GCN-NEXT: [[COPY4:%[0-9]+]]:sreg_64 = COPY $sgpr8_sgpr9428    ; GCN-NEXT: [[COPY5:%[0-9]+]]:sreg_64 = COPY $sgpr10_sgpr11429    ; GCN-NEXT: [[COPY6:%[0-9]+]]:sreg_64 = COPY $sgpr12_sgpr13430    ; GCN-NEXT: [[COPY7:%[0-9]+]]:sreg_64 = COPY $sgpr14_sgpr15431    ; 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_sub15432    ; GCN-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7_sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15 = COPY [[REG_SEQUENCE]]433    %0:sgpr(<4 x s16>) = COPY $sgpr0_sgpr1434    %1:sgpr(<4 x s16>) = COPY $sgpr2_sgpr3435    %2:sgpr(<4 x s16>) = COPY $sgpr4_sgpr5436    %3:sgpr(<4 x s16>) = COPY $sgpr6_sgpr7437    %4:sgpr(<4 x s16>) = COPY $sgpr8_sgpr9438    %5:sgpr(<4 x s16>) = COPY $sgpr10_sgpr11439    %6:sgpr(<4 x s16>) = COPY $sgpr12_sgpr13440    %7:sgpr(<4 x s16>) = COPY $sgpr14_sgpr15441    %8:sgpr(<32 x s16>) = G_CONCAT_VECTORS %0, %1, %2, %3, %4, %5, %6, %7442    $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7_sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15 = COPY %8443...444 445---446name: test_concat_vectors_v_v512_v_v64_v_v64_v_v64_v_v64_v_v64_v_v64_v_v64_v_v64447legalized:       true448regBankSelected: true449 450body: |451  bb.0:452    liveins: $vgpr0_vgpr1, $vgpr2_vgpr3, $vgpr4_vgpr5, $vgpr6_vgpr7, $vgpr8_vgpr9, $vgpr10_vgpr11, $vgpr12_vgpr13, $vgpr14_vgpr15453 454    ; GCN-LABEL: name: test_concat_vectors_v_v512_v_v64_v_v64_v_v64_v_v64_v_v64_v_v64_v_v64_v_v64455    ; GCN: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3, $vgpr4_vgpr5, $vgpr6_vgpr7, $vgpr8_vgpr9, $vgpr10_vgpr11, $vgpr12_vgpr13, $vgpr14_vgpr15456    ; GCN-NEXT: {{  $}}457    ; GCN-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1458    ; GCN-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3459    ; GCN-NEXT: [[COPY2:%[0-9]+]]:vreg_64 = COPY $vgpr4_vgpr5460    ; GCN-NEXT: [[COPY3:%[0-9]+]]:vreg_64 = COPY $vgpr6_vgpr7461    ; GCN-NEXT: [[COPY4:%[0-9]+]]:vreg_64 = COPY $vgpr8_vgpr9462    ; GCN-NEXT: [[COPY5:%[0-9]+]]:vreg_64 = COPY $vgpr10_vgpr11463    ; GCN-NEXT: [[COPY6:%[0-9]+]]:vreg_64 = COPY $vgpr12_vgpr13464    ; GCN-NEXT: [[COPY7:%[0-9]+]]:vreg_64 = COPY $vgpr14_vgpr15465    ; 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_sub15466    ; GCN-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = COPY [[REG_SEQUENCE]]467    %0:vgpr(<4 x s16>) = COPY $vgpr0_vgpr1468    %1:vgpr(<4 x s16>) = COPY $vgpr2_vgpr3469    %2:vgpr(<4 x s16>) = COPY $vgpr4_vgpr5470    %3:vgpr(<4 x s16>) = COPY $vgpr6_vgpr7471    %4:vgpr(<4 x s16>) = COPY $vgpr8_vgpr9472    %5:vgpr(<4 x s16>) = COPY $vgpr10_vgpr11473    %6:vgpr(<4 x s16>) = COPY $vgpr12_vgpr13474    %7:vgpr(<4 x s16>) = COPY $vgpr14_vgpr15475    %8:vgpr(<32 x s16>) = G_CONCAT_VECTORS %0, %1, %2, %3, %4, %5, %6, %7476    $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = COPY %8477...478 479 480 481 482 483 484---485name: test_concat_vectors_s_v4s32_s_v2s32_s_v2s32486legalized:       true487regBankSelected: true488 489body: |490  bb.0:491    liveins: $sgpr0_sgpr1, $sgpr2_sgpr3492 493    ; GCN-LABEL: name: test_concat_vectors_s_v4s32_s_v2s32_s_v2s32494    ; GCN: liveins: $sgpr0_sgpr1, $sgpr2_sgpr3495    ; GCN-NEXT: {{  $}}496    ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1497    ; GCN-NEXT: [[COPY1:%[0-9]+]]:sreg_64 = COPY $sgpr2_sgpr3498    ; GCN-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_128 = REG_SEQUENCE [[COPY]], %subreg.sub0_sub1, [[COPY1]], %subreg.sub2_sub3499    ; GCN-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3 = COPY [[REG_SEQUENCE]]500    %0:sgpr(<2 x s32>) = COPY $sgpr0_sgpr1501    %1:sgpr(<2 x s32>) = COPY $sgpr2_sgpr3502    %4:sgpr(<4 x s32>) = G_CONCAT_VECTORS %0, %1503    $sgpr0_sgpr1_sgpr2_sgpr3 = COPY %4504...505 506---507name: test_concat_vectors_v_v4s32_v_v2s32_v_v2s32508legalized:       true509regBankSelected: true510 511body: |512  bb.0:513    liveins: $vgpr0_vgpr1, $vgpr2_vgpr3514 515    ; GCN-LABEL: name: test_concat_vectors_v_v4s32_v_v2s32_v_v2s32516    ; GCN: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3517    ; GCN-NEXT: {{  $}}518    ; GCN-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1519    ; GCN-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3520    ; GCN-NEXT: [[REG_SEQUENCE:%[0-9]+]]:vreg_128 = REG_SEQUENCE [[COPY]], %subreg.sub0_sub1, [[COPY1]], %subreg.sub2_sub3521    ; GCN-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[REG_SEQUENCE]]522    %0:vgpr(<2 x s32>) = COPY $vgpr0_vgpr1523    %1:vgpr(<2 x s32>) = COPY $vgpr2_vgpr3524    %2:vgpr(<4 x s32>) = G_CONCAT_VECTORS %0, %1525    $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %2526...527 528---529name: test_concat_vectors_s_v8s32_s_v2s32_s_v2s32_s_v2s32_s_v2s32530legalized:       true531regBankSelected: true532 533body: |534  bb.0:535    liveins: $sgpr0_sgpr1, $sgpr2_sgpr3, $sgpr4_sgpr5, $sgpr6_sgpr7536 537    ; GCN-LABEL: name: test_concat_vectors_s_v8s32_s_v2s32_s_v2s32_s_v2s32_s_v2s32538    ; GCN: liveins: $sgpr0_sgpr1, $sgpr2_sgpr3, $sgpr4_sgpr5, $sgpr6_sgpr7539    ; GCN-NEXT: {{  $}}540    ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1541    ; GCN-NEXT: [[COPY1:%[0-9]+]]:sreg_64 = COPY $sgpr2_sgpr3542    ; GCN-NEXT: [[COPY2:%[0-9]+]]:sreg_64 = COPY $sgpr4_sgpr5543    ; GCN-NEXT: [[COPY3:%[0-9]+]]:sreg_64 = COPY $sgpr6_sgpr7544    ; 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_sub7545    ; GCN-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7 = COPY [[REG_SEQUENCE]]546    %0:sgpr(<2 x s32>) = COPY $sgpr0_sgpr1547    %1:sgpr(<2 x s32>) = COPY $sgpr2_sgpr3548    %2:sgpr(<2 x s32>) = COPY $sgpr4_sgpr5549    %3:sgpr(<2 x s32>) = COPY $sgpr6_sgpr7550    %4:sgpr(<8 x s32>) = G_CONCAT_VECTORS %0, %1, %2, %3551    $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7 = COPY %4552...553 554---555 556name: test_concat_vectors_s_v8s32_s_v4s32_s_v4s32557legalized:       true558regBankSelected: true559 560body: |561  bb.0:562    liveins: $sgpr0_sgpr1_sgpr2_sgpr3, $sgpr4_sgpr5_sgpr6_sgpr7563 564    ; GCN-LABEL: name: test_concat_vectors_s_v8s32_s_v4s32_s_v4s32565    ; GCN: liveins: $sgpr0_sgpr1_sgpr2_sgpr3, $sgpr4_sgpr5_sgpr6_sgpr7566    ; GCN-NEXT: {{  $}}567    ; GCN-NEXT: [[COPY:%[0-9]+]]:sgpr_128 = COPY $sgpr0_sgpr1_sgpr2_sgpr3568    ; GCN-NEXT: [[COPY1:%[0-9]+]]:sgpr_128 = COPY $sgpr4_sgpr5_sgpr6_sgpr7569    ; GCN-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_256 = REG_SEQUENCE [[COPY]], %subreg.sub0_sub1_sub2_sub3, [[COPY1]], %subreg.sub4_sub5_sub6_sub7570    ; GCN-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7 = COPY [[REG_SEQUENCE]]571    %0:sgpr(<4 x s32>) = COPY $sgpr0_sgpr1_sgpr2_sgpr3572    %1:sgpr(<4 x s32>) = COPY $sgpr4_sgpr5_sgpr6_sgpr7573    %2:sgpr(<8 x s32>) = G_CONCAT_VECTORS %0, %1574    $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7 = COPY %2575...576 577---578name: test_concat_vectors_s_v16s32_s_v8s32_s_v8s32579legalized:       true580regBankSelected: true581 582body: |583  bb.0:584    liveins: $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7, $sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15585 586    ; GCN-LABEL: name: test_concat_vectors_s_v16s32_s_v8s32_s_v8s32587    ; GCN: liveins: $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7, $sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15588    ; GCN-NEXT: {{  $}}589    ; GCN-NEXT: [[COPY:%[0-9]+]]:sgpr_256 = COPY $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7590    ; GCN-NEXT: [[COPY1:%[0-9]+]]:sgpr_256 = COPY $sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15591    ; 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_sub15592    ; GCN-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7_sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15 = COPY [[REG_SEQUENCE]]593    %0:sgpr(<8 x s32>) = COPY $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7,594    %1:sgpr(<8 x s32>) = COPY $sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15595    %4:sgpr(<16 x s32>) = G_CONCAT_VECTORS %0, %1596    $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7_sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15 = COPY %4597...598 599---600name: test_concat_vectors_v_v16s32_v_v2s32_v_v2s32_v_v2s32_v_v2s32_v_v2s32_v_v2s32_v_v2s32_v_v2s32601legalized:       true602regBankSelected: true603 604body: |605  bb.0:606    liveins: $vgpr0_vgpr1, $vgpr2_vgpr3, $vgpr4_vgpr5, $vgpr6_vgpr7, $vgpr8_vgpr9, $vgpr10_vgpr11, $vgpr12_vgpr13, $vgpr14_vgpr15607 608    ; GCN-LABEL: name: test_concat_vectors_v_v16s32_v_v2s32_v_v2s32_v_v2s32_v_v2s32_v_v2s32_v_v2s32_v_v2s32_v_v2s32609    ; GCN: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3, $vgpr4_vgpr5, $vgpr6_vgpr7, $vgpr8_vgpr9, $vgpr10_vgpr11, $vgpr12_vgpr13, $vgpr14_vgpr15610    ; GCN-NEXT: {{  $}}611    ; GCN-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1612    ; GCN-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3613    ; GCN-NEXT: [[COPY2:%[0-9]+]]:vreg_64 = COPY $vgpr4_vgpr5614    ; GCN-NEXT: [[COPY3:%[0-9]+]]:vreg_64 = COPY $vgpr6_vgpr7615    ; GCN-NEXT: [[COPY4:%[0-9]+]]:vreg_64 = COPY $vgpr8_vgpr9616    ; GCN-NEXT: [[COPY5:%[0-9]+]]:vreg_64 = COPY $vgpr10_vgpr11617    ; GCN-NEXT: [[COPY6:%[0-9]+]]:vreg_64 = COPY $vgpr12_vgpr13618    ; GCN-NEXT: [[COPY7:%[0-9]+]]:vreg_64 = COPY $vgpr14_vgpr15619    ; 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_sub15620    ; GCN-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = COPY [[REG_SEQUENCE]]621    %0:vgpr(<2 x s32>) = COPY $vgpr0_vgpr1622    %1:vgpr(<2 x s32>) = COPY $vgpr2_vgpr3623    %2:vgpr(<2 x s32>) = COPY $vgpr4_vgpr5624    %3:vgpr(<2 x s32>) = COPY $vgpr6_vgpr7625    %4:vgpr(<2 x s32>) = COPY $vgpr8_vgpr9626    %5:vgpr(<2 x s32>) = COPY $vgpr10_vgpr11627    %6:vgpr(<2 x s32>) = COPY $vgpr12_vgpr13628    %7:vgpr(<2 x s32>) = COPY $vgpr14_vgpr15629    %8:vgpr(<16 x s32>) = G_CONCAT_VECTORS %0, %1, %2, %3, %4, %5, %6, %7630    $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = COPY %8631...632 633---634name: test_concat_vectors_s_v32s32_s_v16s32_s_v16s32635legalized:       true636regBankSelected: true637 638body: |639  bb.0:640    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_sgpr31641 642    ; GCN-LABEL: name: test_concat_vectors_s_v32s32_s_v16s32_s_v16s32643    ; 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_sgpr31644    ; GCN-NEXT: {{  $}}645    ; GCN-NEXT: [[COPY:%[0-9]+]]:sgpr_512 = COPY $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7_sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15646    ; GCN-NEXT: [[COPY1:%[0-9]+]]:sgpr_512 = COPY $sgpr16_sgpr17_sgpr18_sgpr19_sgpr20_sgpr21_sgpr22_sgpr23_sgpr24_sgpr25_sgpr26_sgpr27_sgpr28_sgpr29_sgpr30_sgpr31647    ; 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_sub31648    ; 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]]649    %0:sgpr(<16 x s32>) = COPY $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7_sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15650    %1:sgpr(<16 x s32>) = COPY $sgpr16_sgpr17_sgpr18_sgpr19_sgpr20_sgpr21_sgpr22_sgpr23_sgpr24_sgpr25_sgpr26_sgpr27_sgpr28_sgpr29_sgpr30_sgpr31651    %2:sgpr(<32 x s32>) = G_CONCAT_VECTORS %0, %1652    $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 %2653...654 655---656name: test_concat_vectors_s_v4s64_s_v2s64_s_v2s64657legalized:       true658regBankSelected: true659 660body: |661  bb.0:662    liveins: $sgpr0_sgpr1_sgpr2_sgpr3, $sgpr4_sgpr5_sgpr6_sgpr7663 664    ; GCN-LABEL: name: test_concat_vectors_s_v4s64_s_v2s64_s_v2s64665    ; GCN: liveins: $sgpr0_sgpr1_sgpr2_sgpr3, $sgpr4_sgpr5_sgpr6_sgpr7666    ; GCN-NEXT: {{  $}}667    ; GCN-NEXT: [[COPY:%[0-9]+]]:sgpr_128 = COPY $sgpr0_sgpr1_sgpr2_sgpr3668    ; GCN-NEXT: [[COPY1:%[0-9]+]]:sgpr_128 = COPY $sgpr4_sgpr5_sgpr6_sgpr7669    ; GCN-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_256 = REG_SEQUENCE [[COPY]], %subreg.sub0_sub1_sub2_sub3, [[COPY1]], %subreg.sub4_sub5_sub6_sub7670    ; GCN-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7 = COPY [[REG_SEQUENCE]]671    %0:sgpr(<2 x s64>) = COPY $sgpr0_sgpr1_sgpr2_sgpr3672    %1:sgpr(<2 x s64>) = COPY $sgpr4_sgpr5_sgpr6_sgpr7673    %3:sgpr(<4 x s64>) = G_CONCAT_VECTORS %0, %1674    $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7 = COPY %3675...676 677---678name: test_concat_vectors_s_v6s64_s_v3s64_s_v3s64679legalized:       true680regBankSelected: true681 682body: |683  bb.0:684    liveins: $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7, $sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15685 686    ; GCN-LABEL: name: test_concat_vectors_s_v6s64_s_v3s64_s_v3s64687    ; GCN: liveins: $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7, $sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15688    ; GCN-NEXT: {{  $}}689    ; GCN-NEXT: [[DEF:%[0-9]+]]:sgpr_192 = IMPLICIT_DEF690    ; GCN-NEXT: [[DEF1:%[0-9]+]]:sgpr_192 = IMPLICIT_DEF691    ; GCN-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_384 = REG_SEQUENCE [[DEF]], %subreg.sub0_sub1_sub2_sub3_sub4_sub5, [[DEF1]], %subreg.sub6_sub7_sub8_sub9_sub10_sub11692    ; GCN-NEXT: S_ENDPGM 0, implicit [[REG_SEQUENCE]]693    %0:sgpr(<3 x s64>) = G_IMPLICIT_DEF694    %1:sgpr(<3 x s64>) = G_IMPLICIT_DEF695    %2:sgpr(<6 x s64>) = G_CONCAT_VECTORS %0, %1696    S_ENDPGM 0, implicit %2697...698 699---700name: test_concat_vectors_s_v8s64_s_v4s64_s_v4s64701legalized:       true702regBankSelected: true703 704body: |705  bb.0:706    liveins: $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7, $sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15707 708    ; GCN-LABEL: name: test_concat_vectors_s_v8s64_s_v4s64_s_v4s64709    ; GCN: liveins: $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7, $sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15710    ; GCN-NEXT: {{  $}}711    ; GCN-NEXT: [[COPY:%[0-9]+]]:sgpr_256 = COPY $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7712    ; GCN-NEXT: [[COPY1:%[0-9]+]]:sgpr_256 = COPY $sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15713    ; 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_sub15714    ; GCN-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7_sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15 = COPY [[REG_SEQUENCE]]715    %0:sgpr(<4 x s64>) = COPY $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7,716    %1:sgpr(<4 x s64>) = COPY $sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15717    %4:sgpr(<8 x s64>) = G_CONCAT_VECTORS %0, %1718    $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7_sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15 = COPY %4719...720 721---722name: test_concat_vectors_s_v8s64_s_v2s64_s_v2s64_s_v2s64_s_v2s64723legalized:       true724regBankSelected: true725 726body: |727  bb.0:728    liveins: $sgpr0_sgpr1_sgpr2_sgpr3, $sgpr4_sgpr5_sgpr6_sgpr7, $sgpr8_sgpr9_sgpr10_sgpr11, $sgpr12_sgpr13_sgpr14_sgpr15729 730    ; GCN-LABEL: name: test_concat_vectors_s_v8s64_s_v2s64_s_v2s64_s_v2s64_s_v2s64731    ; GCN: liveins: $sgpr0_sgpr1_sgpr2_sgpr3, $sgpr4_sgpr5_sgpr6_sgpr7, $sgpr8_sgpr9_sgpr10_sgpr11, $sgpr12_sgpr13_sgpr14_sgpr15732    ; GCN-NEXT: {{  $}}733    ; GCN-NEXT: [[COPY:%[0-9]+]]:sgpr_128 = COPY $sgpr0_sgpr1_sgpr2_sgpr3734    ; GCN-NEXT: [[COPY1:%[0-9]+]]:sgpr_128 = COPY $sgpr4_sgpr5_sgpr6_sgpr7735    ; GCN-NEXT: [[COPY2:%[0-9]+]]:sgpr_128 = COPY $sgpr8_sgpr9_sgpr10_sgpr11736    ; GCN-NEXT: [[COPY3:%[0-9]+]]:sgpr_128 = COPY $sgpr12_sgpr13_sgpr14_sgpr15737    ; GCN-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_512 = REG_SEQUENCE [[COPY]], %subreg.sub0_sub1_sub2_sub3, [[COPY1]], %subreg.sub4_sub5_sub6_sub7, [[COPY2]], %subreg.sub8_sub9_sub10_sub11, [[COPY3]], %subreg.sub12_sub13_sub14_sub15738    ; GCN-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7_sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15 = COPY [[REG_SEQUENCE]]739    %0:sgpr(<2 x s64>) = COPY $sgpr0_sgpr1_sgpr2_sgpr3740    %1:sgpr(<2 x s64>) = COPY $sgpr4_sgpr5_sgpr6_sgpr7741    %2:sgpr(<2 x s64>) = COPY $sgpr8_sgpr9_sgpr10_sgpr11742    %3:sgpr(<2 x s64>) = COPY $sgpr12_sgpr13_sgpr14_sgpr15743    %4:sgpr(<8 x s64>) = G_CONCAT_VECTORS %0, %1, %2, %3744    $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7_sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15 = COPY %4745...746 747---748name: test_concat_vectors_s_v4p1_s_v2p1_s_v2p1749legalized:       true750regBankSelected: true751 752body: |753  bb.0:754    liveins: $sgpr0_sgpr1_sgpr2_sgpr3, $sgpr4_sgpr5_sgpr6_sgpr7755 756    ; GCN-LABEL: name: test_concat_vectors_s_v4p1_s_v2p1_s_v2p1757    ; GCN: liveins: $sgpr0_sgpr1_sgpr2_sgpr3, $sgpr4_sgpr5_sgpr6_sgpr7758    ; GCN-NEXT: {{  $}}759    ; GCN-NEXT: [[COPY:%[0-9]+]]:sgpr_128 = COPY $sgpr0_sgpr1_sgpr2_sgpr3760    ; GCN-NEXT: [[COPY1:%[0-9]+]]:sgpr_128 = COPY $sgpr4_sgpr5_sgpr6_sgpr7761    ; GCN-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_256 = REG_SEQUENCE [[COPY]], %subreg.sub0_sub1_sub2_sub3, [[COPY1]], %subreg.sub4_sub5_sub6_sub7762    ; GCN-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7 = COPY [[REG_SEQUENCE]]763    %0:sgpr(<2 x p1>) = COPY $sgpr0_sgpr1_sgpr2_sgpr3764    %1:sgpr(<2 x p1>) = COPY $sgpr4_sgpr5_sgpr6_sgpr7765    %3:sgpr(<4 x p1>) = G_CONCAT_VECTORS %0, %1766    $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7 = COPY %3767...768 769---770name: test_concat_vectors_s_v4p3_s_v2p3_s_v2p3771legalized:       true772regBankSelected: true773 774body: |775  bb.0:776    liveins: $sgpr0_sgpr1, $sgpr2_sgpr3777 778    ; GCN-LABEL: name: test_concat_vectors_s_v4p3_s_v2p3_s_v2p3779    ; GCN: liveins: $sgpr0_sgpr1, $sgpr2_sgpr3780    ; GCN-NEXT: {{  $}}781    ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1782    ; GCN-NEXT: [[COPY1:%[0-9]+]]:sreg_64 = COPY $sgpr2_sgpr3783    ; GCN-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_128 = REG_SEQUENCE [[COPY]], %subreg.sub0_sub1, [[COPY1]], %subreg.sub2_sub3784    ; GCN-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3 = COPY [[REG_SEQUENCE]]785    %0:sgpr(<2 x p3>) = COPY $sgpr0_sgpr1786    %1:sgpr(<2 x p3>) = COPY $sgpr2_sgpr3787    %2:sgpr(<4 x p3>) = G_CONCAT_VECTORS %0, %1788    $sgpr0_sgpr1_sgpr2_sgpr3 = COPY %2789...790 791---792name: test_concat_vectors_s_v8p3_s_v2p3_s_v2p3_v2p3_s_v2p3793legalized:       true794regBankSelected: true795 796body: |797  bb.0:798    liveins: $sgpr0_sgpr1, $sgpr2_sgpr3, $sgpr4_sgpr5, $sgpr6_sgpr7799 800    ; GCN-LABEL: name: test_concat_vectors_s_v8p3_s_v2p3_s_v2p3_v2p3_s_v2p3801    ; GCN: liveins: $sgpr0_sgpr1, $sgpr2_sgpr3, $sgpr4_sgpr5, $sgpr6_sgpr7802    ; GCN-NEXT: {{  $}}803    ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1804    ; GCN-NEXT: [[COPY1:%[0-9]+]]:sreg_64 = COPY $sgpr2_sgpr3805    ; GCN-NEXT: [[COPY2:%[0-9]+]]:sreg_64 = COPY $sgpr4_sgpr5806    ; GCN-NEXT: [[COPY3:%[0-9]+]]:sreg_64 = COPY $sgpr6_sgpr7807    ; 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_sub7808    ; GCN-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7 = COPY [[REG_SEQUENCE]]809    %0:sgpr(<2 x p3>) = COPY $sgpr0_sgpr1810    %1:sgpr(<2 x p3>) = COPY $sgpr2_sgpr3811    %2:sgpr(<2 x p3>) = COPY $sgpr4_sgpr5812    %3:sgpr(<2 x p3>) = COPY $sgpr6_sgpr7813    %4:sgpr(<8 x p3>) = G_CONCAT_VECTORS %0, %1, %2, %3814    $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7 = COPY %4815...816