|
4 | 4 | # RUN: llc -mtriple=amdgcn -mcpu=gfx942 -run-pass postrapseudos -verify-machineinstrs %s -o - | FileCheck -check-prefix=GFX942 %s |
5 | 5 | # RUN: llc -mtriple=amdgcn -mcpu=gfx1010 -run-pass postrapseudos -verify-machineinstrs %s -o - | FileCheck -check-prefix=GFX10 %s |
6 | 6 | # RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -run-pass postrapseudos -verify-machineinstrs %s -o - | FileCheck -check-prefix=GFX10 %s |
| 7 | +# RUN: llc -mtriple=amdgcn -mcpu=gfx1250 -run-pass postrapseudos %s -o - | FileCheck -check-prefix=GFX1250 %s |
7 | 8 |
|
8 | 9 | --- |
9 | 10 | name: copy_v64_to_v64 |
@@ -32,6 +33,10 @@ body: | |
32 | 33 | ; GFX10-NEXT: {{ $}} |
33 | 34 | ; GFX10-NEXT: $vgpr0 = V_MOV_B32_e32 $vgpr2, implicit $exec, implicit-def $vgpr0_vgpr1, implicit $vgpr2_vgpr3 |
34 | 35 | ; GFX10-NEXT: $vgpr1 = V_MOV_B32_e32 $vgpr3, implicit $exec, implicit killed $vgpr2_vgpr3, implicit $exec |
| 36 | + ; GFX1250-LABEL: name: copy_v64_to_v64 |
| 37 | + ; GFX1250: liveins: $vgpr2_vgpr3 |
| 38 | + ; GFX1250-NEXT: {{ $}} |
| 39 | + ; GFX1250-NEXT: $vgpr0_vgpr1 = V_MOV_B64_e32 killed $vgpr2_vgpr3, implicit $exec, implicit $exec |
35 | 40 | $vgpr0_vgpr1 = COPY killed $vgpr2_vgpr3, implicit $exec |
36 | 41 | ... |
37 | 42 |
|
@@ -62,6 +67,10 @@ body: | |
62 | 67 | ; GFX10-NEXT: {{ $}} |
63 | 68 | ; GFX10-NEXT: $vgpr0 = V_MOV_B32_e32 $sgpr2, implicit $exec, implicit-def $vgpr0_vgpr1, implicit $sgpr2_sgpr3 |
64 | 69 | ; GFX10-NEXT: $vgpr1 = V_MOV_B32_e32 $sgpr3, implicit $exec, implicit killed $sgpr2_sgpr3, implicit $exec |
| 70 | + ; GFX1250-LABEL: name: copy_s64_to_v64 |
| 71 | + ; GFX1250: liveins: $sgpr2_sgpr3 |
| 72 | + ; GFX1250-NEXT: {{ $}} |
| 73 | + ; GFX1250-NEXT: $vgpr0_vgpr1 = V_MOV_B64_e32 killed $sgpr2_sgpr3, implicit $exec, implicit $exec |
65 | 74 | $vgpr0_vgpr1 = COPY killed $sgpr2_sgpr3, implicit $exec |
66 | 75 | ... |
67 | 76 |
|
@@ -94,6 +103,11 @@ body: | |
94 | 103 | ; GFX10-NEXT: {{ $}} |
95 | 104 | ; GFX10-NEXT: $vgpr0 = V_ACCVGPR_READ_B32_e64 $agpr2, implicit $exec, implicit-def $vgpr0_vgpr1, implicit $agpr2_agpr3 |
96 | 105 | ; GFX10-NEXT: $vgpr1 = V_ACCVGPR_READ_B32_e64 $agpr3, implicit $exec, implicit killed $agpr2_agpr3, implicit $exec |
| 106 | + ; GFX1250-LABEL: name: copy_a64_to_v64 |
| 107 | + ; GFX1250: liveins: $agpr2_agpr3 |
| 108 | + ; GFX1250-NEXT: {{ $}} |
| 109 | + ; GFX1250-NEXT: $vgpr0 = V_ACCVGPR_READ_B32_e64 $agpr2, implicit $exec, implicit-def $vgpr0_vgpr1, implicit $agpr2_agpr3 |
| 110 | + ; GFX1250-NEXT: $vgpr1 = V_ACCVGPR_READ_B32_e64 $agpr3, implicit $exec, implicit killed $agpr2_agpr3, implicit $exec |
97 | 111 | $vgpr0_vgpr1 = COPY killed $agpr2_agpr3, implicit $exec |
98 | 112 | ... |
99 | 113 |
|
@@ -130,6 +144,11 @@ body: | |
130 | 144 | ; GFX10-NEXT: $vgpr1 = V_MOV_B32_e32 $vgpr3, implicit $exec, implicit $vgpr2_vgpr3_vgpr4_vgpr5 |
131 | 145 | ; GFX10-NEXT: $vgpr2 = V_MOV_B32_e32 $vgpr4, implicit $exec, implicit $vgpr2_vgpr3_vgpr4_vgpr5 |
132 | 146 | ; GFX10-NEXT: $vgpr3 = V_MOV_B32_e32 $vgpr5, implicit $exec, implicit $vgpr2_vgpr3_vgpr4_vgpr5, implicit $exec |
| 147 | + ; GFX1250-LABEL: name: copy_v128_to_v128_fwd |
| 148 | + ; GFX1250: liveins: $vgpr2_vgpr3_vgpr4_vgpr5 |
| 149 | + ; GFX1250-NEXT: {{ $}} |
| 150 | + ; GFX1250-NEXT: $vgpr0_vgpr1 = V_MOV_B64_e32 $vgpr2_vgpr3, implicit $exec, implicit-def $vgpr0_vgpr1_vgpr2_vgpr3, implicit $vgpr2_vgpr3_vgpr4_vgpr5 |
| 151 | + ; GFX1250-NEXT: $vgpr2_vgpr3 = V_MOV_B64_e32 $vgpr4_vgpr5, implicit $exec, implicit $vgpr2_vgpr3_vgpr4_vgpr5, implicit $exec |
133 | 152 | $vgpr0_vgpr1_vgpr2_vgpr3 = COPY killed $vgpr2_vgpr3_vgpr4_vgpr5, implicit $exec |
134 | 153 | ... |
135 | 154 |
|
@@ -166,6 +185,11 @@ body: | |
166 | 185 | ; GFX10-NEXT: $vgpr4 = V_MOV_B32_e32 $vgpr2, implicit $exec, implicit $vgpr0_vgpr1_vgpr2_vgpr3 |
167 | 186 | ; GFX10-NEXT: $vgpr3 = V_MOV_B32_e32 $vgpr1, implicit $exec, implicit $vgpr0_vgpr1_vgpr2_vgpr3 |
168 | 187 | ; GFX10-NEXT: $vgpr2 = V_MOV_B32_e32 $vgpr0, implicit $exec, implicit $vgpr0_vgpr1_vgpr2_vgpr3, implicit $exec |
| 188 | + ; GFX1250-LABEL: name: copy_v128_to_v128_back |
| 189 | + ; GFX1250: liveins: $vgpr0_vgpr1_vgpr2_vgpr3 |
| 190 | + ; GFX1250-NEXT: {{ $}} |
| 191 | + ; GFX1250-NEXT: $vgpr4_vgpr5 = V_MOV_B64_e32 $vgpr2_vgpr3, implicit $exec, implicit-def $vgpr2_vgpr3_vgpr4_vgpr5, implicit $vgpr0_vgpr1_vgpr2_vgpr3 |
| 192 | + ; GFX1250-NEXT: $vgpr2_vgpr3 = V_MOV_B64_e32 $vgpr0_vgpr1, implicit $exec, implicit $vgpr0_vgpr1_vgpr2_vgpr3, implicit $exec |
169 | 193 | $vgpr2_vgpr3_vgpr4_vgpr5 = COPY killed $vgpr0_vgpr1_vgpr2_vgpr3, implicit $exec |
170 | 194 | ... |
171 | 195 |
|
@@ -202,6 +226,12 @@ body: | |
202 | 226 | ; GFX10-NEXT: $vgpr0 = V_MOV_B32_e32 $vgpr4, implicit $exec, implicit-def $vgpr0_vgpr1_vgpr2, implicit $vgpr4_vgpr5_vgpr6 |
203 | 227 | ; GFX10-NEXT: $vgpr1 = V_MOV_B32_e32 $vgpr5, implicit $exec, implicit $vgpr4_vgpr5_vgpr6 |
204 | 228 | ; GFX10-NEXT: $vgpr2 = V_MOV_B32_e32 $vgpr6, implicit $exec, implicit killed $vgpr4_vgpr5_vgpr6, implicit $exec |
| 229 | + ; GFX1250-LABEL: name: copy_v96_to_v96 |
| 230 | + ; GFX1250: liveins: $vgpr4_vgpr5_vgpr6 |
| 231 | + ; GFX1250-NEXT: {{ $}} |
| 232 | + ; GFX1250-NEXT: $vgpr0 = V_MOV_B32_e32 $vgpr4, implicit $exec, implicit-def $vgpr0_vgpr1_vgpr2, implicit $vgpr4_vgpr5_vgpr6 |
| 233 | + ; GFX1250-NEXT: $vgpr1 = V_MOV_B32_e32 $vgpr5, implicit $exec, implicit $vgpr4_vgpr5_vgpr6 |
| 234 | + ; GFX1250-NEXT: $vgpr2 = V_MOV_B32_e32 $vgpr6, implicit $exec, implicit killed $vgpr4_vgpr5_vgpr6, implicit $exec |
205 | 235 | $vgpr0_vgpr1_vgpr2 = COPY killed $vgpr4_vgpr5_vgpr6, implicit $exec |
206 | 236 | ... |
207 | 237 |
|
@@ -232,6 +262,10 @@ body: | |
232 | 262 | ; GFX10-NEXT: {{ $}} |
233 | 263 | ; GFX10-NEXT: $vgpr0 = V_MOV_B32_e32 $vgpr2, implicit $exec, implicit-def $vgpr0_vgpr1, implicit $vgpr2_vgpr3 |
234 | 264 | ; GFX10-NEXT: $vgpr1 = V_MOV_B32_e32 $vgpr3, implicit $exec, implicit killed $vgpr2_vgpr3, implicit $exec |
| 265 | + ; GFX1250-LABEL: name: copy_v64_to_v64_undef_sub0 |
| 266 | + ; GFX1250: liveins: $vgpr3 |
| 267 | + ; GFX1250-NEXT: {{ $}} |
| 268 | + ; GFX1250-NEXT: $vgpr0_vgpr1 = V_MOV_B64_e32 killed $vgpr2_vgpr3, implicit $exec, implicit $exec |
235 | 269 | $vgpr0_vgpr1 = COPY killed $vgpr2_vgpr3, implicit $exec |
236 | 270 | ... |
237 | 271 |
|
@@ -262,6 +296,10 @@ body: | |
262 | 296 | ; GFX10-NEXT: {{ $}} |
263 | 297 | ; GFX10-NEXT: $vgpr0 = V_MOV_B32_e32 $vgpr2, implicit $exec, implicit-def $vgpr0_vgpr1, implicit $vgpr2_vgpr3 |
264 | 298 | ; GFX10-NEXT: $vgpr1 = V_MOV_B32_e32 $vgpr3, implicit $exec, implicit killed $vgpr2_vgpr3, implicit $exec |
| 299 | + ; GFX1250-LABEL: name: copy_v64_to_v64_undef_sub1 |
| 300 | + ; GFX1250: liveins: $vgpr2 |
| 301 | + ; GFX1250-NEXT: {{ $}} |
| 302 | + ; GFX1250-NEXT: $vgpr0_vgpr1 = V_MOV_B64_e32 killed $vgpr2_vgpr3, implicit $exec, implicit $exec |
265 | 303 | $vgpr0_vgpr1 = COPY killed $vgpr2_vgpr3, implicit $exec |
266 | 304 | ... |
267 | 305 |
|
@@ -298,6 +336,11 @@ body: | |
298 | 336 | ; GFX10-NEXT: $vgpr1 = V_MOV_B32_e32 $sgpr5, implicit $exec, implicit $sgpr4_sgpr5_sgpr6_sgpr7 |
299 | 337 | ; GFX10-NEXT: $vgpr2 = V_MOV_B32_e32 $sgpr6, implicit $exec, implicit $sgpr4_sgpr5_sgpr6_sgpr7 |
300 | 338 | ; GFX10-NEXT: $vgpr3 = V_MOV_B32_e32 $sgpr7, implicit $exec, implicit killed $sgpr4_sgpr5_sgpr6_sgpr7 |
| 339 | + ; GFX1250-LABEL: name: copy_s128_to_v128_killed |
| 340 | + ; GFX1250: liveins: $sgpr4_sgpr5_sgpr6_sgpr7 |
| 341 | + ; GFX1250-NEXT: {{ $}} |
| 342 | + ; GFX1250-NEXT: $vgpr0_vgpr1 = V_MOV_B64_e32 $sgpr4_sgpr5, implicit $exec, implicit-def $vgpr0_vgpr1_vgpr2_vgpr3, implicit $sgpr4_sgpr5_sgpr6_sgpr7 |
| 343 | + ; GFX1250-NEXT: $vgpr2_vgpr3 = V_MOV_B64_e32 $sgpr6_sgpr7, implicit $exec, implicit killed $sgpr4_sgpr5_sgpr6_sgpr7 |
301 | 344 | $vgpr0_vgpr1_vgpr2_vgpr3 = COPY killed $sgpr4_sgpr5_sgpr6_sgpr7 |
302 | 345 | ... |
303 | 346 |
|
@@ -330,6 +373,11 @@ body: | |
330 | 373 | ; GFX10-NEXT: {{ $}} |
331 | 374 | ; GFX10-NEXT: $vgpr1 = V_MOV_B32_e32 $vgpr2, implicit $exec, implicit-def $vgpr1_vgpr2, implicit $vgpr2_vgpr3 |
332 | 375 | ; GFX10-NEXT: $vgpr2 = V_MOV_B32_e32 $vgpr3, implicit $exec, implicit $vgpr2_vgpr3, implicit $exec |
| 376 | + ; GFX1250-LABEL: name: copy_v64_to_v64_unaligned |
| 377 | + ; GFX1250: liveins: $vgpr2_vgpr3 |
| 378 | + ; GFX1250-NEXT: {{ $}} |
| 379 | + ; GFX1250-NEXT: $vgpr1 = V_MOV_B32_e32 $vgpr2, implicit $exec, implicit-def $vgpr1_vgpr2, implicit $vgpr2_vgpr3 |
| 380 | + ; GFX1250-NEXT: $vgpr2 = V_MOV_B32_e32 $vgpr3, implicit $exec, implicit $vgpr2_vgpr3, implicit $exec |
333 | 381 | $vgpr1_vgpr2 = COPY killed $vgpr2_vgpr3, implicit $exec |
334 | 382 | ... |
335 | 383 |
|
@@ -362,6 +410,11 @@ body: | |
362 | 410 | ; GFX10-NEXT: {{ $}} |
363 | 411 | ; GFX10-NEXT: $vgpr0 = V_MOV_B32_e32 $vgpr3, implicit $exec, implicit-def $vgpr0_vgpr1, implicit $vgpr3_vgpr4 |
364 | 412 | ; GFX10-NEXT: $vgpr1 = V_MOV_B32_e32 $vgpr4, implicit $exec, implicit killed $vgpr3_vgpr4, implicit $exec |
| 413 | + ; GFX1250-LABEL: name: copy_v64_unaligned_to_v64 |
| 414 | + ; GFX1250: liveins: $vgpr3_vgpr4 |
| 415 | + ; GFX1250-NEXT: {{ $}} |
| 416 | + ; GFX1250-NEXT: $vgpr0 = V_MOV_B32_e32 $vgpr3, implicit $exec, implicit-def $vgpr0_vgpr1, implicit $vgpr3_vgpr4 |
| 417 | + ; GFX1250-NEXT: $vgpr1 = V_MOV_B32_e32 $vgpr4, implicit $exec, implicit killed $vgpr3_vgpr4, implicit $exec |
365 | 418 | $vgpr0_vgpr1 = COPY killed $vgpr3_vgpr4, implicit $exec |
366 | 419 | ... |
367 | 420 |
|
@@ -402,6 +455,13 @@ body: | |
402 | 455 | ; GFX10-NEXT: $vgpr2 = V_MOV_B32_e32 $vgpr9, implicit $exec, implicit $vgpr8_vgpr9_vgpr10_vgpr11 |
403 | 456 | ; GFX10-NEXT: $vgpr3 = V_MOV_B32_e32 $vgpr10, implicit $exec, implicit $vgpr8_vgpr9_vgpr10_vgpr11 |
404 | 457 | ; GFX10-NEXT: $vgpr4 = V_MOV_B32_e32 $vgpr11, implicit $exec, implicit killed $vgpr8_vgpr9_vgpr10_vgpr11, implicit $exec |
| 458 | + ; GFX1250-LABEL: name: copy_v128_to_v128_unaligned |
| 459 | + ; GFX1250: liveins: $vgpr8_vgpr9_vgpr10_vgpr11 |
| 460 | + ; GFX1250-NEXT: {{ $}} |
| 461 | + ; GFX1250-NEXT: $vgpr1 = V_MOV_B32_e32 $vgpr8, implicit $exec, implicit-def $vgpr1_vgpr2_vgpr3_vgpr4, implicit $vgpr8_vgpr9_vgpr10_vgpr11 |
| 462 | + ; GFX1250-NEXT: $vgpr2 = V_MOV_B32_e32 $vgpr9, implicit $exec, implicit $vgpr8_vgpr9_vgpr10_vgpr11 |
| 463 | + ; GFX1250-NEXT: $vgpr3 = V_MOV_B32_e32 $vgpr10, implicit $exec, implicit $vgpr8_vgpr9_vgpr10_vgpr11 |
| 464 | + ; GFX1250-NEXT: $vgpr4 = V_MOV_B32_e32 $vgpr11, implicit $exec, implicit killed $vgpr8_vgpr9_vgpr10_vgpr11, implicit $exec |
405 | 465 | $vgpr1_vgpr2_vgpr3_vgpr4 = COPY killed $vgpr8_vgpr9_vgpr10_vgpr11, implicit $exec |
406 | 466 | ... |
407 | 467 |
|
@@ -442,6 +502,13 @@ body: | |
442 | 502 | ; GFX10-NEXT: $vgpr1 = V_MOV_B32_e32 $vgpr8, implicit $exec, implicit $vgpr7_vgpr8_vgpr9_vgpr10 |
443 | 503 | ; GFX10-NEXT: $vgpr2 = V_MOV_B32_e32 $vgpr9, implicit $exec, implicit $vgpr7_vgpr8_vgpr9_vgpr10 |
444 | 504 | ; GFX10-NEXT: $vgpr3 = V_MOV_B32_e32 $vgpr10, implicit $exec, implicit killed $vgpr7_vgpr8_vgpr9_vgpr10, implicit $exec |
| 505 | + ; GFX1250-LABEL: name: copy_v128_unaligned_to_v128 |
| 506 | + ; GFX1250: liveins: $vgpr7_vgpr8_vgpr9_vgpr10 |
| 507 | + ; GFX1250-NEXT: {{ $}} |
| 508 | + ; GFX1250-NEXT: $vgpr0 = V_MOV_B32_e32 $vgpr7, implicit $exec, implicit-def $vgpr0_vgpr1_vgpr2_vgpr3, implicit $vgpr7_vgpr8_vgpr9_vgpr10 |
| 509 | + ; GFX1250-NEXT: $vgpr1 = V_MOV_B32_e32 $vgpr8, implicit $exec, implicit $vgpr7_vgpr8_vgpr9_vgpr10 |
| 510 | + ; GFX1250-NEXT: $vgpr2 = V_MOV_B32_e32 $vgpr9, implicit $exec, implicit $vgpr7_vgpr8_vgpr9_vgpr10 |
| 511 | + ; GFX1250-NEXT: $vgpr3 = V_MOV_B32_e32 $vgpr10, implicit $exec, implicit killed $vgpr7_vgpr8_vgpr9_vgpr10, implicit $exec |
445 | 512 | $vgpr0_vgpr1_vgpr2_vgpr3 = COPY killed $vgpr7_vgpr8_vgpr9_vgpr10, implicit $exec |
446 | 513 | ... |
447 | 514 |
|
@@ -474,6 +541,11 @@ body: | |
474 | 541 | ; GFX10-NEXT: {{ $}} |
475 | 542 | ; GFX10-NEXT: $vgpr1 = V_MOV_B32_e32 $sgpr8, implicit $exec, implicit-def $vgpr1_vgpr2, implicit $sgpr8_sgpr9 |
476 | 543 | ; GFX10-NEXT: $vgpr2 = V_MOV_B32_e32 $sgpr9, implicit $exec, implicit killed $sgpr8_sgpr9, implicit $exec |
| 544 | + ; GFX1250-LABEL: name: copy_s64_to_v64_unaligned |
| 545 | + ; GFX1250: liveins: $sgpr8_sgpr9 |
| 546 | + ; GFX1250-NEXT: {{ $}} |
| 547 | + ; GFX1250-NEXT: $vgpr1 = V_MOV_B32_e32 $sgpr8, implicit $exec, implicit-def $vgpr1_vgpr2, implicit $sgpr8_sgpr9 |
| 548 | + ; GFX1250-NEXT: $vgpr2 = V_MOV_B32_e32 $sgpr9, implicit $exec, implicit killed $sgpr8_sgpr9, implicit $exec |
477 | 549 | $vgpr1_vgpr2 = COPY killed $sgpr8_sgpr9, implicit $exec |
478 | 550 | ... |
479 | 551 |
|
@@ -514,6 +586,13 @@ body: | |
514 | 586 | ; GFX10-NEXT: $vgpr2 = V_MOV_B32_e32 $sgpr9, implicit $exec, implicit $sgpr8_sgpr9_sgpr10_sgpr11 |
515 | 587 | ; GFX10-NEXT: $vgpr3 = V_MOV_B32_e32 $sgpr10, implicit $exec, implicit $sgpr8_sgpr9_sgpr10_sgpr11 |
516 | 588 | ; GFX10-NEXT: $vgpr4 = V_MOV_B32_e32 $sgpr11, implicit $exec, implicit killed $sgpr8_sgpr9_sgpr10_sgpr11, implicit $exec |
| 589 | + ; GFX1250-LABEL: name: copy_s128_to_v128_unaligned |
| 590 | + ; GFX1250: liveins: $sgpr8_sgpr9_sgpr10_sgpr11 |
| 591 | + ; GFX1250-NEXT: {{ $}} |
| 592 | + ; GFX1250-NEXT: $vgpr1 = V_MOV_B32_e32 $sgpr8, implicit $exec, implicit-def $vgpr1_vgpr2_vgpr3_vgpr4, implicit $sgpr8_sgpr9_sgpr10_sgpr11 |
| 593 | + ; GFX1250-NEXT: $vgpr2 = V_MOV_B32_e32 $sgpr9, implicit $exec, implicit $sgpr8_sgpr9_sgpr10_sgpr11 |
| 594 | + ; GFX1250-NEXT: $vgpr3 = V_MOV_B32_e32 $sgpr10, implicit $exec, implicit $sgpr8_sgpr9_sgpr10_sgpr11 |
| 595 | + ; GFX1250-NEXT: $vgpr4 = V_MOV_B32_e32 $sgpr11, implicit $exec, implicit killed $sgpr8_sgpr9_sgpr10_sgpr11, implicit $exec |
517 | 596 | $vgpr1_vgpr2_vgpr3_vgpr4 = COPY killed $sgpr8_sgpr9_sgpr10_sgpr11, implicit $exec |
518 | 597 | ... |
519 | 598 |
|
@@ -550,6 +629,12 @@ body: | |
550 | 629 | ; GFX10-NEXT: $vgpr1 = V_MOV_B32_e32 $vgpr8, implicit $exec, implicit-def $vgpr1_vgpr2_vgpr3, implicit $vgpr8_vgpr9_vgpr10 |
551 | 630 | ; GFX10-NEXT: $vgpr2 = V_MOV_B32_e32 $vgpr9, implicit $exec, implicit $vgpr8_vgpr9_vgpr10 |
552 | 631 | ; GFX10-NEXT: $vgpr3 = V_MOV_B32_e32 $vgpr10, implicit $exec, implicit killed $vgpr8_vgpr9_vgpr10, implicit $exec |
| 632 | + ; GFX1250-LABEL: name: copy_v96_to_v96_unaligned |
| 633 | + ; GFX1250: liveins: $vgpr8_vgpr9_vgpr10 |
| 634 | + ; GFX1250-NEXT: {{ $}} |
| 635 | + ; GFX1250-NEXT: $vgpr1 = V_MOV_B32_e32 $vgpr8, implicit $exec, implicit-def $vgpr1_vgpr2_vgpr3, implicit $vgpr8_vgpr9_vgpr10 |
| 636 | + ; GFX1250-NEXT: $vgpr2 = V_MOV_B32_e32 $vgpr9, implicit $exec, implicit $vgpr8_vgpr9_vgpr10 |
| 637 | + ; GFX1250-NEXT: $vgpr3 = V_MOV_B32_e32 $vgpr10, implicit $exec, implicit killed $vgpr8_vgpr9_vgpr10, implicit $exec |
553 | 638 | $vgpr1_vgpr2_vgpr3 = COPY killed $vgpr8_vgpr9_vgpr10, implicit $exec |
554 | 639 | ... |
555 | 640 |
|
@@ -586,6 +671,12 @@ body: | |
586 | 671 | ; GFX10-NEXT: $vgpr0 = V_MOV_B32_e32 $vgpr7, implicit $exec, implicit-def $vgpr0_vgpr1_vgpr2, implicit $vgpr7_vgpr8_vgpr9 |
587 | 672 | ; GFX10-NEXT: $vgpr1 = V_MOV_B32_e32 $vgpr8, implicit $exec, implicit $vgpr7_vgpr8_vgpr9 |
588 | 673 | ; GFX10-NEXT: $vgpr2 = V_MOV_B32_e32 $vgpr9, implicit $exec, implicit killed $vgpr7_vgpr8_vgpr9, implicit $exec |
| 674 | + ; GFX1250-LABEL: name: copy_v96_unaligned_to_v96 |
| 675 | + ; GFX1250: liveins: $vgpr7_vgpr8_vgpr9 |
| 676 | + ; GFX1250-NEXT: {{ $}} |
| 677 | + ; GFX1250-NEXT: $vgpr0 = V_MOV_B32_e32 $vgpr7, implicit $exec, implicit-def $vgpr0_vgpr1_vgpr2, implicit $vgpr7_vgpr8_vgpr9 |
| 678 | + ; GFX1250-NEXT: $vgpr1 = V_MOV_B32_e32 $vgpr8, implicit $exec, implicit $vgpr7_vgpr8_vgpr9 |
| 679 | + ; GFX1250-NEXT: $vgpr2 = V_MOV_B32_e32 $vgpr9, implicit $exec, implicit killed $vgpr7_vgpr8_vgpr9, implicit $exec |
589 | 680 | $vgpr0_vgpr1_vgpr2 = COPY killed $vgpr7_vgpr8_vgpr9, implicit $exec |
590 | 681 | ... |
591 | 682 |
|
@@ -622,6 +713,12 @@ body: | |
622 | 713 | ; GFX10-NEXT: $vgpr0 = V_MOV_B32_e32 $sgpr0, implicit $exec, implicit-def $vgpr0_vgpr1_vgpr2, implicit $sgpr0_sgpr1_sgpr2 |
623 | 714 | ; GFX10-NEXT: $vgpr1 = V_MOV_B32_e32 $sgpr1, implicit $exec, implicit $sgpr0_sgpr1_sgpr2 |
624 | 715 | ; GFX10-NEXT: $vgpr2 = V_MOV_B32_e32 $sgpr2, implicit $exec, implicit killed $sgpr0_sgpr1_sgpr2, implicit $exec |
| 716 | + ; GFX1250-LABEL: name: copy_s96_to_v96 |
| 717 | + ; GFX1250: liveins: $sgpr0_sgpr1_sgpr2 |
| 718 | + ; GFX1250-NEXT: {{ $}} |
| 719 | + ; GFX1250-NEXT: $vgpr0 = V_MOV_B32_e32 $sgpr0, implicit $exec, implicit-def $vgpr0_vgpr1_vgpr2, implicit $sgpr0_sgpr1_sgpr2 |
| 720 | + ; GFX1250-NEXT: $vgpr1 = V_MOV_B32_e32 $sgpr1, implicit $exec, implicit $sgpr0_sgpr1_sgpr2 |
| 721 | + ; GFX1250-NEXT: $vgpr2 = V_MOV_B32_e32 $sgpr2, implicit $exec, implicit killed $sgpr0_sgpr1_sgpr2, implicit $exec |
625 | 722 | $vgpr0_vgpr1_vgpr2 = COPY killed $sgpr0_sgpr1_sgpr2, implicit $exec |
626 | 723 | ... |
627 | 724 |
|
@@ -658,5 +755,11 @@ body: | |
658 | 755 | ; GFX10-NEXT: $vgpr3 = V_MOV_B32_e32 $sgpr2, implicit $exec, implicit-def $vgpr1_vgpr2_vgpr3, implicit $sgpr0_sgpr1_sgpr2 |
659 | 756 | ; GFX10-NEXT: $vgpr2 = V_MOV_B32_e32 $sgpr1, implicit $exec, implicit $sgpr0_sgpr1_sgpr2 |
660 | 757 | ; GFX10-NEXT: $vgpr1 = V_MOV_B32_e32 $sgpr0, implicit $exec, implicit killed $sgpr0_sgpr1_sgpr2, implicit $exec |
| 758 | + ; GFX1250-LABEL: name: copy_s96_to_v96_unaligned |
| 759 | + ; GFX1250: liveins: $sgpr0_sgpr1_sgpr2 |
| 760 | + ; GFX1250-NEXT: {{ $}} |
| 761 | + ; GFX1250-NEXT: $vgpr3 = V_MOV_B32_e32 $sgpr2, implicit $exec, implicit-def $vgpr1_vgpr2_vgpr3, implicit $sgpr0_sgpr1_sgpr2 |
| 762 | + ; GFX1250-NEXT: $vgpr2 = V_MOV_B32_e32 $sgpr1, implicit $exec, implicit $sgpr0_sgpr1_sgpr2 |
| 763 | + ; GFX1250-NEXT: $vgpr1 = V_MOV_B32_e32 $sgpr0, implicit $exec, implicit killed $sgpr0_sgpr1_sgpr2, implicit $exec |
661 | 764 | $vgpr1_vgpr2_vgpr3 = COPY killed $sgpr0_sgpr1_sgpr2, implicit $exec |
662 | 765 | ... |
0 commit comments