|
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