|
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