|
6 | 6 | define amdgpu_kernel void @a2_to_v2() #0 { ret void }
|
7 | 7 | define amdgpu_kernel void @a3_to_v3() #0 { ret void }
|
8 | 8 | define amdgpu_kernel void @a4_to_v4() #0 { ret void }
|
| 9 | + define amdgpu_kernel void @a8_to_v8() #0 { ret void } |
9 | 10 | define amdgpu_kernel void @a16_to_v16() #0 { ret void }
|
10 | 11 |
|
11 | 12 | define amdgpu_kernel void @v_to_a() #0 { ret void }
|
|
21 | 22 | define amdgpu_kernel void @s4_to_a4() #0 { ret void }
|
22 | 23 | define amdgpu_kernel void @s6_to_a6() #0 { ret void }
|
23 | 24 | define amdgpu_kernel void @s8_to_a8() #0 { ret void }
|
| 25 | + define amdgpu_kernel void @s16_to_a16() #0 { ret void } |
24 | 26 |
|
25 | 27 | define amdgpu_kernel void @a_to_a() #0 { ret void }
|
26 | 28 | define amdgpu_kernel void @a2_to_a2() #0 { ret void }
|
27 | 29 | define amdgpu_kernel void @a3_to_a3() #0 { ret void }
|
28 | 30 | define amdgpu_kernel void @a4_to_a4() #0 { ret void }
|
29 | 31 | define amdgpu_kernel void @a8_to_a8() #0 { ret void }
|
| 32 | + define amdgpu_kernel void @a16_to_a16() #0 { ret void } |
30 | 33 |
|
31 | 34 | define amdgpu_kernel void @a_to_a_spill() #0 { ret void }
|
32 | 35 | attributes #0 = { "amdgpu-flat-work-group-size"="1,256" }
|
@@ -96,6 +99,28 @@ body: |
|
96 | 99 | S_ENDPGM 0, implicit $vgpr0_vgpr1_vgpr2_vgpr3
|
97 | 100 | ...
|
98 | 101 |
|
| 102 | +--- |
| 103 | +name: a8_to_v8 |
| 104 | +tracksRegLiveness: true |
| 105 | +body: | |
| 106 | + bb.0: |
| 107 | + liveins: $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7 |
| 108 | +
|
| 109 | + ; GCN-LABEL: name: a8_to_v8 |
| 110 | + ; GCN: liveins: $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7 |
| 111 | + ; GCN: $vgpr0 = V_ACCVGPR_READ_B32 $agpr0, implicit $exec, implicit-def $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7, implicit $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7 |
| 112 | + ; GCN: $vgpr1 = V_ACCVGPR_READ_B32 $agpr1, implicit $exec, implicit $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7 |
| 113 | + ; GCN: $vgpr2 = V_ACCVGPR_READ_B32 $agpr2, implicit $exec, implicit $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7 |
| 114 | + ; GCN: $vgpr3 = V_ACCVGPR_READ_B32 $agpr3, implicit $exec, implicit $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7 |
| 115 | + ; GCN: $vgpr4 = V_ACCVGPR_READ_B32 $agpr4, implicit $exec, implicit $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7 |
| 116 | + ; GCN: $vgpr5 = V_ACCVGPR_READ_B32 $agpr5, implicit $exec, implicit $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7 |
| 117 | + ; GCN: $vgpr6 = V_ACCVGPR_READ_B32 $agpr6, implicit $exec, implicit $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7 |
| 118 | + ; GCN: $vgpr7 = V_ACCVGPR_READ_B32 $agpr7, implicit $exec, implicit killed $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7, implicit $exec |
| 119 | + ; GCN: S_ENDPGM 0, implicit $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 |
| 120 | + $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = COPY killed $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7, implicit $exec |
| 121 | + S_ENDPGM 0, implicit $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 |
| 122 | +... |
| 123 | + |
99 | 124 | ---
|
100 | 125 | name: a16_to_v16
|
101 | 126 | tracksRegLiveness: true
|
@@ -363,6 +388,51 @@ body: |
|
363 | 388 | S_ENDPGM 0, implicit $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7
|
364 | 389 | ...
|
365 | 390 |
|
| 391 | +--- |
| 392 | +name: s16_to_a16 |
| 393 | +tracksRegLiveness: true |
| 394 | +body: | |
| 395 | + bb.0: |
| 396 | + liveins: $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7_sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15 |
| 397 | + ; GCN-LABEL: name: s16_to_a16 |
| 398 | + ; GCN: liveins: $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7_sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15 |
| 399 | + ; GCN: $vgpr0 = V_MOV_B32_e32 killed $sgpr0, implicit $exec |
| 400 | + ; GCN: $agpr0 = V_ACCVGPR_WRITE_B32 killed $vgpr0, implicit $exec |
| 401 | + ; GCN: $vgpr1 = V_MOV_B32_e32 killed $sgpr1, implicit $exec |
| 402 | + ; GCN: $agpr1 = V_ACCVGPR_WRITE_B32 killed $vgpr1, implicit $exec |
| 403 | + ; GCN: $vgpr2 = V_MOV_B32_e32 killed $sgpr2, implicit $exec |
| 404 | + ; GCN: $agpr2 = V_ACCVGPR_WRITE_B32 killed $vgpr2, implicit $exec |
| 405 | + ; GCN: $vgpr0 = V_MOV_B32_e32 killed $sgpr3, implicit $exec |
| 406 | + ; GCN: $agpr3 = V_ACCVGPR_WRITE_B32 killed $vgpr0, implicit $exec |
| 407 | + ; GCN: $vgpr1 = V_MOV_B32_e32 killed $sgpr4, implicit $exec |
| 408 | + ; GCN: $agpr4 = V_ACCVGPR_WRITE_B32 killed $vgpr1, implicit $exec |
| 409 | + ; GCN: $vgpr2 = V_MOV_B32_e32 killed $sgpr5, implicit $exec |
| 410 | + ; GCN: $agpr5 = V_ACCVGPR_WRITE_B32 killed $vgpr2, implicit $exec |
| 411 | + ; GCN: $vgpr0 = V_MOV_B32_e32 killed $sgpr6, implicit $exec |
| 412 | + ; GCN: $agpr6 = V_ACCVGPR_WRITE_B32 killed $vgpr0, implicit $exec |
| 413 | + ; GCN: $vgpr1 = V_MOV_B32_e32 killed $sgpr7, implicit $exec |
| 414 | + ; GCN: $agpr7 = V_ACCVGPR_WRITE_B32 killed $vgpr1, implicit $exec |
| 415 | + ; GCN: $vgpr2 = V_MOV_B32_e32 killed $sgpr8, implicit $exec |
| 416 | + ; GCN: $agpr8 = V_ACCVGPR_WRITE_B32 killed $vgpr2, implicit $exec |
| 417 | + ; GCN: $vgpr0 = V_MOV_B32_e32 killed $sgpr9, implicit $exec |
| 418 | + ; GCN: $agpr9 = V_ACCVGPR_WRITE_B32 killed $vgpr0, implicit $exec |
| 419 | + ; GCN: $vgpr1 = V_MOV_B32_e32 killed $sgpr10, implicit $exec |
| 420 | + ; GCN: $agpr10 = V_ACCVGPR_WRITE_B32 killed $vgpr1, implicit $exec |
| 421 | + ; GCN: $vgpr2 = V_MOV_B32_e32 killed $sgpr11, implicit $exec |
| 422 | + ; GCN: $agpr11 = V_ACCVGPR_WRITE_B32 killed $vgpr2, implicit $exec |
| 423 | + ; GCN: $vgpr0 = V_MOV_B32_e32 killed $sgpr12, implicit $exec |
| 424 | + ; GCN: $agpr12 = V_ACCVGPR_WRITE_B32 killed $vgpr0, implicit $exec |
| 425 | + ; GCN: $vgpr1 = V_MOV_B32_e32 killed $sgpr13, implicit $exec |
| 426 | + ; GCN: $agpr13 = V_ACCVGPR_WRITE_B32 killed $vgpr1, implicit $exec |
| 427 | + ; GCN: $vgpr2 = V_MOV_B32_e32 killed $sgpr14, implicit $exec |
| 428 | + ; GCN: $agpr14 = V_ACCVGPR_WRITE_B32 killed $vgpr2, implicit $exec |
| 429 | + ; GCN: $vgpr0 = V_MOV_B32_e32 killed $sgpr15, implicit $exec |
| 430 | + ; GCN: $agpr15 = V_ACCVGPR_WRITE_B32 killed $vgpr0, implicit $exec, implicit $exec |
| 431 | + ; GCN: S_ENDPGM 0, implicit $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15 |
| 432 | + $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15 = COPY killed $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7_sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15, implicit $exec |
| 433 | + S_ENDPGM 0, implicit $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15 |
| 434 | +... |
| 435 | + |
366 | 436 | ---
|
367 | 437 | name: a_to_a
|
368 | 438 | tracksRegLiveness: true
|
@@ -464,6 +534,52 @@ body: |
|
464 | 534 | S_ENDPGM 0, implicit $agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15
|
465 | 535 | ...
|
466 | 536 |
|
| 537 | +--- |
| 538 | +name: a16_to_a16 |
| 539 | +tracksRegLiveness: true |
| 540 | +body: | |
| 541 | + bb.0: |
| 542 | +
|
| 543 | + ; GCN-LABEL: name: a16_to_a16 |
| 544 | + ; GCN: $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15 = IMPLICIT_DEF |
| 545 | + ; GCN: $vgpr1 = V_ACCVGPR_READ_B32 killed $agpr15, implicit $exec |
| 546 | + ; GCN: $agpr31 = V_ACCVGPR_WRITE_B32 killed $vgpr1, implicit $exec |
| 547 | + ; GCN: $vgpr0 = V_ACCVGPR_READ_B32 killed $agpr14, implicit $exec |
| 548 | + ; GCN: $agpr30 = V_ACCVGPR_WRITE_B32 killed $vgpr0, implicit $exec |
| 549 | + ; GCN: $vgpr2 = V_ACCVGPR_READ_B32 killed $agpr13, implicit $exec |
| 550 | + ; GCN: $agpr29 = V_ACCVGPR_WRITE_B32 killed $vgpr2, implicit $exec |
| 551 | + ; GCN: $vgpr1 = V_ACCVGPR_READ_B32 killed $agpr12, implicit $exec |
| 552 | + ; GCN: $agpr28 = V_ACCVGPR_WRITE_B32 killed $vgpr1, implicit $exec |
| 553 | + ; GCN: $vgpr0 = V_ACCVGPR_READ_B32 killed $agpr11, implicit $exec |
| 554 | + ; GCN: $agpr27 = V_ACCVGPR_WRITE_B32 killed $vgpr0, implicit $exec |
| 555 | + ; GCN: $vgpr2 = V_ACCVGPR_READ_B32 killed $agpr10, implicit $exec |
| 556 | + ; GCN: $agpr26 = V_ACCVGPR_WRITE_B32 killed $vgpr2, implicit $exec |
| 557 | + ; GCN: $vgpr1 = V_ACCVGPR_READ_B32 killed $agpr9, implicit $exec |
| 558 | + ; GCN: $agpr25 = V_ACCVGPR_WRITE_B32 killed $vgpr1, implicit $exec |
| 559 | + ; GCN: $vgpr0 = V_ACCVGPR_READ_B32 killed $agpr8, implicit $exec |
| 560 | + ; GCN: $agpr24 = V_ACCVGPR_WRITE_B32 killed $vgpr0, implicit $exec |
| 561 | + ; GCN: $vgpr2 = V_ACCVGPR_READ_B32 killed $agpr7, implicit $exec |
| 562 | + ; GCN: $agpr23 = V_ACCVGPR_WRITE_B32 killed $vgpr2, implicit $exec |
| 563 | + ; GCN: $vgpr1 = V_ACCVGPR_READ_B32 killed $agpr6, implicit $exec |
| 564 | + ; GCN: $agpr22 = V_ACCVGPR_WRITE_B32 killed $vgpr1, implicit $exec |
| 565 | + ; GCN: $vgpr0 = V_ACCVGPR_READ_B32 killed $agpr5, implicit $exec |
| 566 | + ; GCN: $agpr21 = V_ACCVGPR_WRITE_B32 killed $vgpr0, implicit $exec |
| 567 | + ; GCN: $vgpr2 = V_ACCVGPR_READ_B32 killed $agpr4, implicit $exec |
| 568 | + ; GCN: $agpr20 = V_ACCVGPR_WRITE_B32 killed $vgpr2, implicit $exec |
| 569 | + ; GCN: $vgpr1 = V_ACCVGPR_READ_B32 killed $agpr3, implicit $exec |
| 570 | + ; GCN: $agpr19 = V_ACCVGPR_WRITE_B32 killed $vgpr1, implicit $exec |
| 571 | + ; GCN: $vgpr0 = V_ACCVGPR_READ_B32 killed $agpr2, implicit $exec |
| 572 | + ; GCN: $agpr18 = V_ACCVGPR_WRITE_B32 killed $vgpr0, implicit $exec |
| 573 | + ; GCN: $vgpr2 = V_ACCVGPR_READ_B32 killed $agpr1, implicit $exec |
| 574 | + ; GCN: $agpr17 = V_ACCVGPR_WRITE_B32 killed $vgpr2, implicit $exec |
| 575 | + ; GCN: $vgpr1 = V_ACCVGPR_READ_B32 killed $agpr0, implicit $exec |
| 576 | + ; GCN: $agpr16 = V_ACCVGPR_WRITE_B32 killed $vgpr1, implicit $exec, implicit $exec |
| 577 | + ; GCN: S_ENDPGM 0, implicit $agpr16_agpr17_agpr18_agpr19_agpr20_agpr21_agpr22_agpr23_agpr24_agpr25_agpr26_agpr27_agpr28_agpr29_agpr30_agpr31 |
| 578 | + $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15 = IMPLICIT_DEF |
| 579 | + $agpr16_agpr17_agpr18_agpr19_agpr20_agpr21_agpr22_agpr23_agpr24_agpr25_agpr26_agpr27_agpr28_agpr29_agpr30_agpr31 = COPY killed $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15, implicit $exec |
| 580 | + S_ENDPGM 0, implicit $agpr16_agpr17_agpr18_agpr19_agpr20_agpr21_agpr22_agpr23_agpr24_agpr25_agpr26_agpr27_agpr28_agpr29_agpr30_agpr31 |
| 581 | +... |
| 582 | + |
467 | 583 | # Using last vgpr255 will raise error about absence of emergency spill slot.
|
468 | 584 |
|
469 | 585 | ---
|
|
0 commit comments