|
1 | 1 | ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py |
2 | 2 | ; RUN: llc -global-isel=0 -march=amdgcn -mcpu=gfx900 -mattr=-unaligned-access-mode < %s | FileCheck %s -check-prefixes=GCN,ALIGNED,ALIGNED-SDAG |
3 | 3 | ; RUN: llc -global-isel=1 -march=amdgcn -mcpu=gfx900 -mattr=-unaligned-access-mode < %s | FileCheck %s -check-prefixes=GCN,ALIGNED,ALIGNED-GISEL |
4 | | -; RUN: llc -global-isel=0 -march=amdgcn -mcpu=gfx900 -mattr=+unaligned-access-mode < %s | FileCheck %s -check-prefixes=GCN,UNALIGNED |
5 | | -; RUN: llc -global-isel=1 -march=amdgcn -mcpu=gfx900 -mattr=+unaligned-access-mode < %s | FileCheck %s -check-prefixes=GCN,UNALIGNED |
| 4 | +; RUN: llc -global-isel=0 -march=amdgcn -mcpu=gfx900 -mattr=+unaligned-access-mode < %s | FileCheck %s -check-prefixes=GCN,UNALIGNED,UNALIGNED-SDAG |
| 5 | +; RUN: llc -global-isel=1 -march=amdgcn -mcpu=gfx900 -mattr=+unaligned-access-mode < %s | FileCheck %s -check-prefixes=GCN,UNALIGNED,UNALIGNED-GISEL |
6 | 6 |
|
7 | 7 | define amdgpu_kernel void @ds1align1(i8 addrspace(3)* %in, i8 addrspace(3)* %out) { |
8 | 8 | ; GCN-LABEL: ds1align1: |
@@ -566,6 +566,31 @@ define amdgpu_kernel void @ds12align4(<3 x i32> addrspace(3)* %in, <3 x i32> add |
566 | 566 | ; ALIGNED-NEXT: s_waitcnt lgkmcnt(1) |
567 | 567 | ; ALIGNED-NEXT: ds_write_b32 v3, v2 offset:8 |
568 | 568 | ; ALIGNED-NEXT: s_endpgm |
| 569 | +; |
| 570 | +; UNALIGNED-SDAG-LABEL: ds12align4: |
| 571 | +; UNALIGNED-SDAG: ; %bb.0: |
| 572 | +; UNALIGNED-SDAG-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x24 |
| 573 | +; UNALIGNED-SDAG-NEXT: s_waitcnt lgkmcnt(0) |
| 574 | +; UNALIGNED-SDAG-NEXT: v_mov_b32_e32 v2, s0 |
| 575 | +; UNALIGNED-SDAG-NEXT: ds_read2_b32 v[0:1], v2 offset1:1 |
| 576 | +; UNALIGNED-SDAG-NEXT: ds_read_b32 v2, v2 offset:8 |
| 577 | +; UNALIGNED-SDAG-NEXT: v_mov_b32_e32 v3, s1 |
| 578 | +; UNALIGNED-SDAG-NEXT: s_waitcnt lgkmcnt(1) |
| 579 | +; UNALIGNED-SDAG-NEXT: ds_write2_b32 v3, v0, v1 offset1:1 |
| 580 | +; UNALIGNED-SDAG-NEXT: s_waitcnt lgkmcnt(1) |
| 581 | +; UNALIGNED-SDAG-NEXT: ds_write_b32 v3, v2 offset:8 |
| 582 | +; UNALIGNED-SDAG-NEXT: s_endpgm |
| 583 | +; |
| 584 | +; UNALIGNED-GISEL-LABEL: ds12align4: |
| 585 | +; UNALIGNED-GISEL: ; %bb.0: |
| 586 | +; UNALIGNED-GISEL-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x24 |
| 587 | +; UNALIGNED-GISEL-NEXT: s_waitcnt lgkmcnt(0) |
| 588 | +; UNALIGNED-GISEL-NEXT: v_mov_b32_e32 v0, s0 |
| 589 | +; UNALIGNED-GISEL-NEXT: ds_read_b96 v[0:2], v0 |
| 590 | +; UNALIGNED-GISEL-NEXT: v_mov_b32_e32 v3, s1 |
| 591 | +; UNALIGNED-GISEL-NEXT: s_waitcnt lgkmcnt(0) |
| 592 | +; UNALIGNED-GISEL-NEXT: ds_write_b96 v3, v[0:2] |
| 593 | +; UNALIGNED-GISEL-NEXT: s_endpgm |
569 | 594 | %val = load <3 x i32>, <3 x i32> addrspace(3)* %in, align 4 |
570 | 595 | store <3 x i32> %val, <3 x i32> addrspace(3)* %out, align 4 |
571 | 596 | ret void |
@@ -599,6 +624,31 @@ define amdgpu_kernel void @ds12align8(<3 x i32> addrspace(3)* %in, <3 x i32> add |
599 | 624 | ; ALIGNED-GISEL-NEXT: s_waitcnt lgkmcnt(1) |
600 | 625 | ; ALIGNED-GISEL-NEXT: ds_write_b32 v3, v2 offset:8 |
601 | 626 | ; ALIGNED-GISEL-NEXT: s_endpgm |
| 627 | +; |
| 628 | +; UNALIGNED-SDAG-LABEL: ds12align8: |
| 629 | +; UNALIGNED-SDAG: ; %bb.0: |
| 630 | +; UNALIGNED-SDAG-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x24 |
| 631 | +; UNALIGNED-SDAG-NEXT: s_waitcnt lgkmcnt(0) |
| 632 | +; UNALIGNED-SDAG-NEXT: v_mov_b32_e32 v0, s0 |
| 633 | +; UNALIGNED-SDAG-NEXT: ds_read_b32 v2, v0 offset:8 |
| 634 | +; UNALIGNED-SDAG-NEXT: ds_read_b64 v[0:1], v0 |
| 635 | +; UNALIGNED-SDAG-NEXT: v_mov_b32_e32 v3, s1 |
| 636 | +; UNALIGNED-SDAG-NEXT: s_waitcnt lgkmcnt(1) |
| 637 | +; UNALIGNED-SDAG-NEXT: ds_write_b32 v3, v2 offset:8 |
| 638 | +; UNALIGNED-SDAG-NEXT: s_waitcnt lgkmcnt(1) |
| 639 | +; UNALIGNED-SDAG-NEXT: ds_write_b64 v3, v[0:1] |
| 640 | +; UNALIGNED-SDAG-NEXT: s_endpgm |
| 641 | +; |
| 642 | +; UNALIGNED-GISEL-LABEL: ds12align8: |
| 643 | +; UNALIGNED-GISEL: ; %bb.0: |
| 644 | +; UNALIGNED-GISEL-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x24 |
| 645 | +; UNALIGNED-GISEL-NEXT: s_waitcnt lgkmcnt(0) |
| 646 | +; UNALIGNED-GISEL-NEXT: v_mov_b32_e32 v0, s0 |
| 647 | +; UNALIGNED-GISEL-NEXT: ds_read_b96 v[0:2], v0 |
| 648 | +; UNALIGNED-GISEL-NEXT: v_mov_b32_e32 v3, s1 |
| 649 | +; UNALIGNED-GISEL-NEXT: s_waitcnt lgkmcnt(0) |
| 650 | +; UNALIGNED-GISEL-NEXT: ds_write_b96 v3, v[0:2] |
| 651 | +; UNALIGNED-GISEL-NEXT: s_endpgm |
602 | 652 | %val = load <3 x i32>, <3 x i32> addrspace(3)* %in, align 8 |
603 | 653 | store <3 x i32> %val, <3 x i32> addrspace(3)* %out, align 8 |
604 | 654 | ret void |
|
0 commit comments