Skip to content

Commit 1fe91cb

Browse files
committed
[AMDGPU][SDAG] Add test for ISD::PTRADD handling in SelectionDAGAddressAnalysis
Pre-committing test to show improvements in a follow-up PR.
1 parent efdaf03 commit 1fe91cb

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

llvm/test/CodeGen/AMDGPU/ptradd-sdag-optimizations.ll

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,3 +132,32 @@ declare noalias ptr addrspace(4) @llvm.amdgcn.implicitarg.ptr()
132132
declare i64 @llvm.amdgcn.dispatch.id()
133133
declare noalias ptr addrspace(4) @llvm.amdgcn.dispatch.ptr()
134134

135+
136+
; Taken from memcpy-param-combinations.ll, tests PTRADD handling in
137+
; SelectionDAGAddressAnalysis.
138+
define void @memcpy_p1_p4_sz16_align_1_1(ptr addrspace(1) align 1 %dst, ptr addrspace(4) align 1 readonly %src) {
139+
; GFX942_PTRADD-LABEL: memcpy_p1_p4_sz16_align_1_1:
140+
; GFX942_PTRADD: ; %bb.0: ; %entry
141+
; GFX942_PTRADD-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
142+
; GFX942_PTRADD-NEXT: global_load_dwordx2 v[4:5], v[2:3], off
143+
; GFX942_PTRADD-NEXT: s_waitcnt vmcnt(0)
144+
; GFX942_PTRADD-NEXT: global_store_dwordx2 v[0:1], v[4:5], off
145+
; GFX942_PTRADD-NEXT: global_load_dwordx2 v[2:3], v[2:3], off offset:8
146+
; GFX942_PTRADD-NEXT: s_waitcnt vmcnt(0)
147+
; GFX942_PTRADD-NEXT: global_store_dwordx2 v[0:1], v[2:3], off offset:8
148+
; GFX942_PTRADD-NEXT: s_waitcnt vmcnt(0)
149+
; GFX942_PTRADD-NEXT: s_setpc_b64 s[30:31]
150+
;
151+
; GFX942_LEGACY-LABEL: memcpy_p1_p4_sz16_align_1_1:
152+
; GFX942_LEGACY: ; %bb.0: ; %entry
153+
; GFX942_LEGACY-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
154+
; GFX942_LEGACY-NEXT: global_load_dwordx4 v[2:5], v[2:3], off
155+
; GFX942_LEGACY-NEXT: s_waitcnt vmcnt(0)
156+
; GFX942_LEGACY-NEXT: global_store_dwordx4 v[0:1], v[2:5], off
157+
; GFX942_LEGACY-NEXT: s_waitcnt vmcnt(0)
158+
; GFX942_LEGACY-NEXT: s_setpc_b64 s[30:31]
159+
entry:
160+
tail call void @llvm.memcpy.p1.p4.i64(ptr addrspace(1) noundef nonnull align 1 %dst, ptr addrspace(4) noundef nonnull align 1 %src, i64 16, i1 false)
161+
ret void
162+
}
163+

0 commit comments

Comments
 (0)