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
3
4---
5name: test_unmerge_values_v_s32_v_s32_v_s64
6legalized:       true
7regBankSelected: true
8tracksRegLiveness: true
9
10body: |
11  bb.0:
12    liveins: $vgpr0_vgpr1
13
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...
24
25---
26name: test_unmerge_values_s_s32_s_s32_s_s64
27legalized:       true
28regBankSelected: true
29tracksRegLiveness: true
30
31body: |
32  bb.0:
33    liveins: $sgpr0_sgpr1
34
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...
45
46---
47name: test_unmerge_values_v_s32_s_s32_s_s64
48legalized:       true
49regBankSelected: true
50tracksRegLiveness: true
51
52body: |
53  bb.0:
54    liveins: $sgpr0_sgpr1
55
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...
66
67---
68name: test_unmerge_values_s_s32_v_s32_s_s64
69legalized:       true
70regBankSelected: true
71tracksRegLiveness: true
72
73body: |
74  bb.0:
75    liveins: $sgpr0_sgpr1
76
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...
87
88---
89name: test_unmerge_values_s_s32_s_s32_s32_s_s96
90legalized:       true
91regBankSelected: true
92tracksRegLiveness: true
93
94body: |
95  bb.0:
96    liveins: $sgpr0_sgpr1_sgpr2
97
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
108...
109
110---
111name: test_unmerge_values_s_s32_s_s32_s32_s_s32_s_s128
112legalized:       true
113regBankSelected: true
114tracksRegLiveness: true
115
116body: |
117  bb.0:
118    liveins: $sgpr0_sgpr1_sgpr2_sgpr3
119
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
131...
132
133---
134name: test_unmerge_values_s_s64_s_s64_s_s128
135legalized:       true
136regBankSelected: true
137tracksRegLiveness: true
138
139body: |
140  bb.0:
141    liveins: $sgpr0_sgpr1_sgpr2_sgpr3
142
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
152...
153
154---
155name: test_unmerge_values_s_s64_s_s64_s64_s_s192
156legalized:       true
157regBankSelected: true
158tracksRegLiveness: true
159
160body: |
161  bb.0:
162    liveins: $sgpr0_sgpr1_sgpr2_sgpr3
163
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
174...
175
176---
177name: test_unmerge_values_rc_set_def_v_s32_v_s32_v_s64
178legalized:       true
179regBankSelected: true
180tracksRegLiveness: true
181
182body: |
183  bb.0:
184    liveins: $vgpr0_vgpr1
185
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
195...
196
197---
198name: test_unmerge_values_rc_set_use_v_s32_v_s32_v_s64
199legalized:       true
200regBankSelected: true
201tracksRegLiveness: true
202
203body: |
204  bb.0:
205    liveins: $vgpr0_vgpr1
206
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
216...
217
218---
219name: test_unmerge_values_s_s256_s_s1024
220legalized:       true
221regBankSelected: true
222tracksRegLiveness: true
223
224body: |
225  bb.0:
226    liveins: $sgpr0_sgpr1_sgpr2_sgpr3
227
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
239...
240
241---
242
243name: test_unmerge_values_s_s512_s_s1024
244legalized:       true
245regBankSelected: true
246tracksRegLiveness: true
247
248body: |
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
251
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
268...
269
270---
271name: test_unmerge_s_v3s32_s_v12s32
272legalized:       true
273regBankSelected: true
274tracksRegLiveness: true
275
276body: |
277  bb.0:
278    liveins: $sgpr0_sgpr1_sgpr2, $sgpr3_sgpr4_sgpr5, $sgpr6_sgpr7_sgpr8, $sgpr9_sgpr10_sgpr11
279
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
305
306...
307
308---
309name: test_unmerge_v_v3s32_v_v12s32
310legalized:       true
311regBankSelected: true
312tracksRegLiveness: true
313body: |
314  bb.0:
315    liveins: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5, $vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11
316
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
338
339...
340