• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 %s -o - | FileCheck -check-prefix=GFX6 %s
3# RUN: llc -mtriple=amdgcn-mesa-mesa3d -mcpu=fiji -run-pass=instruction-select %s -o - | FileCheck -check-prefix=GFX6 %s
4# RUN: llc -march=amdgcn -mcpu=gfx1010 -run-pass=instruction-select %s -o - |  FileCheck -check-prefix=GFX10 %s
5
6---
7name:            test_freeze_s1_vgpr_to_vgpr
8alignment:       1
9legalized:       true
10regBankSelected: true
11
12body: |
13  bb.0:
14    liveins: $vgpr0
15    ; GFX6-LABEL: name: test_freeze_s1_vgpr_to_vgpr
16    ; GFX6: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
17    ; GFX6: $vgpr0 = COPY [[COPY]]
18    ; GFX10-LABEL: name: test_freeze_s1_vgpr_to_vgpr
19    ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
20    ; GFX10: $vgpr0 = COPY [[COPY]]
21    %0:vgpr(s32) = COPY $vgpr0
22    %1:vgpr(s1) = G_TRUNC %0(s32)
23    %2:vgpr(s1) = G_FREEZE %1
24    %3:vgpr(s32) = G_ANYEXT %2(s1)
25    $vgpr0 = COPY %3(s32)
26
27...
28
29---
30name:            test_freeze_s1_vgpr_to_agpr
31alignment:       1
32legalized:       true
33regBankSelected: true
34
35body: |
36  bb.0:
37    liveins: $vgpr0
38    ; GFX6-LABEL: name: test_freeze_s1_vgpr_to_agpr
39    ; GFX6: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
40    ; GFX6: $agpr0 = COPY [[COPY]]
41    ; GFX10-LABEL: name: test_freeze_s1_vgpr_to_agpr
42    ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
43    ; GFX10: $agpr0 = COPY [[COPY]]
44    %0:vgpr(s32) = COPY $vgpr0
45    %1:vgpr(s1) = G_TRUNC %0(s32)
46    %2:vgpr(s1) = G_FREEZE %1
47    %3:vgpr(s32) = G_ANYEXT %2(s1)
48    $agpr0 = COPY %3(s32)
49
50...
51
52---
53name:            test_freeze_s1_vcc
54alignment:       1
55legalized:       true
56regBankSelected: true
57
58body: |
59  bb.0:
60    liveins: $vgpr0, $vgpr1
61    ; GFX6-LABEL: name: test_freeze_s1_vcc
62    ; GFX6: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
63    ; GFX6: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
64    ; GFX6: [[V_CMP_EQ_U32_e64_:%[0-9]+]]:sreg_64 = V_CMP_EQ_U32_e64 [[COPY]], [[COPY1]], implicit $exec
65    ; GFX6: [[COPY2:%[0-9]+]]:sreg_64_xexec = COPY [[V_CMP_EQ_U32_e64_]]
66    ; GFX6: S_ENDPGM 0, implicit [[COPY2]]
67    ; GFX10-LABEL: name: test_freeze_s1_vcc
68    ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
69    ; GFX10: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
70    ; GFX10: [[V_CMP_EQ_U32_e64_:%[0-9]+]]:sreg_32 = V_CMP_EQ_U32_e64 [[COPY]], [[COPY1]], implicit $exec
71    ; GFX10: [[COPY2:%[0-9]+]]:sreg_32_xm0_xexec = COPY [[V_CMP_EQ_U32_e64_]]
72    ; GFX10: S_ENDPGM 0, implicit [[COPY2]]
73    %0:vgpr(s32) = COPY $vgpr0
74    %1:vgpr(s32) = COPY $vgpr1
75    %2:vcc(s1) = G_ICMP intpred(eq), %0(s32), %1
76    %3:vcc(s1) = G_FREEZE %2
77    S_ENDPGM 0, implicit %3(s1)
78
79...
80
81---
82name:            test_freeze_s16_vgpr_to_vgpr
83alignment:       1
84legalized:       true
85regBankSelected: true
86
87body: |
88  bb.0:
89    liveins: $vgpr0
90    ; GFX6-LABEL: name: test_freeze_s16_vgpr_to_vgpr
91    ; GFX6: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
92    ; GFX6: $vgpr0 = COPY [[COPY]]
93    ; GFX10-LABEL: name: test_freeze_s16_vgpr_to_vgpr
94    ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
95    ; GFX10: $vgpr0 = COPY [[COPY]]
96    %0:vgpr(s32) = COPY $vgpr0
97    %1:vgpr(s16) = G_TRUNC %0(s32)
98    %2:vgpr(s16) = G_FREEZE %1
99    %3:vgpr(s32) = G_ANYEXT %2(s16)
100    $vgpr0 = COPY %3(s32)
101
102...
103
104---
105name:            test_freeze_s32_vgpr_to_vgpr
106alignment:       1
107legalized:       true
108regBankSelected: true
109
110body: |
111  bb.0:
112    liveins: $vgpr0
113    ; GFX6-LABEL: name: test_freeze_s32_vgpr_to_vgpr
114    ; GFX6: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
115    ; GFX6: $vgpr0 = COPY [[COPY]]
116    ; GFX10-LABEL: name: test_freeze_s32_vgpr_to_vgpr
117    ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
118    ; GFX10: $vgpr0 = COPY [[COPY]]
119    %0:vgpr(s32) = COPY $vgpr0
120    %1:vgpr(s32) = G_FREEZE %0
121    $vgpr0 = COPY %1(s32)
122
123...
124
125---
126name:            test_freeze_s32_sgpr_to_sgpr
127alignment:       1
128legalized:       true
129regBankSelected: true
130
131body: |
132  bb.0:
133    liveins: $sgpr0
134    ; GFX6-LABEL: name: test_freeze_s32_sgpr_to_sgpr
135    ; GFX6: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
136    ; GFX6: $sgpr0 = COPY [[COPY]]
137    ; GFX10-LABEL: name: test_freeze_s32_sgpr_to_sgpr
138    ; GFX10: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
139    ; GFX10: $sgpr0 = COPY [[COPY]]
140    %0:sgpr(s32) = COPY $sgpr0
141    %1:sgpr(s32) = G_FREEZE %0
142    $sgpr0 = COPY %1(s32)
143
144...
145
146---
147name:            test_freeze_s32_sgpr_to_vgpr
148alignment:       1
149legalized:       true
150regBankSelected: true
151
152body: |
153  bb.0:
154    liveins: $sgpr0
155    ; GFX6-LABEL: name: test_freeze_s32_sgpr_to_vgpr
156    ; GFX6: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
157    ; GFX6: $vgpr0 = COPY [[COPY]]
158    ; GFX10-LABEL: name: test_freeze_s32_sgpr_to_vgpr
159    ; GFX10: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
160    ; GFX10: $vgpr0 = COPY [[COPY]]
161    %0:sgpr(s32) = COPY $sgpr0
162    %1:sgpr(s32) = G_FREEZE %0
163    $vgpr0 = COPY %1(s32)
164
165...
166
167---
168name:            test_freeze_s32_vgpr_to_agpr
169alignment:       1
170legalized:       true
171regBankSelected: true
172
173body: |
174  bb.0:
175    liveins: $vgpr0
176    ; GFX6-LABEL: name: test_freeze_s32_vgpr_to_agpr
177    ; GFX6: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
178    ; GFX6: $agpr0 = COPY [[COPY]]
179    ; GFX10-LABEL: name: test_freeze_s32_vgpr_to_agpr
180    ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
181    ; GFX10: $agpr0 = COPY [[COPY]]
182    %0:vgpr(s32) = COPY $vgpr0
183    %1:vgpr(s32) = G_FREEZE %0
184    $agpr0 = COPY %1(s32)
185
186...
187
188---
189name:            test_freeze_s32_sgpr_to_agpr
190alignment:       1
191legalized:       true
192regBankSelected: true
193
194body: |
195  bb.0:
196    liveins: $sgpr0
197    ; GFX6-LABEL: name: test_freeze_s32_sgpr_to_agpr
198    ; GFX6: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
199    ; GFX6: $agpr0 = COPY [[COPY]]
200    ; GFX10-LABEL: name: test_freeze_s32_sgpr_to_agpr
201    ; GFX10: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
202    ; GFX10: $agpr0 = COPY [[COPY]]
203    %0:sgpr(s32) = COPY $sgpr0
204    %1:sgpr(s32) = G_FREEZE %0
205    $agpr0 = COPY %1(s32)
206
207...
208
209---
210name:            test_freeze_s32_agpr_to_vgpr
211alignment:       1
212legalized:       true
213regBankSelected: true
214
215body: |
216  bb.0:
217    liveins: $agpr0
218    ; GFX6-LABEL: name: test_freeze_s32_agpr_to_vgpr
219    ; GFX6: [[COPY:%[0-9]+]]:agpr_32 = COPY $agpr0
220    ; GFX6: $vgpr0 = COPY [[COPY]]
221    ; GFX10-LABEL: name: test_freeze_s32_agpr_to_vgpr
222    ; GFX10: [[COPY:%[0-9]+]]:agpr_32 = COPY $agpr0
223    ; GFX10: $vgpr0 = COPY [[COPY]]
224    %0:agpr(s32) = COPY $agpr0
225    %1:agpr(s32) = G_FREEZE %0
226    $vgpr0 = COPY %1(s32)
227
228...
229
230---
231name:            test_freeze_s32_agpr_to_agpr
232alignment:       1
233legalized:       true
234regBankSelected: true
235
236body: |
237  bb.0:
238    liveins: $agpr0
239    ; GFX6-LABEL: name: test_freeze_s32_agpr_to_agpr
240    ; GFX6: [[COPY:%[0-9]+]]:agpr_32 = COPY $agpr0
241    ; GFX6: $agpr0 = COPY [[COPY]]
242    ; GFX10-LABEL: name: test_freeze_s32_agpr_to_agpr
243    ; GFX10: [[COPY:%[0-9]+]]:agpr_32 = COPY $agpr0
244    ; GFX10: $agpr0 = COPY [[COPY]]
245    %0:agpr(s32) = COPY $agpr0
246    %1:agpr(s32) = G_FREEZE %0
247    $agpr0 = COPY %1(s32)
248
249...
250
251---
252name:            test_freeze_s64
253alignment:       1
254legalized:       true
255regBankSelected: true
256
257body: |
258  bb.0:
259    liveins: $vgpr0_vgpr1
260    ; GFX6-LABEL: name: test_freeze_s64
261    ; GFX6: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1
262    ; GFX6: $vgpr0_vgpr1 = COPY [[COPY]]
263    ; GFX10-LABEL: name: test_freeze_s64
264    ; GFX10: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1
265    ; GFX10: $vgpr0_vgpr1 = COPY [[COPY]]
266    %0:vgpr(s64) = COPY $vgpr0_vgpr1
267    %1:vgpr(s64) = G_FREEZE %0
268    $vgpr0_vgpr1 = COPY %1(s64)
269
270...
271
272---
273name:            test_freeze_s128
274alignment:       1
275legalized:       true
276regBankSelected: true
277
278body: |
279  bb.0:
280    liveins: $vgpr0_vgpr1_vgpr2_vgpr3
281    ; GFX6-LABEL: name: test_freeze_s128
282    ; GFX6: [[COPY:%[0-9]+]]:vreg_128 = COPY $vgpr0_vgpr1_vgpr2_vgpr3
283    ; GFX6: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[COPY]]
284    ; GFX10-LABEL: name: test_freeze_s128
285    ; GFX10: [[COPY:%[0-9]+]]:vreg_128 = COPY $vgpr0_vgpr1_vgpr2_vgpr3
286    ; GFX10: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[COPY]]
287    %0:vgpr(s128) = COPY $vgpr0_vgpr1_vgpr2_vgpr3
288    %1:vgpr(s128) = G_FREEZE %0
289    $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %1(s128)
290
291...
292
293---
294name:            test_freeze_256
295alignment:       1
296legalized:       true
297regBankSelected: true
298
299body: |
300  bb.0:
301    liveins: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7
302    ; GFX6-LABEL: name: test_freeze_256
303    ; GFX6: [[COPY:%[0-9]+]]:vreg_256 = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7
304    ; GFX6: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = COPY [[COPY]]
305    ; GFX10-LABEL: name: test_freeze_256
306    ; GFX10: [[COPY:%[0-9]+]]:vreg_256 = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7
307    ; GFX10: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = COPY [[COPY]]
308    %0:vgpr(s256) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7
309    %1:vgpr(s256) = G_FREEZE %0
310    $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = COPY %1(s256)
311
312...
313
314---
315name:            test_freeze_s512
316alignment:       1
317legalized:       true
318regBankSelected: true
319
320body: |
321  bb.0:
322    liveins: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15
323    ; GFX6-LABEL: name: test_freeze_s512
324    ; GFX6: [[COPY:%[0-9]+]]:vreg_512 = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15
325    ; GFX6: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = COPY [[COPY]]
326    ; GFX10-LABEL: name: test_freeze_s512
327    ; GFX10: [[COPY:%[0-9]+]]:vreg_512 = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15
328    ; GFX10: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = COPY [[COPY]]
329    %0:vgpr(s512) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15
330    %1:vgpr(s512) = G_FREEZE %0
331    $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = COPY %1(s512)
332
333...
334
335---
336name:            test_freeze_v2s32
337alignment:       1
338legalized:       true
339regBankSelected: true
340
341body: |
342  bb.0:
343    liveins: $vgpr0_vgpr1
344    ; GFX6-LABEL: name: test_freeze_v2s32
345    ; GFX6: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1
346    ; GFX6: $vgpr0_vgpr1 = COPY [[COPY]]
347    ; GFX10-LABEL: name: test_freeze_v2s32
348    ; GFX10: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1
349    ; GFX10: $vgpr0_vgpr1 = COPY [[COPY]]
350    %0:vgpr(<2 x s32>) = COPY $vgpr0_vgpr1
351    %1:vgpr(<2 x s32>) = G_FREEZE %0
352    $vgpr0_vgpr1 = COPY %1(<2 x s32>)
353
354...
355
356---
357name:            test_freeze_v3s32
358alignment:       1
359legalized:       true
360regBankSelected: true
361
362body: |
363  bb.0:
364    liveins: $vgpr0_vgpr1_vgpr2
365    ; GFX6-LABEL: name: test_freeze_v3s32
366    ; GFX6: [[COPY:%[0-9]+]]:vreg_96 = COPY $vgpr0_vgpr1_vgpr2
367    ; GFX6: $vgpr0_vgpr1_vgpr2 = COPY [[COPY]]
368    ; GFX10-LABEL: name: test_freeze_v3s32
369    ; GFX10: [[COPY:%[0-9]+]]:vreg_96 = COPY $vgpr0_vgpr1_vgpr2
370    ; GFX10: $vgpr0_vgpr1_vgpr2 = COPY [[COPY]]
371    %0:vgpr(<3 x s32>) = COPY $vgpr0_vgpr1_vgpr2
372    %1:vgpr(<3 x s32>) = G_FREEZE %0
373    $vgpr0_vgpr1_vgpr2 = COPY %1(<3 x s32>)
374
375...
376
377---
378name:            test_freeze_v4s32
379alignment:       1
380legalized:       true
381regBankSelected: true
382
383body: |
384  bb.0:
385    liveins: $vgpr0_vgpr1_vgpr2_vgpr3
386    ; GFX6-LABEL: name: test_freeze_v4s32
387    ; GFX6: [[COPY:%[0-9]+]]:vreg_128 = COPY $vgpr0_vgpr1_vgpr2_vgpr3
388    ; GFX6: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[COPY]]
389    ; GFX10-LABEL: name: test_freeze_v4s32
390    ; GFX10: [[COPY:%[0-9]+]]:vreg_128 = COPY $vgpr0_vgpr1_vgpr2_vgpr3
391    ; GFX10: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[COPY]]
392    %0:vgpr(<4 x s32>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3
393    %1:vgpr(<4 x s32>) = G_FREEZE %0
394    $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %1(<4 x s32>)
395
396...
397
398---
399name:            test_freeze_v5s32
400alignment:       1
401legalized:       true
402regBankSelected: true
403
404body: |
405  bb.0:
406    liveins: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4
407    ; GFX6-LABEL: name: test_freeze_v5s32
408    ; GFX6: [[COPY:%[0-9]+]]:vreg_160 = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4
409    ; GFX6: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4 = COPY [[COPY]]
410    ; GFX10-LABEL: name: test_freeze_v5s32
411    ; GFX10: [[COPY:%[0-9]+]]:vreg_160 = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4
412    ; GFX10: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4 = COPY [[COPY]]
413    %0:vgpr(<5 x s32>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4
414    %1:vgpr(<5 x s32>) = G_FREEZE %0
415    $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4 = COPY %1(<5 x s32>)
416
417...
418
419---
420name:            test_freeze_v8s32
421alignment:       1
422legalized:       true
423regBankSelected: true
424
425body: |
426  bb.0:
427    liveins: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7
428    ; GFX6-LABEL: name: test_freeze_v8s32
429    ; GFX6: [[COPY:%[0-9]+]]:vreg_256 = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7
430    ; GFX6: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = COPY [[COPY]]
431    ; GFX10-LABEL: name: test_freeze_v8s32
432    ; GFX10: [[COPY:%[0-9]+]]:vreg_256 = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7
433    ; GFX10: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = COPY [[COPY]]
434    %0:vgpr(<8 x s32>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7
435    %1:vgpr(<8 x s32>) = G_FREEZE %0
436    $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = COPY %1(<8 x s32>)
437
438...
439
440---
441name:            test_freeze_v16s32
442alignment:       1
443legalized:       true
444regBankSelected: true
445
446body: |
447  bb.0:
448    liveins: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15
449    ; GFX6-LABEL: name: test_freeze_v16s32
450    ; GFX6: [[COPY:%[0-9]+]]:vreg_512 = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15
451    ; GFX6: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = COPY [[COPY]]
452    ; GFX10-LABEL: name: test_freeze_v16s32
453    ; GFX10: [[COPY:%[0-9]+]]:vreg_512 = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15
454    ; GFX10: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = COPY [[COPY]]
455    %0:vgpr(<16 x s32>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15
456    %1:vgpr(<16 x s32>) = G_FREEZE %0
457    $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = COPY %1(<16 x s32>)
458
459...
460
461---
462name:            test_freeze_v2s16
463alignment:       1
464legalized:       true
465regBankSelected: true
466
467body: |
468  bb.0:
469    liveins: $vgpr0
470    ; GFX6-LABEL: name: test_freeze_v2s16
471    ; GFX6: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
472    ; GFX6: $vgpr0 = COPY [[COPY]]
473    ; GFX10-LABEL: name: test_freeze_v2s16
474    ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
475    ; GFX10: $vgpr0 = COPY [[COPY]]
476    %0:vgpr(<2 x s16>) = COPY $vgpr0
477    %1:vgpr(<2 x s16>) = G_FREEZE %0
478    $vgpr0 = COPY %1(<2 x s16>)
479
480...
481
482---
483name:            test_freeze_v4s16
484alignment:       1
485legalized:       true
486regBankSelected: true
487
488body: |
489  bb.0:
490    liveins: $vgpr0_vgpr1
491    ; GFX6-LABEL: name: test_freeze_v4s16
492    ; GFX6: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1
493    ; GFX6: $vgpr0_vgpr1 = COPY [[COPY]]
494    ; GFX10-LABEL: name: test_freeze_v4s16
495    ; GFX10: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1
496    ; GFX10: $vgpr0_vgpr1 = COPY [[COPY]]
497    %0:vgpr(<4 x s16>) = COPY $vgpr0_vgpr1
498    %1:vgpr(<4 x s16>) = G_FREEZE %0
499    $vgpr0_vgpr1 = COPY %1(<4 x s16>)
500
501...
502
503---
504name:            test_freeze_v6s16
505alignment:       1
506legalized:       true
507regBankSelected: true
508
509body: |
510  bb.0:
511    liveins: $vgpr0_vgpr1_vgpr2
512    ; GFX6-LABEL: name: test_freeze_v6s16
513    ; GFX6: [[COPY:%[0-9]+]]:vreg_96 = COPY $vgpr0_vgpr1_vgpr2
514    ; GFX6: $vgpr0_vgpr1_vgpr2 = COPY [[COPY]]
515    ; GFX10-LABEL: name: test_freeze_v6s16
516    ; GFX10: [[COPY:%[0-9]+]]:vreg_96 = COPY $vgpr0_vgpr1_vgpr2
517    ; GFX10: $vgpr0_vgpr1_vgpr2 = COPY [[COPY]]
518    %0:vgpr(<6 x s16>) = COPY $vgpr0_vgpr1_vgpr2
519    %1:vgpr(<6 x s16>) = G_FREEZE %0
520    $vgpr0_vgpr1_vgpr2 = COPY %1(<6 x s16>)
521
522...
523
524---
525name:            test_freeze_v8s16
526alignment:       1
527legalized:       true
528regBankSelected: true
529
530body: |
531  bb.0:
532    liveins: $vgpr0_vgpr1_vgpr2_vgpr3
533    ; GFX6-LABEL: name: test_freeze_v8s16
534    ; GFX6: [[COPY:%[0-9]+]]:vreg_128 = COPY $vgpr0_vgpr1_vgpr2_vgpr3
535    ; GFX6: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[COPY]]
536    ; GFX10-LABEL: name: test_freeze_v8s16
537    ; GFX10: [[COPY:%[0-9]+]]:vreg_128 = COPY $vgpr0_vgpr1_vgpr2_vgpr3
538    ; GFX10: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[COPY]]
539    %0:vgpr(<8 x s16>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3
540    %1:vgpr(<8 x s16>) = G_FREEZE %0
541    $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %1(<8 x s16>)
542
543...
544
545---
546name:            test_freeze_v2s64
547alignment:       1
548legalized:       true
549regBankSelected: true
550
551body: |
552  bb.0:
553    liveins: $vgpr0_vgpr1_vgpr2_vgpr3
554    ; GFX6-LABEL: name: test_freeze_v2s64
555    ; GFX6: [[COPY:%[0-9]+]]:vreg_128 = COPY $vgpr0_vgpr1_vgpr2_vgpr3
556    ; GFX6: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[COPY]]
557    ; GFX10-LABEL: name: test_freeze_v2s64
558    ; GFX10: [[COPY:%[0-9]+]]:vreg_128 = COPY $vgpr0_vgpr1_vgpr2_vgpr3
559    ; GFX10: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[COPY]]
560    %0:vgpr(<2 x s64>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3
561    %1:vgpr(<2 x s64>) = G_FREEZE %0
562    $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %1(<2 x s64>)
563
564...
565
566---
567name:            test_freeze_p0
568alignment:       1
569legalized:       true
570regBankSelected: true
571
572body: |
573  bb.0:
574    liveins: $vgpr0_vgpr1
575    ; GFX6-LABEL: name: test_freeze_p0
576    ; GFX6: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1
577    ; GFX6: $vgpr0_vgpr1 = COPY [[COPY]]
578    ; GFX10-LABEL: name: test_freeze_p0
579    ; GFX10: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1
580    ; GFX10: $vgpr0_vgpr1 = COPY [[COPY]]
581    %0:vgpr(p0) = COPY $vgpr0_vgpr1
582    %1:vgpr(p0) = G_FREEZE %0
583    $vgpr0_vgpr1 = COPY %1(p0)
584
585...
586
587---
588name:            test_freeze_p1
589alignment:       1
590legalized:       true
591regBankSelected: true
592
593body: |
594  bb.0:
595    liveins: $vgpr0_vgpr1
596    ; GFX6-LABEL: name: test_freeze_p1
597    ; GFX6: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1
598    ; GFX6: $vgpr0_vgpr1 = COPY [[COPY]]
599    ; GFX10-LABEL: name: test_freeze_p1
600    ; GFX10: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1
601    ; GFX10: $vgpr0_vgpr1 = COPY [[COPY]]
602    %0:vgpr(p1) = COPY $vgpr0_vgpr1
603    %1:vgpr(p1) = G_FREEZE %0
604    $vgpr0_vgpr1 = COPY %1(p1)
605
606...
607
608---
609name:            test_freeze_p2
610alignment:       1
611legalized:       true
612regBankSelected: true
613
614body: |
615  bb.0:
616    liveins: $vgpr0
617    ; GFX6-LABEL: name: test_freeze_p2
618    ; GFX6: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
619    ; GFX6: $vgpr0 = COPY [[COPY]]
620    ; GFX10-LABEL: name: test_freeze_p2
621    ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
622    ; GFX10: $vgpr0 = COPY [[COPY]]
623    %0:vgpr(p2) = COPY $vgpr0
624    %1:vgpr(p2) = G_FREEZE %0
625    $vgpr0 = COPY %1(p2)
626
627...
628
629---
630name:            test_freeze_p3
631alignment:       1
632legalized:       true
633regBankSelected: true
634
635body: |
636  bb.0:
637    liveins: $vgpr0
638    ; GFX6-LABEL: name: test_freeze_p3
639    ; GFX6: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
640    ; GFX6: $vgpr0 = COPY [[COPY]]
641    ; GFX10-LABEL: name: test_freeze_p3
642    ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
643    ; GFX10: $vgpr0 = COPY [[COPY]]
644    %0:vgpr(p3) = COPY $vgpr0
645    %1:vgpr(p3) = G_FREEZE %0
646    $vgpr0 = COPY %1(p3)
647
648...
649
650---
651name:            test_freeze_p4
652alignment:       1
653legalized:       true
654regBankSelected: true
655
656body: |
657  bb.0:
658    liveins: $vgpr0_vgpr1
659    ; GFX6-LABEL: name: test_freeze_p4
660    ; GFX6: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1
661    ; GFX6: $vgpr0_vgpr1 = COPY [[COPY]]
662    ; GFX10-LABEL: name: test_freeze_p4
663    ; GFX10: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1
664    ; GFX10: $vgpr0_vgpr1 = COPY [[COPY]]
665    %0:vgpr(p4) = COPY $vgpr0_vgpr1
666    %1:vgpr(p4) = G_FREEZE %0
667    $vgpr0_vgpr1 = COPY %1(p4)
668
669...
670
671---
672name:            test_freeze_p5
673alignment:       1
674legalized:       true
675regBankSelected: true
676
677body: |
678  bb.0:
679    liveins: $vgpr0
680    ; GFX6-LABEL: name: test_freeze_p5
681    ; GFX6: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
682    ; GFX6: $vgpr0 = COPY [[COPY]]
683    ; GFX10-LABEL: name: test_freeze_p5
684    ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
685    ; GFX10: $vgpr0 = COPY [[COPY]]
686    %0:vgpr(p5) = COPY $vgpr0
687    %1:vgpr(p5) = G_FREEZE %0
688    $vgpr0 = COPY %1(p5)
689
690...
691
692---
693name:            test_freeze_p999
694alignment:       1
695legalized:       true
696regBankSelected: true
697
698body: |
699  bb.0:
700    liveins: $vgpr0_vgpr1
701    ; GFX6-LABEL: name: test_freeze_p999
702    ; GFX6: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1
703    ; GFX6: $vgpr0_vgpr1 = COPY [[COPY]]
704    ; GFX10-LABEL: name: test_freeze_p999
705    ; GFX10: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1
706    ; GFX10: $vgpr0_vgpr1 = COPY [[COPY]]
707    %0:vgpr(p999) = COPY $vgpr0_vgpr1
708    %1:vgpr(p999) = G_FREEZE %0
709    $vgpr0_vgpr1 = COPY %1(p999)
710
711...
712