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