[AMDGPU] Make v8i16/v8f16 legal
[llvm-project.git] / llvm / test / CodeGen / AMDGPU / GlobalISel / inst-select-unmerge-values.mir
blob50226991b8c25719e1657e77fcd2e6d04d649c69
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # 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  %s
4 ---
5 name: test_unmerge_values_v_s32_v_s32_v_s64
6 legalized:       true
7 regBankSelected: true
8 tracksRegLiveness: true
10 body: |
11   bb.0:
12     liveins: $vgpr0_vgpr1
14     ; GCN-LABEL: name: test_unmerge_values_v_s32_v_s32_v_s64
15     ; GCN: liveins: $vgpr0_vgpr1
16     ; GCN: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1
17     ; GCN: [[COPY1:%[0-9]+]]:vgpr_32 = COPY [[COPY]].sub0
18     ; GCN: [[COPY2:%[0-9]+]]:vgpr_32 = COPY [[COPY]].sub1
19     ; GCN: S_ENDPGM 0, implicit [[COPY1]], implicit [[COPY2]]
20     %0:vgpr(s64) = COPY $vgpr0_vgpr1
21     %1:vgpr(s32), %2:vgpr(s32) = G_UNMERGE_VALUES %0
22     S_ENDPGM 0, implicit %1, implicit %2
23 ...
25 ---
26 name: test_unmerge_values_s_s32_s_s32_s_s64
27 legalized:       true
28 regBankSelected: true
29 tracksRegLiveness: true
31 body: |
32   bb.0:
33     liveins: $sgpr0_sgpr1
35     ; GCN-LABEL: name: test_unmerge_values_s_s32_s_s32_s_s64
36     ; GCN: liveins: $sgpr0_sgpr1
37     ; GCN: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1
38     ; GCN: [[COPY1:%[0-9]+]]:sreg_32 = COPY [[COPY]].sub0
39     ; GCN: [[COPY2:%[0-9]+]]:sreg_32 = COPY [[COPY]].sub1
40     ; GCN: S_ENDPGM 0, implicit [[COPY1]], implicit [[COPY2]]
41     %0:sgpr(s64) = COPY $sgpr0_sgpr1
42     %1:sgpr(s32), %2:sgpr(s32) = G_UNMERGE_VALUES %0
43     S_ENDPGM 0, implicit %1, implicit %2
44 ...
46 ---
47 name: test_unmerge_values_v_s32_s_s32_s_s64
48 legalized:       true
49 regBankSelected: true
50 tracksRegLiveness: true
52 body: |
53   bb.0:
54     liveins: $sgpr0_sgpr1
56     ; GCN-LABEL: name: test_unmerge_values_v_s32_s_s32_s_s64
57     ; GCN: liveins: $sgpr0_sgpr1
58     ; GCN: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1
59     ; GCN: [[COPY1:%[0-9]+]]:vgpr_32 = COPY [[COPY]].sub0
60     ; GCN: [[COPY2:%[0-9]+]]:sreg_32 = COPY [[COPY]].sub1
61     ; GCN: S_ENDPGM 0, implicit [[COPY1]], implicit [[COPY2]]
62     %0:sgpr(s64) = COPY $sgpr0_sgpr1
63     %1:vgpr(s32), %2:sgpr(s32) = G_UNMERGE_VALUES %0
64     S_ENDPGM 0, implicit %1, implicit %2
65 ...
67 ---
68 name: test_unmerge_values_s_s32_v_s32_s_s64
69 legalized:       true
70 regBankSelected: true
71 tracksRegLiveness: true
73 body: |
74   bb.0:
75     liveins: $sgpr0_sgpr1
77     ; GCN-LABEL: name: test_unmerge_values_s_s32_v_s32_s_s64
78     ; GCN: liveins: $sgpr0_sgpr1
79     ; GCN: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1
80     ; GCN: [[COPY1:%[0-9]+]]:sreg_32 = COPY [[COPY]].sub0
81     ; GCN: [[COPY2:%[0-9]+]]:vgpr_32 = COPY [[COPY]].sub1
82     ; GCN: S_ENDPGM 0, implicit [[COPY1]], implicit [[COPY2]]
83     %0:sgpr(s64) = COPY $sgpr0_sgpr1
84     %1:sgpr(s32), %2:vgpr(s32) = G_UNMERGE_VALUES %0
85     S_ENDPGM 0, implicit %1, implicit %2
86 ...
88 ---
89 name: test_unmerge_values_s_s32_s_s32_s32_s_s96
90 legalized:       true
91 regBankSelected: true
92 tracksRegLiveness: true
94 body: |
95   bb.0:
96     liveins: $sgpr0_sgpr1_sgpr2
98     ; GCN-LABEL: name: test_unmerge_values_s_s32_s_s32_s32_s_s96
99     ; GCN: liveins: $sgpr0_sgpr1_sgpr2
100     ; GCN: [[COPY:%[0-9]+]]:sgpr_96 = COPY $sgpr0_sgpr1_sgpr2
101     ; GCN: [[COPY1:%[0-9]+]]:sreg_32 = COPY [[COPY]].sub0
102     ; GCN: [[COPY2:%[0-9]+]]:sreg_32 = COPY [[COPY]].sub1
103     ; GCN: [[COPY3:%[0-9]+]]:sreg_32 = COPY [[COPY]].sub2
104     ; GCN: S_ENDPGM 0, implicit [[COPY1]], implicit [[COPY2]], implicit [[COPY3]]
105     %0:sgpr(s96) = COPY $sgpr0_sgpr1_sgpr2
106     %1:sgpr(s32), %2:sgpr(s32), %3:sgpr(s32) = G_UNMERGE_VALUES %0
107     S_ENDPGM 0, implicit %1, implicit %2, implicit %3
111 name: test_unmerge_values_s_s32_s_s32_s32_s_s32_s_s128
112 legalized:       true
113 regBankSelected: true
114 tracksRegLiveness: true
116 body: |
117   bb.0:
118     liveins: $sgpr0_sgpr1_sgpr2_sgpr3
120     ; GCN-LABEL: name: test_unmerge_values_s_s32_s_s32_s32_s_s32_s_s128
121     ; GCN: liveins: $sgpr0_sgpr1_sgpr2_sgpr3
122     ; GCN: [[COPY:%[0-9]+]]:sgpr_128 = COPY $sgpr0_sgpr1_sgpr2_sgpr3
123     ; GCN: [[COPY1:%[0-9]+]]:sreg_32 = COPY [[COPY]].sub0
124     ; GCN: [[COPY2:%[0-9]+]]:sreg_32 = COPY [[COPY]].sub1
125     ; GCN: [[COPY3:%[0-9]+]]:sreg_32 = COPY [[COPY]].sub2
126     ; GCN: [[COPY4:%[0-9]+]]:sreg_32 = COPY [[COPY]].sub3
127     ; GCN: S_ENDPGM 0, implicit [[COPY1]], implicit [[COPY2]], implicit [[COPY3]], implicit [[COPY4]]
128     %0:sgpr(s128) = COPY $sgpr0_sgpr1_sgpr2_sgpr3
129     %1:sgpr(s32), %2:sgpr(s32), %3:sgpr(s32), %4:sgpr(s32) = G_UNMERGE_VALUES %0
130     S_ENDPGM 0, implicit %1, implicit %2, implicit %3, implicit %4
134 name: test_unmerge_values_s_s64_s_s64_s_s128
135 legalized:       true
136 regBankSelected: true
137 tracksRegLiveness: true
139 body: |
140   bb.0:
141     liveins: $sgpr0_sgpr1_sgpr2_sgpr3
143     ; GCN-LABEL: name: test_unmerge_values_s_s64_s_s64_s_s128
144     ; GCN: liveins: $sgpr0_sgpr1_sgpr2_sgpr3
145     ; GCN: [[COPY:%[0-9]+]]:sgpr_128 = COPY $sgpr0_sgpr1_sgpr2_sgpr3
146     ; GCN: [[COPY1:%[0-9]+]]:sreg_64 = COPY [[COPY]].sub0_sub1
147     ; GCN: [[COPY2:%[0-9]+]]:sreg_64 = COPY [[COPY]].sub2_sub3
148     ; GCN: S_ENDPGM 0, implicit [[COPY1]], implicit [[COPY2]]
149     %0:sgpr(s128) = COPY $sgpr0_sgpr1_sgpr2_sgpr3
150     %1:sgpr(s64), %2:sgpr(s64) = G_UNMERGE_VALUES %0
151     S_ENDPGM 0, implicit %1, implicit %2
155 name: test_unmerge_values_s_s64_s_s64_s64_s_s192
156 legalized:       true
157 regBankSelected: true
158 tracksRegLiveness: true
160 body: |
161   bb.0:
162     liveins: $sgpr0_sgpr1_sgpr2_sgpr3
164     ; GCN-LABEL: name: test_unmerge_values_s_s64_s_s64_s64_s_s192
165     ; GCN: liveins: $sgpr0_sgpr1_sgpr2_sgpr3
166     ; GCN: [[DEF:%[0-9]+]]:sgpr_192 = IMPLICIT_DEF
167     ; GCN: [[COPY:%[0-9]+]]:sreg_64 = COPY [[DEF]].sub0_sub1
168     ; GCN: [[COPY1:%[0-9]+]]:sreg_64 = COPY [[DEF]].sub2_sub3
169     ; GCN: [[COPY2:%[0-9]+]]:sreg_64 = COPY [[DEF]].sub4_sub5
170     ; GCN: S_ENDPGM 0, implicit [[COPY]], implicit [[COPY1]], implicit [[COPY2]]
171     %0:sgpr(s192) = G_IMPLICIT_DEF
172     %1:sgpr(s64), %2:sgpr(s64), %3:sgpr(s64) = G_UNMERGE_VALUES %0
173     S_ENDPGM 0, implicit %1, implicit %2, implicit %3
177 name: test_unmerge_values_rc_set_def_v_s32_v_s32_v_s64
178 legalized:       true
179 regBankSelected: true
180 tracksRegLiveness: true
182 body: |
183   bb.0:
184     liveins: $vgpr0_vgpr1
186     ; GCN-LABEL: name: test_unmerge_values_rc_set_def_v_s32_v_s32_v_s64
187     ; GCN: liveins: $vgpr0_vgpr1
188     ; GCN: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1
189     ; GCN: [[COPY1:%[0-9]+]]:vgpr_32 = COPY [[COPY]].sub0
190     ; GCN: [[COPY2:%[0-9]+]]:vgpr_32 = COPY [[COPY]].sub1
191     ; GCN: S_ENDPGM 0, implicit [[COPY1]], implicit [[COPY2]]
192     %0:vgpr(s64) = COPY $vgpr0_vgpr1
193     %1:vgpr_32(s32), %2:vgpr_32(s32) = G_UNMERGE_VALUES %0
194     S_ENDPGM 0, implicit %1, implicit %2
198 name: test_unmerge_values_rc_set_use_v_s32_v_s32_v_s64
199 legalized:       true
200 regBankSelected: true
201 tracksRegLiveness: true
203 body: |
204   bb.0:
205     liveins: $vgpr0_vgpr1
207     ; GCN-LABEL: name: test_unmerge_values_rc_set_use_v_s32_v_s32_v_s64
208     ; GCN: liveins: $vgpr0_vgpr1
209     ; GCN: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1
210     ; GCN: [[COPY1:%[0-9]+]]:vgpr_32 = COPY [[COPY]].sub0
211     ; GCN: [[COPY2:%[0-9]+]]:vgpr_32 = COPY [[COPY]].sub1
212     ; GCN: S_ENDPGM 0, implicit [[COPY1]], implicit [[COPY2]]
213     %0:vreg_64(s64) = COPY $vgpr0_vgpr1
214     %1:vgpr(s32), %2:vgpr(s32) = G_UNMERGE_VALUES %0
215     S_ENDPGM 0, implicit %1, implicit %2
219 name: test_unmerge_values_s_s256_s_s1024
220 legalized:       true
221 regBankSelected: true
222 tracksRegLiveness: true
224 body: |
225   bb.0:
226     liveins: $sgpr0_sgpr1_sgpr2_sgpr3
228     ; GCN-LABEL: name: test_unmerge_values_s_s256_s_s1024
229     ; GCN: liveins: $sgpr0_sgpr1_sgpr2_sgpr3
230     ; GCN: [[DEF:%[0-9]+]]:sgpr_1024 = IMPLICIT_DEF
231     ; GCN: [[COPY:%[0-9]+]]:sgpr_256 = COPY [[DEF]].sub0_sub1_sub2_sub3_sub4_sub5_sub6_sub7
232     ; GCN: [[COPY1:%[0-9]+]]:sgpr_256 = COPY [[DEF]].sub8_sub9_sub10_sub11_sub12_sub13_sub14_sub15
233     ; GCN: [[COPY2:%[0-9]+]]:sgpr_256 = COPY [[DEF]].sub16_sub17_sub18_sub19_sub20_sub21_sub22_sub23
234     ; GCN: [[COPY3:%[0-9]+]]:sgpr_256 = COPY [[DEF]].sub24_sub25_sub26_sub27_sub28_sub29_sub30_sub31
235     ; GCN: S_ENDPGM 0, implicit [[COPY]], implicit [[COPY1]], implicit [[COPY2]], implicit [[COPY3]]
236     %0:sgpr(s1024) = G_IMPLICIT_DEF
237     %1:sgpr(s256), %2:sgpr(s256), %3:sgpr(s256), %4:sgpr(s256) = G_UNMERGE_VALUES %0
238     S_ENDPGM 0, implicit %1, implicit %2, implicit %3, implicit %4
243 name: test_unmerge_values_s_s512_s_s1024
244 legalized:       true
245 regBankSelected: true
246 tracksRegLiveness: true
248 body: |
249   bb.0:
250     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_sgpr31
252     ; CHECK-LABEL: name: test_unmerge_s512_s1024
253     ; CHECK: [[COPY:%[0-9]+]]:_(s1024) = COPY $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
254     ; CHECK: [[UV:%[0-9]+]]:_(s512), [[UV1:%[0-9]+]]:_(s512) = G_UNMERGE_VALUES [[COPY]](s1024)
255     ; CHECK: $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7_sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15 = COPY [[UV]](s512)
256     ; CHECK: $sgpr16_sgpr17_sgpr18_sgpr19_sgpr20_sgpr21_sgpr22_sgpr23_sgpr24_sgpr25_sgpr26_sgpr27_sgpr28_sgpr29_sgpr30_sgpr31 = COPY [[UV1]](s512)
257     ; GCN-LABEL: name: test_unmerge_values_s_s512_s_s1024
258     ; 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_sgpr31
259     ; GCN: [[COPY:%[0-9]+]]:sgpr_1024 = COPY $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
260     ; GCN: [[COPY1:%[0-9]+]]:sgpr_512 = COPY [[COPY]].sub0_sub1_sub2_sub3_sub4_sub5_sub6_sub7_sub8_sub9_sub10_sub11_sub12_sub13_sub14_sub15
261     ; GCN: [[COPY2:%[0-9]+]]:sgpr_512 = COPY [[COPY]].sub16_sub17_sub18_sub19_sub20_sub21_sub22_sub23_sub24_sub25_sub26_sub27_sub28_sub29_sub30_sub31
262     ; GCN: $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7_sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15 = COPY [[COPY1]]
263     ; GCN: $sgpr16_sgpr17_sgpr18_sgpr19_sgpr20_sgpr21_sgpr22_sgpr23_sgpr24_sgpr25_sgpr26_sgpr27_sgpr28_sgpr29_sgpr30_sgpr31 = COPY [[COPY2]]
264     %0:sgpr(s1024) = COPY $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
265     %1:sgpr(s512), %2:sgpr(s512) = G_UNMERGE_VALUES %0
266     $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7_sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15 = COPY %1
267     $sgpr16_sgpr17_sgpr18_sgpr19_sgpr20_sgpr21_sgpr22_sgpr23_sgpr24_sgpr25_sgpr26_sgpr27_sgpr28_sgpr29_sgpr30_sgpr31 = COPY %2
271 name: test_unmerge_s_v3s32_s_v12s32
272 legalized:       true
273 regBankSelected: true
274 tracksRegLiveness: true
276 body: |
277   bb.0:
278     liveins: $sgpr0_sgpr1_sgpr2, $sgpr3_sgpr4_sgpr5, $sgpr6_sgpr7_sgpr8, $sgpr9_sgpr10_sgpr11
280     ; GCN-LABEL: name: test_unmerge_s_v3s32_s_v12s32
281     ; GCN: liveins: $sgpr0_sgpr1_sgpr2, $sgpr3_sgpr4_sgpr5, $sgpr6_sgpr7_sgpr8, $sgpr9_sgpr10_sgpr11
282     ; GCN: [[COPY:%[0-9]+]]:sgpr_96 = COPY $sgpr0_sgpr1_sgpr2
283     ; GCN: [[COPY1:%[0-9]+]]:sgpr_96 = COPY $sgpr3_sgpr4_sgpr5
284     ; GCN: [[COPY2:%[0-9]+]]:sgpr_96 = COPY $sgpr6_sgpr7_sgpr8
285     ; GCN: [[COPY3:%[0-9]+]]:sgpr_96 = COPY $sgpr9_sgpr10_sgpr11
286     ; GCN: [[REG_SEQUENCE:%[0-9]+]]:sgpr_512_with_sub0_sub1_sub2 = REG_SEQUENCE [[COPY]], %subreg.sub0_sub1_sub2, [[COPY1]], %subreg.sub3_sub4_sub5, [[COPY2]], %subreg.sub6_sub7_sub8, [[COPY3]], %subreg.sub9_sub10_sub11
287     ; GCN: [[COPY4:%[0-9]+]]:sgpr_96 = COPY [[REG_SEQUENCE]].sub0_sub1_sub2
288     ; GCN: [[COPY5:%[0-9]+]]:sgpr_96 = COPY [[REG_SEQUENCE]].sub3_sub4_sub5
289     ; GCN: [[COPY6:%[0-9]+]]:sgpr_96 = COPY [[REG_SEQUENCE]].sub6_sub7_sub8
290     ; GCN: [[COPY7:%[0-9]+]]:sgpr_96 = COPY [[REG_SEQUENCE]].sub9_sub10_sub11
291     ; GCN: $sgpr0_sgpr1_sgpr2 = COPY [[COPY4]]
292     ; GCN: $sgpr3_sgpr4_sgpr5 = COPY [[COPY5]]
293     ; GCN: $sgpr6_sgpr7_sgpr8 = COPY [[COPY6]]
294     ; GCN: $sgpr9_sgpr10_sgpr11 = COPY [[COPY7]]
295     %0:sgpr(<3 x s32>) = COPY $sgpr0_sgpr1_sgpr2
296     %1:sgpr(<3 x s32>) = COPY $sgpr3_sgpr4_sgpr5
297     %2:sgpr(<3 x s32>) = COPY $sgpr6_sgpr7_sgpr8
298     %3:sgpr(<3 x s32>) = COPY $sgpr9_sgpr10_sgpr11
299     %4:sgpr(<12 x s32>) = G_CONCAT_VECTORS %0, %1, %2, %3
300     %5:sgpr(<3 x s32>), %6:sgpr(<3 x s32>), %7:sgpr(<3 x s32>), %8:sgpr(<3 x s32>) = G_UNMERGE_VALUES %4
301     $sgpr0_sgpr1_sgpr2 = COPY %5
302     $sgpr3_sgpr4_sgpr5 = COPY %6
303     $sgpr6_sgpr7_sgpr8 = COPY %7
304     $sgpr9_sgpr10_sgpr11 = COPY %8
309 name: test_unmerge_v_v3s32_v_v12s32
310 legalized:       true
311 regBankSelected: true
312 tracksRegLiveness: true
313 body: |
314   bb.0:
315     liveins: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5, $vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11
317     ; GCN-LABEL: name: test_unmerge_v_v3s32_v_v12s32
318     ; GCN: liveins: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5, $vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11
319     ; GCN: [[COPY:%[0-9]+]]:vreg_192 = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5
320     ; GCN: [[COPY1:%[0-9]+]]:vreg_192 = COPY $vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11
321     ; GCN: [[REG_SEQUENCE:%[0-9]+]]:vreg_512 = REG_SEQUENCE [[COPY]], %subreg.sub0_sub1_sub2_sub3_sub4_sub5, [[COPY1]], %subreg.sub6_sub7_sub8_sub9_sub10_sub11
322     ; GCN: [[COPY2:%[0-9]+]]:vreg_96 = COPY [[REG_SEQUENCE]].sub0_sub1_sub2
323     ; GCN: [[COPY3:%[0-9]+]]:vreg_96 = COPY [[REG_SEQUENCE]].sub3_sub4_sub5
324     ; GCN: [[COPY4:%[0-9]+]]:vreg_96 = COPY [[REG_SEQUENCE]].sub6_sub7_sub8
325     ; GCN: [[COPY5:%[0-9]+]]:vreg_96 = COPY [[REG_SEQUENCE]].sub9_sub10_sub11
326     ; GCN: $vgpr0_vgpr1_vgpr2 = COPY [[COPY2]]
327     ; GCN: $vgpr3_vgpr4_vgpr5 = COPY [[COPY3]]
328     ; GCN: $vgpr6_vgpr7_vgpr8 = COPY [[COPY4]]
329     ; GCN: $vgpr9_vgpr10_vgpr11 = COPY [[COPY5]]
330     %0:vgpr(<6 x s32>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5
331     %1:vgpr(<6 x s32>) = COPY $vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11
332     %2:vgpr(<12 x s32>) = G_CONCAT_VECTORS %0, %1
333     %3:vgpr(<3 x s32>), %4:vgpr(<3 x s32>), %5:vgpr(<3 x s32>), %6:vgpr(<3 x s32>) = G_UNMERGE_VALUES %2
334     $vgpr0_vgpr1_vgpr2 = COPY %3
335     $vgpr3_vgpr4_vgpr5 = COPY %4
336     $vgpr6_vgpr7_vgpr8 = COPY %5
337     $vgpr9_vgpr10_vgpr11 = COPY %6