1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -mtriple=amdgcn-mesa-mesa3d -mcpu=tahiti -run-pass=amdgpu-regbankselect %s -o - | FileCheck %s
3 # RUN: llc -mtriple=amdgcn-mesa-mesa3d -mcpu=fiji -run-pass=amdgpu-regbankselect %s -o - | FileCheck %s
4 # RUN: llc -mtriple=amdgcn -mcpu=gfx1010 -run-pass=amdgpu-regbankselect %s -o - | FileCheck %s
7 name: test_freeze_s1_vgpr_to_vgpr
13 ; CHECK-LABEL: name: test_freeze_s1_vgpr_to_vgpr
14 ; CHECK: liveins: $vgpr0
16 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
17 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:vgpr(s1) = G_TRUNC [[COPY]](s32)
18 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:vgpr(s1) = G_FREEZE [[TRUNC]]
19 ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:vgpr(s32) = G_ANYEXT [[FREEZE]](s1)
20 ; CHECK-NEXT: $vgpr0 = COPY [[ANYEXT]](s32)
21 %0:_(s32) = COPY $vgpr0
22 %1:_(s1) = G_TRUNC %0(s32)
23 %2:_(s1) = G_FREEZE %1
24 %3:_(s32) = G_ANYEXT %2(s1)
30 name: test_freeze_s1_vgpr_to_agpr
36 ; CHECK-LABEL: name: test_freeze_s1_vgpr_to_agpr
37 ; CHECK: liveins: $vgpr0
39 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
40 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:vgpr(s1) = G_TRUNC [[COPY]](s32)
41 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:vgpr(s1) = G_FREEZE [[TRUNC]]
42 ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:vgpr(s32) = G_ANYEXT [[FREEZE]](s1)
43 ; CHECK-NEXT: $agpr0 = COPY [[ANYEXT]](s32)
44 %0:_(s32) = COPY $vgpr0
45 %1:_(s1) = G_TRUNC %0(s32)
46 %2:_(s1) = G_FREEZE %1
47 %3:_(s32) = G_ANYEXT %2(s1)
53 name: test_freeze_s1_sgpr_to_sgpr
59 ; CHECK-LABEL: name: test_freeze_s1_sgpr_to_sgpr
60 ; CHECK: liveins: $sgpr0
62 ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
63 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[COPY]](s32)
64 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:sgpr(s1) = G_FREEZE [[TRUNC]]
65 ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:sgpr(s32) = G_ANYEXT [[FREEZE]](s1)
66 ; CHECK-NEXT: $sgpr0 = COPY [[ANYEXT]](s32)
67 %0:_(s32) = COPY $sgpr0
68 %1:_(s1) = G_TRUNC %0(s32)
69 %2:_(s1) = G_FREEZE %1
70 %3:_(s32) = G_ANYEXT %2(s1)
76 name: test_freeze_s1_vcc
81 liveins: $vgpr0, $vgpr1
82 ; CHECK-LABEL: name: test_freeze_s1_vcc
83 ; CHECK: liveins: $vgpr0, $vgpr1
85 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
86 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr1
87 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(eq), [[COPY]](s32), [[COPY1]]
88 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:vcc(s1) = G_FREEZE [[ICMP]]
89 ; CHECK-NEXT: S_ENDPGM 0, implicit [[FREEZE]](s1)
90 %0:_(s32) = COPY $vgpr0
91 %1:_(s32) = COPY $vgpr1
92 %2:_(s1) = G_ICMP intpred(eq), %0(s32), %1
93 %3:_(s1) = G_FREEZE %2
94 S_ENDPGM 0, implicit %3
99 name: test_freeze_s16_vgpr_to_vgpr
105 ; CHECK-LABEL: name: test_freeze_s16_vgpr_to_vgpr
106 ; CHECK: liveins: $vgpr0
108 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
109 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:vgpr(s16) = G_TRUNC [[COPY]](s32)
110 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:vgpr(s16) = G_FREEZE [[TRUNC]]
111 ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:vgpr(s32) = G_ANYEXT [[FREEZE]](s16)
112 ; CHECK-NEXT: $vgpr0 = COPY [[ANYEXT]](s32)
113 %0:_(s32) = COPY $vgpr0
114 %1:_(s16) = G_TRUNC %0(s32)
115 %2:_(s16) = G_FREEZE %1
116 %3:_(s32) = G_ANYEXT %2(s16)
117 $vgpr0 = COPY %3(s32)
122 name: test_freeze_s32_vgpr_to_vgpr
128 ; CHECK-LABEL: name: test_freeze_s32_vgpr_to_vgpr
129 ; CHECK: liveins: $vgpr0
131 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
132 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:vgpr(s32) = G_FREEZE [[COPY]]
133 ; CHECK-NEXT: $vgpr0 = COPY [[FREEZE]](s32)
134 %0:_(s32) = COPY $vgpr0
135 %1:_(s32) = G_FREEZE %0
136 $vgpr0 = COPY %1(s32)
141 name: test_freeze_s32_sgpr_to_sgpr
147 ; CHECK-LABEL: name: test_freeze_s32_sgpr_to_sgpr
148 ; CHECK: liveins: $sgpr0
150 ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
151 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:sgpr(s32) = G_FREEZE [[COPY]]
152 ; CHECK-NEXT: $sgpr0 = COPY [[FREEZE]](s32)
153 %0:_(s32) = COPY $sgpr0
154 %1:_(s32) = G_FREEZE %0
155 $sgpr0 = COPY %1(s32)
160 name: test_freeze_s32_sgpr_to_vgpr
166 ; CHECK-LABEL: name: test_freeze_s32_sgpr_to_vgpr
167 ; CHECK: liveins: $sgpr0
169 ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
170 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:sgpr(s32) = G_FREEZE [[COPY]]
171 ; CHECK-NEXT: $vgpr0 = COPY [[FREEZE]](s32)
172 %0:_(s32) = COPY $sgpr0
173 %1:_(s32) = G_FREEZE %0
174 $vgpr0 = COPY %1(s32)
179 name: test_freeze_s32_vgpr_to_agpr
185 ; CHECK-LABEL: name: test_freeze_s32_vgpr_to_agpr
186 ; CHECK: liveins: $vgpr0
188 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
189 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:vgpr(s32) = G_FREEZE [[COPY]]
190 ; CHECK-NEXT: $agpr0 = COPY [[FREEZE]](s32)
191 %0:_(s32) = COPY $vgpr0
192 %1:_(s32) = G_FREEZE %0
193 $agpr0 = COPY %1(s32)
198 name: test_freeze_s32_sgpr_to_agpr
204 ; CHECK-LABEL: name: test_freeze_s32_sgpr_to_agpr
205 ; CHECK: liveins: $sgpr0
207 ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
208 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:sgpr(s32) = G_FREEZE [[COPY]]
209 ; CHECK-NEXT: $agpr0 = COPY [[FREEZE]](s32)
210 %0:_(s32) = COPY $sgpr0
211 %1:_(s32) = G_FREEZE %0
212 $agpr0 = COPY %1(s32)
217 name: test_freeze_s32_agpr_to_vgpr
223 ; CHECK-LABEL: name: test_freeze_s32_agpr_to_vgpr
224 ; CHECK: liveins: $agpr0
226 ; CHECK-NEXT: [[COPY:%[0-9]+]]:agpr(s32) = COPY $agpr0
227 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:agpr(s32) = G_FREEZE [[COPY]]
228 ; CHECK-NEXT: $vgpr0 = COPY [[FREEZE]](s32)
229 %0:_(s32) = COPY $agpr0
230 %1:_(s32) = G_FREEZE %0
231 $vgpr0 = COPY %1(s32)
236 name: test_freeze_s32_agpr_to_agpr
242 ; CHECK-LABEL: name: test_freeze_s32_agpr_to_agpr
243 ; CHECK: liveins: $agpr0
245 ; CHECK-NEXT: [[COPY:%[0-9]+]]:agpr(s32) = COPY $agpr0
246 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:agpr(s32) = G_FREEZE [[COPY]]
247 ; CHECK-NEXT: $agpr0 = COPY [[FREEZE]](s32)
248 %0:_(s32) = COPY $agpr0
249 %1:_(s32) = G_FREEZE %0
250 $agpr0 = COPY %1(s32)
255 name: test_freeze_s64
260 liveins: $vgpr0_vgpr1
261 ; CHECK-LABEL: name: test_freeze_s64
262 ; CHECK: liveins: $vgpr0_vgpr1
264 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(s64) = COPY $vgpr0_vgpr1
265 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:vgpr(s64) = G_FREEZE [[COPY]]
266 ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[FREEZE]](s64)
267 %0:_(s64) = COPY $vgpr0_vgpr1
268 %1:_(s64) = G_FREEZE %0
269 $vgpr0_vgpr1 = COPY %1(s64)
273 name: test_freeze_s128
278 liveins: $vgpr0_vgpr1_vgpr2_vgpr3
279 ; CHECK-LABEL: name: test_freeze_s128
280 ; CHECK: liveins: $vgpr0_vgpr1_vgpr2_vgpr3
282 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(s128) = COPY $vgpr0_vgpr1_vgpr2_vgpr3
283 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:vgpr(s128) = G_FREEZE [[COPY]]
284 ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[FREEZE]](s128)
285 %0:_(s128) = COPY $vgpr0_vgpr1_vgpr2_vgpr3
286 %1:_(s128) = G_FREEZE %0
287 $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %1(s128)
291 name: test_freeze_256
296 liveins: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7
297 ; CHECK-LABEL: name: test_freeze_256
298 ; CHECK: liveins: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7
300 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(s256) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7
301 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:vgpr(s256) = G_FREEZE [[COPY]]
302 ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = COPY [[FREEZE]](s256)
303 %0:_(s256) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7
304 %1:_(s256) = G_FREEZE %0
305 $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = COPY %1(s256)
309 name: test_freeze_s512
314 liveins: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15
315 ; CHECK-LABEL: name: test_freeze_s512
316 ; CHECK: liveins: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15
318 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(s512) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15
319 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:vgpr(s512) = G_FREEZE [[COPY]]
320 ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = COPY [[FREEZE]](s512)
321 %0:_(s512) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15
322 %1:_(s512) = G_FREEZE %0
323 $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = COPY %1(s512)
327 name: test_freeze_v2s32
332 liveins: $vgpr0_vgpr1
333 ; CHECK-LABEL: name: test_freeze_v2s32
334 ; CHECK: liveins: $vgpr0_vgpr1
336 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(<2 x s32>) = COPY $vgpr0_vgpr1
337 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:vgpr(<2 x s32>) = G_FREEZE [[COPY]]
338 ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[FREEZE]](<2 x s32>)
339 %0:_(<2 x s32>) = COPY $vgpr0_vgpr1
340 %1:_(<2 x s32>) = G_FREEZE %0
341 $vgpr0_vgpr1 = COPY %1(<2 x s32>)
345 name: test_freeze_v3s32
350 liveins: $vgpr0_vgpr1_vgpr2
351 ; CHECK-LABEL: name: test_freeze_v3s32
352 ; CHECK: liveins: $vgpr0_vgpr1_vgpr2
354 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(<3 x s32>) = COPY $vgpr0_vgpr1_vgpr2
355 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:vgpr(<3 x s32>) = G_FREEZE [[COPY]]
356 ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2 = COPY [[FREEZE]](<3 x s32>)
357 %0:_(<3 x s32>) = COPY $vgpr0_vgpr1_vgpr2
358 %1:_(<3 x s32>) = G_FREEZE %0
359 $vgpr0_vgpr1_vgpr2 = COPY %1(<3 x s32>)
363 name: test_freeze_v4s32
368 liveins: $vgpr0_vgpr1_vgpr2_vgpr3
369 ; CHECK-LABEL: name: test_freeze_v4s32
370 ; CHECK: liveins: $vgpr0_vgpr1_vgpr2_vgpr3
372 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(<4 x s32>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3
373 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:vgpr(<4 x s32>) = G_FREEZE [[COPY]]
374 ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[FREEZE]](<4 x s32>)
375 %0:_(<4 x s32>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3
376 %1:_(<4 x s32>) = G_FREEZE %0
377 $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %1(<4 x s32>)
381 name: test_freeze_v5s32
386 liveins: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4
387 ; CHECK-LABEL: name: test_freeze_v5s32
388 ; CHECK: liveins: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4
390 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(<5 x s32>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4
391 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:vgpr(<5 x s32>) = G_FREEZE [[COPY]]
392 ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4 = COPY [[FREEZE]](<5 x s32>)
393 %0:_(<5 x s32>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4
394 %1:_(<5 x s32>) = G_FREEZE %0
395 $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4 = COPY %1(<5 x s32>)
399 name: test_freeze_v8s32
404 liveins: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7
405 ; CHECK-LABEL: name: test_freeze_v8s32
406 ; CHECK: liveins: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7
408 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(<8 x s32>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7
409 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:vgpr(<8 x s32>) = G_FREEZE [[COPY]]
410 ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = COPY [[FREEZE]](<8 x s32>)
411 %0:_(<8 x s32>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7
412 %1:_(<8 x s32>) = G_FREEZE %0
413 $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = COPY %1(<8 x s32>)
417 name: test_freeze_v16s32
422 liveins: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15
423 ; CHECK-LABEL: name: test_freeze_v16s32
424 ; CHECK: liveins: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15
426 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(<16 x s32>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15
427 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:vgpr(<16 x s32>) = G_FREEZE [[COPY]]
428 ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = COPY [[FREEZE]](<16 x s32>)
429 %0:_(<16 x s32>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15
430 %1:_(<16 x s32>) = G_FREEZE %0
431 $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = COPY %1(<16 x s32>)
435 name: test_freeze_v2s16
441 ; CHECK-LABEL: name: test_freeze_v2s16
442 ; CHECK: liveins: $vgpr0
444 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(<2 x s16>) = COPY $vgpr0
445 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:vgpr(<2 x s16>) = G_FREEZE [[COPY]]
446 ; CHECK-NEXT: $vgpr0 = COPY [[FREEZE]](<2 x s16>)
447 %0:_(<2 x s16>) = COPY $vgpr0
448 %1:_(<2 x s16>) = G_FREEZE %0
449 $vgpr0 = COPY %1(<2 x s16>)
453 name: test_freeze_v4s16
458 liveins: $vgpr0_vgpr1
459 ; CHECK-LABEL: name: test_freeze_v4s16
460 ; CHECK: liveins: $vgpr0_vgpr1
462 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(<4 x s16>) = COPY $vgpr0_vgpr1
463 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:vgpr(<4 x s16>) = G_FREEZE [[COPY]]
464 ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[FREEZE]](<4 x s16>)
465 %0:_(<4 x s16>) = COPY $vgpr0_vgpr1
466 %1:_(<4 x s16>) = G_FREEZE %0
467 $vgpr0_vgpr1 = COPY %1(<4 x s16>)
471 name: test_freeze_v6s16
476 liveins: $vgpr0_vgpr1_vgpr2
477 ; CHECK-LABEL: name: test_freeze_v6s16
478 ; CHECK: liveins: $vgpr0_vgpr1_vgpr2
480 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(<6 x s16>) = COPY $vgpr0_vgpr1_vgpr2
481 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:vgpr(<6 x s16>) = G_FREEZE [[COPY]]
482 ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2 = COPY [[FREEZE]](<6 x s16>)
483 %0:_(<6 x s16>) = COPY $vgpr0_vgpr1_vgpr2
484 %1:_(<6 x s16>) = G_FREEZE %0
485 $vgpr0_vgpr1_vgpr2 = COPY %1(<6 x s16>)
489 name: test_freeze_v8s16
494 liveins: $vgpr0_vgpr1_vgpr2_vgpr3
495 ; CHECK-LABEL: name: test_freeze_v8s16
496 ; CHECK: liveins: $vgpr0_vgpr1_vgpr2_vgpr3
498 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(<8 x s16>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3
499 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:vgpr(<8 x s16>) = G_FREEZE [[COPY]]
500 ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[FREEZE]](<8 x s16>)
501 %0:_(<8 x s16>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3
502 %1:_(<8 x s16>) = G_FREEZE %0
503 $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %1(<8 x s16>)
507 name: test_freeze_v2s64
512 liveins: $vgpr0_vgpr1_vgpr2_vgpr3
513 ; CHECK-LABEL: name: test_freeze_v2s64
514 ; CHECK: liveins: $vgpr0_vgpr1_vgpr2_vgpr3
516 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(<2 x s64>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3
517 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:vgpr(<2 x s64>) = G_FREEZE [[COPY]]
518 ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[FREEZE]](<2 x s64>)
519 %0:_(<2 x s64>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3
520 %1:_(<2 x s64>) = G_FREEZE %0
521 $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %1(<2 x s64>)
530 liveins: $vgpr0_vgpr1
531 ; CHECK-LABEL: name: test_freeze_p0
532 ; CHECK: liveins: $vgpr0_vgpr1
534 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(p0) = COPY $vgpr0_vgpr1
535 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:vgpr(p0) = G_FREEZE [[COPY]]
536 ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[FREEZE]](p0)
537 %0:_(p0) = COPY $vgpr0_vgpr1
538 %1:_(p0) = G_FREEZE %0
539 $vgpr0_vgpr1 = COPY %1(p0)
548 liveins: $vgpr0_vgpr1
549 ; CHECK-LABEL: name: test_freeze_p1
550 ; CHECK: liveins: $vgpr0_vgpr1
552 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(p1) = COPY $vgpr0_vgpr1
553 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:vgpr(p1) = G_FREEZE [[COPY]]
554 ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[FREEZE]](p1)
555 %0:_(p1) = COPY $vgpr0_vgpr1
556 %1:_(p1) = G_FREEZE %0
557 $vgpr0_vgpr1 = COPY %1(p1)
567 ; CHECK-LABEL: name: test_freeze_p2
568 ; CHECK: liveins: $vgpr0
570 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(p2) = COPY $vgpr0
571 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:vgpr(p2) = G_FREEZE [[COPY]]
572 ; CHECK-NEXT: $vgpr0 = COPY [[FREEZE]](p2)
573 %0:_(p2) = COPY $vgpr0
574 %1:_(p2) = G_FREEZE %0
585 ; CHECK-LABEL: name: test_freeze_p3
586 ; CHECK: liveins: $vgpr0
588 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(p3) = COPY $vgpr0
589 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:vgpr(p3) = G_FREEZE [[COPY]]
590 ; CHECK-NEXT: $vgpr0 = COPY [[FREEZE]](p3)
591 %0:_(p3) = COPY $vgpr0
592 %1:_(p3) = G_FREEZE %0
602 liveins: $vgpr0_vgpr1
603 ; CHECK-LABEL: name: test_freeze_p4
604 ; CHECK: liveins: $vgpr0_vgpr1
606 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(p4) = COPY $vgpr0_vgpr1
607 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:vgpr(p4) = G_FREEZE [[COPY]]
608 ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[FREEZE]](p4)
609 %0:_(p4) = COPY $vgpr0_vgpr1
610 %1:_(p4) = G_FREEZE %0
611 $vgpr0_vgpr1 = COPY %1(p4)
621 ; CHECK-LABEL: name: test_freeze_p5
622 ; CHECK: liveins: $vgpr0
624 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(p5) = COPY $vgpr0
625 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:vgpr(p5) = G_FREEZE [[COPY]]
626 ; CHECK-NEXT: $vgpr0 = COPY [[FREEZE]](p5)
627 %0:_(p5) = COPY $vgpr0
628 %1:_(p5) = G_FREEZE %0
633 name: test_freeze_p999
638 liveins: $vgpr0_vgpr1
639 ; CHECK-LABEL: name: test_freeze_p999
640 ; CHECK: liveins: $vgpr0_vgpr1
642 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(p999) = COPY $vgpr0_vgpr1
643 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:vgpr(p999) = G_FREEZE [[COPY]]
644 ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[FREEZE]](p999)
645 %0:_(p999) = COPY $vgpr0_vgpr1
646 %1:_(p999) = G_FREEZE %0
647 $vgpr0_vgpr1 = COPY %1(p999)