Skip to content

Commit df620d7

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 3764eec commit df620d7

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

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

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,3 +126,31 @@ define amdgpu_kernel void @llvm_amdgcn_queue_ptr(ptr addrspace(1) %ptr) #0 {
126126
store volatile i64 %dispatch.id, ptr addrspace(1) %ptr
127127
ret void
128128
}
129+
130+
; Taken from memcpy-param-combinations.ll, tests PTRADD handling in
131+
; SelectionDAGAddressAnalysis.
132+
define void @memcpy_p1_p4_sz16_align_1_1(ptr addrspace(1) align 1 %dst, ptr addrspace(4) align 1 readonly %src) {
133+
; GFX942_PTRADD-LABEL: memcpy_p1_p4_sz16_align_1_1:
134+
; GFX942_PTRADD: ; %bb.0: ; %entry
135+
; GFX942_PTRADD-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
136+
; GFX942_PTRADD-NEXT: global_load_dwordx2 v[4:5], v[2:3], off
137+
; GFX942_PTRADD-NEXT: s_waitcnt vmcnt(0)
138+
; GFX942_PTRADD-NEXT: global_store_dwordx2 v[0:1], v[4:5], off
139+
; GFX942_PTRADD-NEXT: global_load_dwordx2 v[2:3], v[2:3], off offset:8
140+
; GFX942_PTRADD-NEXT: s_waitcnt vmcnt(0)
141+
; GFX942_PTRADD-NEXT: global_store_dwordx2 v[0:1], v[2:3], off offset:8
142+
; GFX942_PTRADD-NEXT: s_waitcnt vmcnt(0)
143+
; GFX942_PTRADD-NEXT: s_setpc_b64 s[30:31]
144+
;
145+
; GFX942_LEGACY-LABEL: memcpy_p1_p4_sz16_align_1_1:
146+
; GFX942_LEGACY: ; %bb.0: ; %entry
147+
; GFX942_LEGACY-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
148+
; GFX942_LEGACY-NEXT: global_load_dwordx4 v[2:5], v[2:3], off
149+
; GFX942_LEGACY-NEXT: s_waitcnt vmcnt(0)
150+
; GFX942_LEGACY-NEXT: global_store_dwordx4 v[0:1], v[2:5], off
151+
; GFX942_LEGACY-NEXT: s_waitcnt vmcnt(0)
152+
; GFX942_LEGACY-NEXT: s_setpc_b64 s[30:31]
153+
entry:
154+
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)
155+
ret void
156+
}

0 commit comments

Comments
 (0)