; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %in, i32* %out) {
+ ptr %in, ptr %out) {
entry:
- %val = load atomic i32, i32* %in syncscope("agent") unordered, align 4
- store i32 %val, i32* %out
+ %val = load atomic i32, ptr %in syncscope("agent") unordered, align 4
+ store i32 %val, ptr %out
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %in, i32* %out) {
+ ptr %in, ptr %out) {
entry:
- %val = load atomic i32, i32* %in syncscope("agent") monotonic, align 4
- store i32 %val, i32* %out
+ %val = load atomic i32, ptr %in syncscope("agent") monotonic, align 4
+ store i32 %val, ptr %out
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %in, i32* %out) {
+ ptr %in, ptr %out) {
entry:
- %val = load atomic i32, i32* %in syncscope("agent") acquire, align 4
- store i32 %val, i32* %out
+ %val = load atomic i32, ptr %in syncscope("agent") acquire, align 4
+ store i32 %val, ptr %out
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %in, i32* %out) {
+ ptr %in, ptr %out) {
entry:
- %val = load atomic i32, i32* %in syncscope("agent") seq_cst, align 4
- store i32 %val, i32* %out
+ %val = load atomic i32, ptr %in syncscope("agent") seq_cst, align 4
+ store i32 %val, ptr %out
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32* %out) {
+ i32 %in, ptr %out) {
entry:
- store atomic i32 %in, i32* %out syncscope("agent") unordered, align 4
+ store atomic i32 %in, ptr %out syncscope("agent") unordered, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32* %out) {
+ i32 %in, ptr %out) {
entry:
- store atomic i32 %in, i32* %out syncscope("agent") monotonic, align 4
+ store atomic i32 %in, ptr %out syncscope("agent") monotonic, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32* %out) {
+ i32 %in, ptr %out) {
entry:
- store atomic i32 %in, i32* %out syncscope("agent") release, align 4
+ store atomic i32 %in, ptr %out syncscope("agent") release, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32* %out) {
+ i32 %in, ptr %out) {
entry:
- store atomic i32 %in, i32* %out syncscope("agent") seq_cst, align 4
+ store atomic i32 %in, ptr %out syncscope("agent") seq_cst, align 4
ret void
}
; GFX11-CU-NEXT: flat_atomic_swap_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in syncscope("agent") monotonic
+ %val = atomicrmw volatile xchg ptr %out, i32 %in syncscope("agent") monotonic
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in syncscope("agent") acquire
+ %val = atomicrmw volatile xchg ptr %out, i32 %in syncscope("agent") acquire
ret void
}
; GFX11-CU-NEXT: flat_atomic_swap_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in syncscope("agent") release
+ %val = atomicrmw volatile xchg ptr %out, i32 %in syncscope("agent") release
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in syncscope("agent") acq_rel
+ %val = atomicrmw volatile xchg ptr %out, i32 %in syncscope("agent") acq_rel
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in syncscope("agent") seq_cst
+ %val = atomicrmw volatile xchg ptr %out, i32 %in syncscope("agent") seq_cst
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in syncscope("agent") acquire
- store i32 %val, i32* %out, align 4
+ %val = atomicrmw volatile xchg ptr %out, i32 %in syncscope("agent") acquire
+ store i32 %val, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in syncscope("agent") acq_rel
- store i32 %val, i32* %out, align 4
+ %val = atomicrmw volatile xchg ptr %out, i32 %in syncscope("agent") acq_rel
+ store i32 %val, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in syncscope("agent") seq_cst
- store i32 %val, i32* %out, align 4
+ %val = atomicrmw volatile xchg ptr %out, i32 %in syncscope("agent") seq_cst
+ store i32 %val, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("agent") monotonic monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("agent") monotonic monotonic
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("agent") acquire monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("agent") acquire monotonic
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("agent") release monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("agent") release monotonic
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("agent") acq_rel monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("agent") acq_rel monotonic
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("agent") seq_cst monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("agent") seq_cst monotonic
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("agent") monotonic acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("agent") monotonic acquire
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("agent") acquire acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("agent") acquire acquire
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("agent") release acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("agent") release acquire
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("agent") acq_rel acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("agent") acq_rel acquire
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("agent") seq_cst acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("agent") seq_cst acquire
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("agent") monotonic seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("agent") monotonic seq_cst
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("agent") acquire seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("agent") acquire seq_cst
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("agent") release seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("agent") release seq_cst
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("agent") acq_rel seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("agent") acq_rel seq_cst
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("agent") seq_cst seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("agent") seq_cst seq_cst
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("agent") monotonic monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("agent") monotonic monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("agent") acquire monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("agent") acquire monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("agent") release monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("agent") release monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("agent") acq_rel monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("agent") acq_rel monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("agent") seq_cst monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("agent") seq_cst monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("agent") monotonic acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("agent") monotonic acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("agent") acquire acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("agent") acquire acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("agent") release acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("agent") release acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("agent") acq_rel acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("agent") acq_rel acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("agent") seq_cst acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("agent") seq_cst acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("agent") monotonic seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("agent") monotonic seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("agent") acquire seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("agent") acquire seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("agent") release seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("agent") release seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("agent") acq_rel seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("agent") acq_rel seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("agent") seq_cst seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("agent") seq_cst seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %in, i32* %out) {
+ ptr %in, ptr %out) {
entry:
- %val = load atomic i32, i32* %in syncscope("agent-one-as") unordered, align 4
- store i32 %val, i32* %out
+ %val = load atomic i32, ptr %in syncscope("agent-one-as") unordered, align 4
+ store i32 %val, ptr %out
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %in, i32* %out) {
+ ptr %in, ptr %out) {
entry:
- %val = load atomic i32, i32* %in syncscope("agent-one-as") monotonic, align 4
- store i32 %val, i32* %out
+ %val = load atomic i32, ptr %in syncscope("agent-one-as") monotonic, align 4
+ store i32 %val, ptr %out
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %in, i32* %out) {
+ ptr %in, ptr %out) {
entry:
- %val = load atomic i32, i32* %in syncscope("agent-one-as") acquire, align 4
- store i32 %val, i32* %out
+ %val = load atomic i32, ptr %in syncscope("agent-one-as") acquire, align 4
+ store i32 %val, ptr %out
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %in, i32* %out) {
+ ptr %in, ptr %out) {
entry:
- %val = load atomic i32, i32* %in syncscope("agent-one-as") seq_cst, align 4
- store i32 %val, i32* %out
+ %val = load atomic i32, ptr %in syncscope("agent-one-as") seq_cst, align 4
+ store i32 %val, ptr %out
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32* %out) {
+ i32 %in, ptr %out) {
entry:
- store atomic i32 %in, i32* %out syncscope("agent-one-as") unordered, align 4
+ store atomic i32 %in, ptr %out syncscope("agent-one-as") unordered, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32* %out) {
+ i32 %in, ptr %out) {
entry:
- store atomic i32 %in, i32* %out syncscope("agent-one-as") monotonic, align 4
+ store atomic i32 %in, ptr %out syncscope("agent-one-as") monotonic, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32* %out) {
+ i32 %in, ptr %out) {
entry:
- store atomic i32 %in, i32* %out syncscope("agent-one-as") release, align 4
+ store atomic i32 %in, ptr %out syncscope("agent-one-as") release, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32* %out) {
+ i32 %in, ptr %out) {
entry:
- store atomic i32 %in, i32* %out syncscope("agent-one-as") seq_cst, align 4
+ store atomic i32 %in, ptr %out syncscope("agent-one-as") seq_cst, align 4
ret void
}
; GFX11-CU-NEXT: flat_atomic_swap_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in syncscope("agent-one-as") monotonic
+ %val = atomicrmw volatile xchg ptr %out, i32 %in syncscope("agent-one-as") monotonic
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in syncscope("agent-one-as") acquire
+ %val = atomicrmw volatile xchg ptr %out, i32 %in syncscope("agent-one-as") acquire
ret void
}
; GFX11-CU-NEXT: flat_atomic_swap_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in syncscope("agent-one-as") release
+ %val = atomicrmw volatile xchg ptr %out, i32 %in syncscope("agent-one-as") release
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in syncscope("agent-one-as") acq_rel
+ %val = atomicrmw volatile xchg ptr %out, i32 %in syncscope("agent-one-as") acq_rel
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in syncscope("agent-one-as") seq_cst
+ %val = atomicrmw volatile xchg ptr %out, i32 %in syncscope("agent-one-as") seq_cst
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in syncscope("agent-one-as") acquire
- store i32 %val, i32* %out, align 4
+ %val = atomicrmw volatile xchg ptr %out, i32 %in syncscope("agent-one-as") acquire
+ store i32 %val, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in syncscope("agent-one-as") acq_rel
- store i32 %val, i32* %out, align 4
+ %val = atomicrmw volatile xchg ptr %out, i32 %in syncscope("agent-one-as") acq_rel
+ store i32 %val, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in syncscope("agent-one-as") seq_cst
- store i32 %val, i32* %out, align 4
+ %val = atomicrmw volatile xchg ptr %out, i32 %in syncscope("agent-one-as") seq_cst
+ store i32 %val, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("agent-one-as") monotonic monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("agent-one-as") monotonic monotonic
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("agent-one-as") acquire monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("agent-one-as") acquire monotonic
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("agent-one-as") release monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("agent-one-as") release monotonic
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("agent-one-as") acq_rel monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("agent-one-as") acq_rel monotonic
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("agent-one-as") seq_cst monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("agent-one-as") seq_cst monotonic
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("agent-one-as") monotonic acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("agent-one-as") monotonic acquire
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("agent-one-as") acquire acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("agent-one-as") acquire acquire
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("agent-one-as") release acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("agent-one-as") release acquire
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("agent-one-as") acq_rel acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("agent-one-as") acq_rel acquire
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("agent-one-as") seq_cst acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("agent-one-as") seq_cst acquire
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("agent-one-as") monotonic seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("agent-one-as") monotonic seq_cst
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("agent-one-as") acquire seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("agent-one-as") acquire seq_cst
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("agent-one-as") release seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("agent-one-as") release seq_cst
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("agent-one-as") acq_rel seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("agent-one-as") acq_rel seq_cst
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("agent-one-as") seq_cst seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("agent-one-as") seq_cst seq_cst
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("agent-one-as") monotonic monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("agent-one-as") monotonic monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("agent-one-as") acquire monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("agent-one-as") acquire monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("agent-one-as") release monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("agent-one-as") release monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("agent-one-as") acq_rel monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("agent-one-as") acq_rel monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("agent-one-as") seq_cst monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("agent-one-as") seq_cst monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("agent-one-as") monotonic acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("agent-one-as") monotonic acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("agent-one-as") acquire acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("agent-one-as") acquire acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("agent-one-as") release acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("agent-one-as") release acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("agent-one-as") acq_rel acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("agent-one-as") acq_rel acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("agent-one-as") seq_cst acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("agent-one-as") seq_cst acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("agent-one-as") monotonic seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("agent-one-as") monotonic seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("agent-one-as") acquire seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("agent-one-as") acquire seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("agent-one-as") release seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("agent-one-as") release seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("agent-one-as") acq_rel seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("agent-one-as") acq_rel seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("agent-one-as") seq_cst seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("agent-one-as") seq_cst seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %in, i32* %out) {
+ ptr %in, ptr %out) {
entry:
- %val = load i32, i32* %in, align 4, !nontemporal !0
- store i32 %val, i32* %out
+ %val = load i32, ptr %in, align 4, !nontemporal !0
+ store i32 %val, ptr %out
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %in, i32* %out) {
+ ptr %in, ptr %out) {
entry:
%tid = call i32 @llvm.amdgcn.workitem.id.x()
- %val.gep = getelementptr inbounds i32, i32* %in, i32 %tid
- %val = load i32, i32* %val.gep, align 4, !nontemporal !0
- store i32 %val, i32* %out
+ %val.gep = getelementptr inbounds i32, ptr %in, i32 %tid
+ %val = load i32, ptr %val.gep, align 4, !nontemporal !0
+ store i32 %val, ptr %out
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2 glc slc dlc
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %in, i32* %out) {
+ ptr %in, ptr %out) {
entry:
- %val = load i32, i32* %in, align 4
- store i32 %val, i32* %out, !nontemporal !0
+ %val = load i32, ptr %in, align 4
+ store i32 %val, ptr %out, !nontemporal !0
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2 glc slc dlc
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %in, i32* %out) {
+ ptr %in, ptr %out) {
entry:
%tid = call i32 @llvm.amdgcn.workitem.id.x()
- %val = load i32, i32* %in, align 4
- %out.gep = getelementptr inbounds i32, i32* %out, i32 %tid
- store i32 %val, i32* %out.gep, !nontemporal !0
+ %val = load i32, ptr %in, align 4
+ %out.gep = getelementptr inbounds i32, ptr %out, i32 %tid
+ store i32 %val, ptr %out.gep, !nontemporal !0
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %in, i32* %out) {
+ ptr %in, ptr %out) {
entry:
- %val = load atomic i32, i32* %in syncscope("singlethread") unordered, align 4
- store i32 %val, i32* %out
+ %val = load atomic i32, ptr %in syncscope("singlethread") unordered, align 4
+ store i32 %val, ptr %out
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %in, i32* %out) {
+ ptr %in, ptr %out) {
entry:
- %val = load atomic i32, i32* %in syncscope("singlethread") monotonic, align 4
- store i32 %val, i32* %out
+ %val = load atomic i32, ptr %in syncscope("singlethread") monotonic, align 4
+ store i32 %val, ptr %out
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %in, i32* %out) {
+ ptr %in, ptr %out) {
entry:
- %val = load atomic i32, i32* %in syncscope("singlethread") acquire, align 4
- store i32 %val, i32* %out
+ %val = load atomic i32, ptr %in syncscope("singlethread") acquire, align 4
+ store i32 %val, ptr %out
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %in, i32* %out) {
+ ptr %in, ptr %out) {
entry:
- %val = load atomic i32, i32* %in syncscope("singlethread") seq_cst, align 4
- store i32 %val, i32* %out
+ %val = load atomic i32, ptr %in syncscope("singlethread") seq_cst, align 4
+ store i32 %val, ptr %out
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32* %out) {
+ i32 %in, ptr %out) {
entry:
- store atomic i32 %in, i32* %out syncscope("singlethread") unordered, align 4
+ store atomic i32 %in, ptr %out syncscope("singlethread") unordered, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32* %out) {
+ i32 %in, ptr %out) {
entry:
- store atomic i32 %in, i32* %out syncscope("singlethread") monotonic, align 4
+ store atomic i32 %in, ptr %out syncscope("singlethread") monotonic, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32* %out) {
+ i32 %in, ptr %out) {
entry:
- store atomic i32 %in, i32* %out syncscope("singlethread") release, align 4
+ store atomic i32 %in, ptr %out syncscope("singlethread") release, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32* %out) {
+ i32 %in, ptr %out) {
entry:
- store atomic i32 %in, i32* %out syncscope("singlethread") seq_cst, align 4
+ store atomic i32 %in, ptr %out syncscope("singlethread") seq_cst, align 4
ret void
}
; GFX11-CU-NEXT: flat_atomic_swap_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in syncscope("singlethread") monotonic
+ %val = atomicrmw volatile xchg ptr %out, i32 %in syncscope("singlethread") monotonic
ret void
}
; GFX11-CU-NEXT: flat_atomic_swap_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in syncscope("singlethread") acquire
+ %val = atomicrmw volatile xchg ptr %out, i32 %in syncscope("singlethread") acquire
ret void
}
; GFX11-CU-NEXT: flat_atomic_swap_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in syncscope("singlethread") release
+ %val = atomicrmw volatile xchg ptr %out, i32 %in syncscope("singlethread") release
ret void
}
; GFX11-CU-NEXT: flat_atomic_swap_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in syncscope("singlethread") acq_rel
+ %val = atomicrmw volatile xchg ptr %out, i32 %in syncscope("singlethread") acq_rel
ret void
}
; GFX11-CU-NEXT: flat_atomic_swap_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in syncscope("singlethread") seq_cst
+ %val = atomicrmw volatile xchg ptr %out, i32 %in syncscope("singlethread") seq_cst
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in syncscope("singlethread") acquire
- store i32 %val, i32* %out, align 4
+ %val = atomicrmw volatile xchg ptr %out, i32 %in syncscope("singlethread") acquire
+ store i32 %val, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in syncscope("singlethread") acq_rel
- store i32 %val, i32* %out, align 4
+ %val = atomicrmw volatile xchg ptr %out, i32 %in syncscope("singlethread") acq_rel
+ store i32 %val, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in syncscope("singlethread") seq_cst
- store i32 %val, i32* %out, align 4
+ %val = atomicrmw volatile xchg ptr %out, i32 %in syncscope("singlethread") seq_cst
+ store i32 %val, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("singlethread") monotonic monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("singlethread") monotonic monotonic
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("singlethread") acquire monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("singlethread") acquire monotonic
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("singlethread") release monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("singlethread") release monotonic
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("singlethread") acq_rel monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("singlethread") acq_rel monotonic
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("singlethread") seq_cst monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("singlethread") seq_cst monotonic
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("singlethread") monotonic acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("singlethread") monotonic acquire
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("singlethread") acquire acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("singlethread") acquire acquire
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("singlethread") release acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("singlethread") release acquire
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("singlethread") acq_rel acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("singlethread") acq_rel acquire
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("singlethread") seq_cst acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("singlethread") seq_cst acquire
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("singlethread") monotonic seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("singlethread") monotonic seq_cst
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("singlethread") acquire seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("singlethread") acquire seq_cst
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("singlethread") release seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("singlethread") release seq_cst
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("singlethread") acq_rel seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("singlethread") acq_rel seq_cst
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("singlethread") seq_cst seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("singlethread") seq_cst seq_cst
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("singlethread") monotonic monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("singlethread") monotonic monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("singlethread") acquire monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("singlethread") acquire monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("singlethread") release monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("singlethread") release monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("singlethread") acq_rel monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("singlethread") acq_rel monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("singlethread") seq_cst monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("singlethread") seq_cst monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("singlethread") monotonic acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("singlethread") monotonic acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("singlethread") acquire acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("singlethread") acquire acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("singlethread") release acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("singlethread") release acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("singlethread") acq_rel acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("singlethread") acq_rel acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("singlethread") seq_cst acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("singlethread") seq_cst acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("singlethread") monotonic seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("singlethread") monotonic seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("singlethread") acquire seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("singlethread") acquire seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("singlethread") release seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("singlethread") release seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("singlethread") acq_rel seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("singlethread") acq_rel seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("singlethread") seq_cst seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("singlethread") seq_cst seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %in, i32* %out) {
+ ptr %in, ptr %out) {
entry:
- %val = load atomic i32, i32* %in syncscope("singlethread-one-as") unordered, align 4
- store i32 %val, i32* %out
+ %val = load atomic i32, ptr %in syncscope("singlethread-one-as") unordered, align 4
+ store i32 %val, ptr %out
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %in, i32* %out) {
+ ptr %in, ptr %out) {
entry:
- %val = load atomic i32, i32* %in syncscope("singlethread-one-as") monotonic, align 4
- store i32 %val, i32* %out
+ %val = load atomic i32, ptr %in syncscope("singlethread-one-as") monotonic, align 4
+ store i32 %val, ptr %out
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %in, i32* %out) {
+ ptr %in, ptr %out) {
entry:
- %val = load atomic i32, i32* %in syncscope("singlethread-one-as") acquire, align 4
- store i32 %val, i32* %out
+ %val = load atomic i32, ptr %in syncscope("singlethread-one-as") acquire, align 4
+ store i32 %val, ptr %out
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %in, i32* %out) {
+ ptr %in, ptr %out) {
entry:
- %val = load atomic i32, i32* %in syncscope("singlethread-one-as") seq_cst, align 4
- store i32 %val, i32* %out
+ %val = load atomic i32, ptr %in syncscope("singlethread-one-as") seq_cst, align 4
+ store i32 %val, ptr %out
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32* %out) {
+ i32 %in, ptr %out) {
entry:
- store atomic i32 %in, i32* %out syncscope("singlethread-one-as") unordered, align 4
+ store atomic i32 %in, ptr %out syncscope("singlethread-one-as") unordered, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32* %out) {
+ i32 %in, ptr %out) {
entry:
- store atomic i32 %in, i32* %out syncscope("singlethread-one-as") monotonic, align 4
+ store atomic i32 %in, ptr %out syncscope("singlethread-one-as") monotonic, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32* %out) {
+ i32 %in, ptr %out) {
entry:
- store atomic i32 %in, i32* %out syncscope("singlethread-one-as") release, align 4
+ store atomic i32 %in, ptr %out syncscope("singlethread-one-as") release, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32* %out) {
+ i32 %in, ptr %out) {
entry:
- store atomic i32 %in, i32* %out syncscope("singlethread-one-as") seq_cst, align 4
+ store atomic i32 %in, ptr %out syncscope("singlethread-one-as") seq_cst, align 4
ret void
}
; GFX11-CU-NEXT: flat_atomic_swap_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in syncscope("singlethread-one-as") monotonic
+ %val = atomicrmw volatile xchg ptr %out, i32 %in syncscope("singlethread-one-as") monotonic
ret void
}
; GFX11-CU-NEXT: flat_atomic_swap_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in syncscope("singlethread-one-as") acquire
+ %val = atomicrmw volatile xchg ptr %out, i32 %in syncscope("singlethread-one-as") acquire
ret void
}
; GFX11-CU-NEXT: flat_atomic_swap_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in syncscope("singlethread-one-as") release
+ %val = atomicrmw volatile xchg ptr %out, i32 %in syncscope("singlethread-one-as") release
ret void
}
; GFX11-CU-NEXT: flat_atomic_swap_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in syncscope("singlethread-one-as") acq_rel
+ %val = atomicrmw volatile xchg ptr %out, i32 %in syncscope("singlethread-one-as") acq_rel
ret void
}
; GFX11-CU-NEXT: flat_atomic_swap_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in syncscope("singlethread-one-as") seq_cst
+ %val = atomicrmw volatile xchg ptr %out, i32 %in syncscope("singlethread-one-as") seq_cst
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in syncscope("singlethread-one-as") acquire
- store i32 %val, i32* %out, align 4
+ %val = atomicrmw volatile xchg ptr %out, i32 %in syncscope("singlethread-one-as") acquire
+ store i32 %val, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in syncscope("singlethread-one-as") acq_rel
- store i32 %val, i32* %out, align 4
+ %val = atomicrmw volatile xchg ptr %out, i32 %in syncscope("singlethread-one-as") acq_rel
+ store i32 %val, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in syncscope("singlethread-one-as") seq_cst
- store i32 %val, i32* %out, align 4
+ %val = atomicrmw volatile xchg ptr %out, i32 %in syncscope("singlethread-one-as") seq_cst
+ store i32 %val, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") monotonic monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("singlethread-one-as") monotonic monotonic
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") acquire monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("singlethread-one-as") acquire monotonic
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") release monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("singlethread-one-as") release monotonic
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") acq_rel monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("singlethread-one-as") acq_rel monotonic
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") seq_cst monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("singlethread-one-as") seq_cst monotonic
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") monotonic acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("singlethread-one-as") monotonic acquire
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") acquire acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("singlethread-one-as") acquire acquire
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") release acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("singlethread-one-as") release acquire
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") acq_rel acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("singlethread-one-as") acq_rel acquire
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") seq_cst acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("singlethread-one-as") seq_cst acquire
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") monotonic seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("singlethread-one-as") monotonic seq_cst
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") acquire seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("singlethread-one-as") acquire seq_cst
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") release seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("singlethread-one-as") release seq_cst
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") acq_rel seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("singlethread-one-as") acq_rel seq_cst
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") seq_cst seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("singlethread-one-as") seq_cst seq_cst
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") monotonic monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("singlethread-one-as") monotonic monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") acquire monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("singlethread-one-as") acquire monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") release monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("singlethread-one-as") release monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") acq_rel monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("singlethread-one-as") acq_rel monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") seq_cst monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("singlethread-one-as") seq_cst monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") monotonic acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("singlethread-one-as") monotonic acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") acquire acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("singlethread-one-as") acquire acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") release acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("singlethread-one-as") release acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") acq_rel acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("singlethread-one-as") acq_rel acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") seq_cst acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("singlethread-one-as") seq_cst acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") monotonic seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("singlethread-one-as") monotonic seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") acquire seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("singlethread-one-as") acquire seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") release seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("singlethread-one-as") release seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") acq_rel seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("singlethread-one-as") acq_rel seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") seq_cst seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("singlethread-one-as") seq_cst seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %in, i32* %out) {
+ ptr %in, ptr %out) {
entry:
- %val = load atomic i32, i32* %in unordered, align 4
- store i32 %val, i32* %out
+ %val = load atomic i32, ptr %in unordered, align 4
+ store i32 %val, ptr %out
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %in, i32* %out) {
+ ptr %in, ptr %out) {
entry:
- %val = load atomic i32, i32* %in monotonic, align 4
- store i32 %val, i32* %out
+ %val = load atomic i32, ptr %in monotonic, align 4
+ store i32 %val, ptr %out
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %in, i32* %out) {
+ ptr %in, ptr %out) {
entry:
- %val = load atomic i32, i32* %in acquire, align 4
- store i32 %val, i32* %out
+ %val = load atomic i32, ptr %in acquire, align 4
+ store i32 %val, ptr %out
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %in, i32* %out) {
+ ptr %in, ptr %out) {
entry:
- %val = load atomic i32, i32* %in seq_cst, align 4
- store i32 %val, i32* %out
+ %val = load atomic i32, ptr %in seq_cst, align 4
+ store i32 %val, ptr %out
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32* %out) {
+ i32 %in, ptr %out) {
entry:
- store atomic i32 %in, i32* %out unordered, align 4
+ store atomic i32 %in, ptr %out unordered, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32* %out) {
+ i32 %in, ptr %out) {
entry:
- store atomic i32 %in, i32* %out monotonic, align 4
+ store atomic i32 %in, ptr %out monotonic, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32* %out) {
+ i32 %in, ptr %out) {
entry:
- store atomic i32 %in, i32* %out release, align 4
+ store atomic i32 %in, ptr %out release, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32* %out) {
+ i32 %in, ptr %out) {
entry:
- store atomic i32 %in, i32* %out seq_cst, align 4
+ store atomic i32 %in, ptr %out seq_cst, align 4
ret void
}
; GFX11-CU-NEXT: flat_atomic_swap_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in monotonic
+ %val = atomicrmw volatile xchg ptr %out, i32 %in monotonic
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in acquire
+ %val = atomicrmw volatile xchg ptr %out, i32 %in acquire
ret void
}
; GFX11-CU-NEXT: flat_atomic_swap_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in release
+ %val = atomicrmw volatile xchg ptr %out, i32 %in release
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in acq_rel
+ %val = atomicrmw volatile xchg ptr %out, i32 %in acq_rel
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in seq_cst
+ %val = atomicrmw volatile xchg ptr %out, i32 %in seq_cst
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in acquire
- store i32 %val, i32* %out, align 4
+ %val = atomicrmw volatile xchg ptr %out, i32 %in acquire
+ store i32 %val, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in acq_rel
- store i32 %val, i32* %out, align 4
+ %val = atomicrmw volatile xchg ptr %out, i32 %in acq_rel
+ store i32 %val, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in seq_cst
- store i32 %val, i32* %out, align 4
+ %val = atomicrmw volatile xchg ptr %out, i32 %in seq_cst
+ store i32 %val, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in monotonic monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in monotonic monotonic
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in acquire monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in acquire monotonic
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in release monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in release monotonic
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in acq_rel monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in acq_rel monotonic
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in seq_cst monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in seq_cst monotonic
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in monotonic acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in monotonic acquire
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in acquire acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in acquire acquire
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in release acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in release acquire
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in acq_rel acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in acq_rel acquire
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in seq_cst acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in seq_cst acquire
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in monotonic seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in monotonic seq_cst
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in acquire seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in acquire seq_cst
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in release seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in release seq_cst
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in acq_rel seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in acq_rel seq_cst
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in seq_cst seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in seq_cst seq_cst
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in monotonic monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in monotonic monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in acquire monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in acquire monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in release monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in release monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in acq_rel monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in acq_rel monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in seq_cst monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in seq_cst monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in monotonic acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in monotonic acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in acquire acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in acquire acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in release acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in release acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in acq_rel acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in acq_rel acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in seq_cst acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in seq_cst acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in monotonic seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in monotonic seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in acquire seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in acquire seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in release seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in release seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in acq_rel seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in acq_rel seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in seq_cst seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in seq_cst seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %in, i32* %out) {
+ ptr %in, ptr %out) {
entry:
- %val = load atomic i32, i32* %in syncscope("one-as") unordered, align 4
- store i32 %val, i32* %out
+ %val = load atomic i32, ptr %in syncscope("one-as") unordered, align 4
+ store i32 %val, ptr %out
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %in, i32* %out) {
+ ptr %in, ptr %out) {
entry:
- %val = load atomic i32, i32* %in syncscope("one-as") monotonic, align 4
- store i32 %val, i32* %out
+ %val = load atomic i32, ptr %in syncscope("one-as") monotonic, align 4
+ store i32 %val, ptr %out
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %in, i32* %out) {
+ ptr %in, ptr %out) {
entry:
- %val = load atomic i32, i32* %in syncscope("one-as") acquire, align 4
- store i32 %val, i32* %out
+ %val = load atomic i32, ptr %in syncscope("one-as") acquire, align 4
+ store i32 %val, ptr %out
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %in, i32* %out) {
+ ptr %in, ptr %out) {
entry:
- %val = load atomic i32, i32* %in syncscope("one-as") seq_cst, align 4
- store i32 %val, i32* %out
+ %val = load atomic i32, ptr %in syncscope("one-as") seq_cst, align 4
+ store i32 %val, ptr %out
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32* %out) {
+ i32 %in, ptr %out) {
entry:
- store atomic i32 %in, i32* %out syncscope("one-as") unordered, align 4
+ store atomic i32 %in, ptr %out syncscope("one-as") unordered, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32* %out) {
+ i32 %in, ptr %out) {
entry:
- store atomic i32 %in, i32* %out syncscope("one-as") monotonic, align 4
+ store atomic i32 %in, ptr %out syncscope("one-as") monotonic, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32* %out) {
+ i32 %in, ptr %out) {
entry:
- store atomic i32 %in, i32* %out syncscope("one-as") release, align 4
+ store atomic i32 %in, ptr %out syncscope("one-as") release, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32* %out) {
+ i32 %in, ptr %out) {
entry:
- store atomic i32 %in, i32* %out syncscope("one-as") seq_cst, align 4
+ store atomic i32 %in, ptr %out syncscope("one-as") seq_cst, align 4
ret void
}
; GFX11-CU-NEXT: flat_atomic_swap_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in syncscope("one-as") monotonic
+ %val = atomicrmw volatile xchg ptr %out, i32 %in syncscope("one-as") monotonic
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in syncscope("one-as") acquire
+ %val = atomicrmw volatile xchg ptr %out, i32 %in syncscope("one-as") acquire
ret void
}
; GFX11-CU-NEXT: flat_atomic_swap_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in syncscope("one-as") release
+ %val = atomicrmw volatile xchg ptr %out, i32 %in syncscope("one-as") release
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in syncscope("one-as") acq_rel
+ %val = atomicrmw volatile xchg ptr %out, i32 %in syncscope("one-as") acq_rel
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in syncscope("one-as") seq_cst
+ %val = atomicrmw volatile xchg ptr %out, i32 %in syncscope("one-as") seq_cst
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in syncscope("one-as") acquire
- store i32 %val, i32* %out, align 4
+ %val = atomicrmw volatile xchg ptr %out, i32 %in syncscope("one-as") acquire
+ store i32 %val, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in syncscope("one-as") acq_rel
- store i32 %val, i32* %out, align 4
+ %val = atomicrmw volatile xchg ptr %out, i32 %in syncscope("one-as") acq_rel
+ store i32 %val, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in syncscope("one-as") seq_cst
- store i32 %val, i32* %out, align 4
+ %val = atomicrmw volatile xchg ptr %out, i32 %in syncscope("one-as") seq_cst
+ store i32 %val, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("one-as") monotonic monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("one-as") monotonic monotonic
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("one-as") acquire monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("one-as") acquire monotonic
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("one-as") release monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("one-as") release monotonic
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("one-as") acq_rel monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("one-as") acq_rel monotonic
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("one-as") seq_cst monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("one-as") seq_cst monotonic
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("one-as") monotonic acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("one-as") monotonic acquire
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("one-as") acquire acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("one-as") acquire acquire
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("one-as") release acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("one-as") release acquire
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("one-as") acq_rel acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("one-as") acq_rel acquire
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("one-as") seq_cst acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("one-as") seq_cst acquire
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("one-as") monotonic seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("one-as") monotonic seq_cst
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("one-as") acquire seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("one-as") acquire seq_cst
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("one-as") release seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("one-as") release seq_cst
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("one-as") acq_rel seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("one-as") acq_rel seq_cst
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("one-as") seq_cst seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("one-as") seq_cst seq_cst
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("one-as") monotonic monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("one-as") monotonic monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("one-as") acquire monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("one-as") acquire monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("one-as") release monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("one-as") release monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("one-as") acq_rel monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("one-as") acq_rel monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("one-as") seq_cst monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("one-as") seq_cst monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("one-as") monotonic acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("one-as") monotonic acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("one-as") acquire acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("one-as") acquire acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("one-as") release acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("one-as") release acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("one-as") acq_rel acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("one-as") acq_rel acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("one-as") seq_cst acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("one-as") seq_cst acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("one-as") monotonic seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("one-as") monotonic seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("one-as") acquire seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("one-as") acquire seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("one-as") release seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("one-as") release seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("one-as") acq_rel seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("one-as") acq_rel seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("one-as") seq_cst seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("one-as") seq_cst seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %in, i32* %out) {
+ ptr %in, ptr %out) {
entry:
- %val = load volatile i32, i32* %in, align 4
- store i32 %val, i32* %out
+ %val = load volatile i32, ptr %in, align 4
+ store i32 %val, ptr %out
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %in, i32* %out) {
+ ptr %in, ptr %out) {
entry:
%tid = call i32 @llvm.amdgcn.workitem.id.x()
- %val.gep = getelementptr inbounds i32, i32* %in, i32 %tid
- %val = load volatile i32, i32* %val.gep, align 4
- store i32 %val, i32* %out
+ %val.gep = getelementptr inbounds i32, ptr %in, i32 %tid
+ %val = load volatile i32, ptr %val.gep, align 4
+ store i32 %val, ptr %out
ret void
}
; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %in, i32* %out) {
+ ptr %in, ptr %out) {
entry:
- %val = load i32, i32* %in, align 4
- store volatile i32 %val, i32* %out
+ %val = load i32, ptr %in, align 4
+ store volatile i32 %val, ptr %out
ret void
}
; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %in, i32* %out) {
+ ptr %in, ptr %out) {
entry:
%tid = call i32 @llvm.amdgcn.workitem.id.x()
- %val = load i32, i32* %in, align 4
- %out.gep = getelementptr inbounds i32, i32* %out, i32 %tid
- store volatile i32 %val, i32* %out.gep
+ %val = load i32, ptr %in, align 4
+ %out.gep = getelementptr inbounds i32, ptr %out, i32 %tid
+ store volatile i32 %val, ptr %out.gep
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %in, i32* %out) {
+ ptr %in, ptr %out) {
entry:
- %val = load atomic volatile i32, i32* %in syncscope("workgroup") acquire, align 4
- store i32 %val, i32* %out
+ %val = load atomic volatile i32, ptr %in syncscope("workgroup") acquire, align 4
+ store i32 %val, ptr %out
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32* %out) {
+ i32 %in, ptr %out) {
entry:
- store atomic volatile i32 %in, i32* %out syncscope("workgroup") release, align 4
+ store atomic volatile i32 %in, ptr %out syncscope("workgroup") release, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %in, i32* %out) {
+ ptr %in, ptr %out) {
entry:
- %val = load atomic i32, i32* %in syncscope("wavefront") unordered, align 4
- store i32 %val, i32* %out
+ %val = load atomic i32, ptr %in syncscope("wavefront") unordered, align 4
+ store i32 %val, ptr %out
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %in, i32* %out) {
+ ptr %in, ptr %out) {
entry:
- %val = load atomic i32, i32* %in syncscope("wavefront") monotonic, align 4
- store i32 %val, i32* %out
+ %val = load atomic i32, ptr %in syncscope("wavefront") monotonic, align 4
+ store i32 %val, ptr %out
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %in, i32* %out) {
+ ptr %in, ptr %out) {
entry:
- %val = load atomic i32, i32* %in syncscope("wavefront") acquire, align 4
- store i32 %val, i32* %out
+ %val = load atomic i32, ptr %in syncscope("wavefront") acquire, align 4
+ store i32 %val, ptr %out
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %in, i32* %out) {
+ ptr %in, ptr %out) {
entry:
- %val = load atomic i32, i32* %in syncscope("wavefront") seq_cst, align 4
- store i32 %val, i32* %out
+ %val = load atomic i32, ptr %in syncscope("wavefront") seq_cst, align 4
+ store i32 %val, ptr %out
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32* %out) {
+ i32 %in, ptr %out) {
entry:
- store atomic i32 %in, i32* %out syncscope("wavefront") unordered, align 4
+ store atomic i32 %in, ptr %out syncscope("wavefront") unordered, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32* %out) {
+ i32 %in, ptr %out) {
entry:
- store atomic i32 %in, i32* %out syncscope("wavefront") monotonic, align 4
+ store atomic i32 %in, ptr %out syncscope("wavefront") monotonic, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32* %out) {
+ i32 %in, ptr %out) {
entry:
- store atomic i32 %in, i32* %out syncscope("wavefront") release, align 4
+ store atomic i32 %in, ptr %out syncscope("wavefront") release, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32* %out) {
+ i32 %in, ptr %out) {
entry:
- store atomic i32 %in, i32* %out syncscope("wavefront") seq_cst, align 4
+ store atomic i32 %in, ptr %out syncscope("wavefront") seq_cst, align 4
ret void
}
; GFX11-CU-NEXT: flat_atomic_swap_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in syncscope("wavefront") monotonic
+ %val = atomicrmw volatile xchg ptr %out, i32 %in syncscope("wavefront") monotonic
ret void
}
; GFX11-CU-NEXT: flat_atomic_swap_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in syncscope("wavefront") acquire
+ %val = atomicrmw volatile xchg ptr %out, i32 %in syncscope("wavefront") acquire
ret void
}
; GFX11-CU-NEXT: flat_atomic_swap_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in syncscope("wavefront") release
+ %val = atomicrmw volatile xchg ptr %out, i32 %in syncscope("wavefront") release
ret void
}
; GFX11-CU-NEXT: flat_atomic_swap_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in syncscope("wavefront") acq_rel
+ %val = atomicrmw volatile xchg ptr %out, i32 %in syncscope("wavefront") acq_rel
ret void
}
; GFX11-CU-NEXT: flat_atomic_swap_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in syncscope("wavefront") seq_cst
+ %val = atomicrmw volatile xchg ptr %out, i32 %in syncscope("wavefront") seq_cst
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in syncscope("wavefront") acquire
- store i32 %val, i32* %out, align 4
+ %val = atomicrmw volatile xchg ptr %out, i32 %in syncscope("wavefront") acquire
+ store i32 %val, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in syncscope("wavefront") acq_rel
- store i32 %val, i32* %out, align 4
+ %val = atomicrmw volatile xchg ptr %out, i32 %in syncscope("wavefront") acq_rel
+ store i32 %val, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in syncscope("wavefront") seq_cst
- store i32 %val, i32* %out, align 4
+ %val = atomicrmw volatile xchg ptr %out, i32 %in syncscope("wavefront") seq_cst
+ store i32 %val, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("wavefront") monotonic monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("wavefront") monotonic monotonic
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("wavefront") acquire monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("wavefront") acquire monotonic
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("wavefront") release monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("wavefront") release monotonic
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("wavefront") acq_rel monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("wavefront") acq_rel monotonic
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("wavefront") seq_cst monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("wavefront") seq_cst monotonic
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("wavefront") monotonic acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("wavefront") monotonic acquire
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("wavefront") acquire acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("wavefront") acquire acquire
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("wavefront") release acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("wavefront") release acquire
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("wavefront") acq_rel acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("wavefront") acq_rel acquire
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("wavefront") seq_cst acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("wavefront") seq_cst acquire
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("wavefront") monotonic seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("wavefront") monotonic seq_cst
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("wavefront") acquire seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("wavefront") acquire seq_cst
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("wavefront") release seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("wavefront") release seq_cst
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("wavefront") acq_rel seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("wavefront") acq_rel seq_cst
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("wavefront") seq_cst seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("wavefront") seq_cst seq_cst
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("wavefront") monotonic monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("wavefront") monotonic monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("wavefront") acquire monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("wavefront") acquire monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("wavefront") release monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("wavefront") release monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("wavefront") acq_rel monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("wavefront") acq_rel monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("wavefront") seq_cst monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("wavefront") seq_cst monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("wavefront") monotonic acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("wavefront") monotonic acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("wavefront") acquire acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("wavefront") acquire acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("wavefront") release acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("wavefront") release acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("wavefront") acq_rel acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("wavefront") acq_rel acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("wavefront") seq_cst acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("wavefront") seq_cst acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("wavefront") monotonic seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("wavefront") monotonic seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("wavefront") acquire seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("wavefront") acquire seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("wavefront") release seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("wavefront") release seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("wavefront") acq_rel seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("wavefront") acq_rel seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("wavefront") seq_cst seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("wavefront") seq_cst seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %in, i32* %out) {
+ ptr %in, ptr %out) {
entry:
- %val = load atomic i32, i32* %in syncscope("wavefront-one-as") unordered, align 4
- store i32 %val, i32* %out
+ %val = load atomic i32, ptr %in syncscope("wavefront-one-as") unordered, align 4
+ store i32 %val, ptr %out
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %in, i32* %out) {
+ ptr %in, ptr %out) {
entry:
- %val = load atomic i32, i32* %in syncscope("wavefront-one-as") monotonic, align 4
- store i32 %val, i32* %out
+ %val = load atomic i32, ptr %in syncscope("wavefront-one-as") monotonic, align 4
+ store i32 %val, ptr %out
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %in, i32* %out) {
+ ptr %in, ptr %out) {
entry:
- %val = load atomic i32, i32* %in syncscope("wavefront-one-as") acquire, align 4
- store i32 %val, i32* %out
+ %val = load atomic i32, ptr %in syncscope("wavefront-one-as") acquire, align 4
+ store i32 %val, ptr %out
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %in, i32* %out) {
+ ptr %in, ptr %out) {
entry:
- %val = load atomic i32, i32* %in syncscope("wavefront-one-as") seq_cst, align 4
- store i32 %val, i32* %out
+ %val = load atomic i32, ptr %in syncscope("wavefront-one-as") seq_cst, align 4
+ store i32 %val, ptr %out
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32* %out) {
+ i32 %in, ptr %out) {
entry:
- store atomic i32 %in, i32* %out syncscope("wavefront-one-as") unordered, align 4
+ store atomic i32 %in, ptr %out syncscope("wavefront-one-as") unordered, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32* %out) {
+ i32 %in, ptr %out) {
entry:
- store atomic i32 %in, i32* %out syncscope("wavefront-one-as") monotonic, align 4
+ store atomic i32 %in, ptr %out syncscope("wavefront-one-as") monotonic, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32* %out) {
+ i32 %in, ptr %out) {
entry:
- store atomic i32 %in, i32* %out syncscope("wavefront-one-as") release, align 4
+ store atomic i32 %in, ptr %out syncscope("wavefront-one-as") release, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32* %out) {
+ i32 %in, ptr %out) {
entry:
- store atomic i32 %in, i32* %out syncscope("wavefront-one-as") seq_cst, align 4
+ store atomic i32 %in, ptr %out syncscope("wavefront-one-as") seq_cst, align 4
ret void
}
; GFX11-CU-NEXT: flat_atomic_swap_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in syncscope("wavefront-one-as") monotonic
+ %val = atomicrmw volatile xchg ptr %out, i32 %in syncscope("wavefront-one-as") monotonic
ret void
}
; GFX11-CU-NEXT: flat_atomic_swap_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in syncscope("wavefront-one-as") acquire
+ %val = atomicrmw volatile xchg ptr %out, i32 %in syncscope("wavefront-one-as") acquire
ret void
}
; GFX11-CU-NEXT: flat_atomic_swap_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in syncscope("wavefront-one-as") release
+ %val = atomicrmw volatile xchg ptr %out, i32 %in syncscope("wavefront-one-as") release
ret void
}
; GFX11-CU-NEXT: flat_atomic_swap_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in syncscope("wavefront-one-as") acq_rel
+ %val = atomicrmw volatile xchg ptr %out, i32 %in syncscope("wavefront-one-as") acq_rel
ret void
}
; GFX11-CU-NEXT: flat_atomic_swap_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in syncscope("wavefront-one-as") seq_cst
+ %val = atomicrmw volatile xchg ptr %out, i32 %in syncscope("wavefront-one-as") seq_cst
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in syncscope("wavefront-one-as") acquire
- store i32 %val, i32* %out, align 4
+ %val = atomicrmw volatile xchg ptr %out, i32 %in syncscope("wavefront-one-as") acquire
+ store i32 %val, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in syncscope("wavefront-one-as") acq_rel
- store i32 %val, i32* %out, align 4
+ %val = atomicrmw volatile xchg ptr %out, i32 %in syncscope("wavefront-one-as") acq_rel
+ store i32 %val, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in syncscope("wavefront-one-as") seq_cst
- store i32 %val, i32* %out, align 4
+ %val = atomicrmw volatile xchg ptr %out, i32 %in syncscope("wavefront-one-as") seq_cst
+ store i32 %val, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") monotonic monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("wavefront-one-as") monotonic monotonic
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") acquire monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("wavefront-one-as") acquire monotonic
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") release monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("wavefront-one-as") release monotonic
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") acq_rel monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("wavefront-one-as") acq_rel monotonic
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") seq_cst monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("wavefront-one-as") seq_cst monotonic
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") monotonic acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("wavefront-one-as") monotonic acquire
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") acquire acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("wavefront-one-as") acquire acquire
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") release acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("wavefront-one-as") release acquire
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") acq_rel acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("wavefront-one-as") acq_rel acquire
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") seq_cst acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("wavefront-one-as") seq_cst acquire
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") monotonic seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("wavefront-one-as") monotonic seq_cst
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") acquire seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("wavefront-one-as") acquire seq_cst
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") release seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("wavefront-one-as") release seq_cst
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") acq_rel seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("wavefront-one-as") acq_rel seq_cst
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") seq_cst seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("wavefront-one-as") seq_cst seq_cst
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") monotonic monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("wavefront-one-as") monotonic monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") acquire monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("wavefront-one-as") acquire monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") acq_rel monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("wavefront-one-as") acq_rel monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") seq_cst monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("wavefront-one-as") seq_cst monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") monotonic acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("wavefront-one-as") monotonic acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") acquire acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("wavefront-one-as") acquire acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") release acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("wavefront-one-as") release acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") acq_rel acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("wavefront-one-as") acq_rel acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") seq_cst acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("wavefront-one-as") seq_cst acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") monotonic seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("wavefront-one-as") monotonic seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") acquire seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("wavefront-one-as") acquire seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") release seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("wavefront-one-as") release seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") acq_rel seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("wavefront-one-as") acq_rel seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") seq_cst seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("wavefront-one-as") seq_cst seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %in, i32* %out) {
+ ptr %in, ptr %out) {
entry:
- %val = load atomic i32, i32* %in syncscope("workgroup") unordered, align 4
- store i32 %val, i32* %out
+ %val = load atomic i32, ptr %in syncscope("workgroup") unordered, align 4
+ store i32 %val, ptr %out
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %in, i32* %out) {
+ ptr %in, ptr %out) {
entry:
- %val = load atomic i32, i32* %in syncscope("workgroup") monotonic, align 4
- store i32 %val, i32* %out
+ %val = load atomic i32, ptr %in syncscope("workgroup") monotonic, align 4
+ store i32 %val, ptr %out
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %in, i32* %out) {
+ ptr %in, ptr %out) {
entry:
- %val = load atomic i32, i32* %in syncscope("workgroup") acquire, align 4
- store i32 %val, i32* %out
+ %val = load atomic i32, ptr %in syncscope("workgroup") acquire, align 4
+ store i32 %val, ptr %out
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %in, i32* %out) {
+ ptr %in, ptr %out) {
entry:
- %val = load atomic i32, i32* %in syncscope("workgroup") seq_cst, align 4
- store i32 %val, i32* %out
+ %val = load atomic i32, ptr %in syncscope("workgroup") seq_cst, align 4
+ store i32 %val, ptr %out
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32* %out) {
+ i32 %in, ptr %out) {
entry:
- store atomic i32 %in, i32* %out syncscope("workgroup") unordered, align 4
+ store atomic i32 %in, ptr %out syncscope("workgroup") unordered, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32* %out) {
+ i32 %in, ptr %out) {
entry:
- store atomic i32 %in, i32* %out syncscope("workgroup") monotonic, align 4
+ store atomic i32 %in, ptr %out syncscope("workgroup") monotonic, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32* %out) {
+ i32 %in, ptr %out) {
entry:
- store atomic i32 %in, i32* %out syncscope("workgroup") release, align 4
+ store atomic i32 %in, ptr %out syncscope("workgroup") release, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32* %out) {
+ i32 %in, ptr %out) {
entry:
- store atomic i32 %in, i32* %out syncscope("workgroup") seq_cst, align 4
+ store atomic i32 %in, ptr %out syncscope("workgroup") seq_cst, align 4
ret void
}
; GFX11-CU-NEXT: flat_atomic_swap_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in syncscope("workgroup") monotonic
+ %val = atomicrmw volatile xchg ptr %out, i32 %in syncscope("workgroup") monotonic
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in syncscope("workgroup") acquire
+ %val = atomicrmw volatile xchg ptr %out, i32 %in syncscope("workgroup") acquire
ret void
}
; GFX11-CU-NEXT: flat_atomic_swap_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in syncscope("workgroup") release
+ %val = atomicrmw volatile xchg ptr %out, i32 %in syncscope("workgroup") release
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in syncscope("workgroup") acq_rel
+ %val = atomicrmw volatile xchg ptr %out, i32 %in syncscope("workgroup") acq_rel
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in syncscope("workgroup") seq_cst
+ %val = atomicrmw volatile xchg ptr %out, i32 %in syncscope("workgroup") seq_cst
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in syncscope("workgroup") acquire
- store i32 %val, i32* %out, align 4
+ %val = atomicrmw volatile xchg ptr %out, i32 %in syncscope("workgroup") acquire
+ store i32 %val, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in syncscope("workgroup") acq_rel
- store i32 %val, i32* %out, align 4
+ %val = atomicrmw volatile xchg ptr %out, i32 %in syncscope("workgroup") acq_rel
+ store i32 %val, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in syncscope("workgroup") seq_cst
- store i32 %val, i32* %out, align 4
+ %val = atomicrmw volatile xchg ptr %out, i32 %in syncscope("workgroup") seq_cst
+ store i32 %val, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("workgroup") monotonic monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("workgroup") monotonic monotonic
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("workgroup") acquire monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("workgroup") acquire monotonic
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("workgroup") release monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("workgroup") release monotonic
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("workgroup") acq_rel monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("workgroup") acq_rel monotonic
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("workgroup") seq_cst monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("workgroup") seq_cst monotonic
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("workgroup") monotonic acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("workgroup") monotonic acquire
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("workgroup") acquire acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("workgroup") acquire acquire
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("workgroup") release acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("workgroup") release acquire
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("workgroup") acq_rel acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("workgroup") acq_rel acquire
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("workgroup") seq_cst acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("workgroup") seq_cst acquire
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("workgroup") seq_cst seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("workgroup") seq_cst seq_cst
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("workgroup") monotonic monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("workgroup") monotonic monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("workgroup") acquire monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("workgroup") acquire monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("workgroup") release monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("workgroup") release monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("workgroup") acq_rel monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("workgroup") acq_rel monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("workgroup") seq_cst monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("workgroup") seq_cst monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("workgroup") monotonic acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("workgroup") monotonic acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("workgroup") acquire acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("workgroup") acquire acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("workgroup") release acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("workgroup") release acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("workgroup") acq_rel acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("workgroup") acq_rel acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("workgroup") seq_cst acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("workgroup") seq_cst acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("workgroup") monotonic seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("workgroup") monotonic seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("workgroup") acquire seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("workgroup") acquire seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("workgroup") release seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("workgroup") release seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("workgroup") acq_rel seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("workgroup") acq_rel seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("workgroup") seq_cst seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("workgroup") seq_cst seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %in, i32* %out) {
+ ptr %in, ptr %out) {
entry:
- %val = load atomic i32, i32* %in syncscope("workgroup-one-as") unordered, align 4
- store i32 %val, i32* %out
+ %val = load atomic i32, ptr %in syncscope("workgroup-one-as") unordered, align 4
+ store i32 %val, ptr %out
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %in, i32* %out) {
+ ptr %in, ptr %out) {
entry:
- %val = load atomic i32, i32* %in syncscope("workgroup-one-as") monotonic, align 4
- store i32 %val, i32* %out
+ %val = load atomic i32, ptr %in syncscope("workgroup-one-as") monotonic, align 4
+ store i32 %val, ptr %out
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %in, i32* %out) {
+ ptr %in, ptr %out) {
entry:
- %val = load atomic i32, i32* %in syncscope("workgroup-one-as") acquire, align 4
- store i32 %val, i32* %out
+ %val = load atomic i32, ptr %in syncscope("workgroup-one-as") acquire, align 4
+ store i32 %val, ptr %out
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %in, i32* %out) {
+ ptr %in, ptr %out) {
entry:
- %val = load atomic i32, i32* %in syncscope("workgroup-one-as") seq_cst, align 4
- store i32 %val, i32* %out
+ %val = load atomic i32, ptr %in syncscope("workgroup-one-as") seq_cst, align 4
+ store i32 %val, ptr %out
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32* %out) {
+ i32 %in, ptr %out) {
entry:
- store atomic i32 %in, i32* %out syncscope("workgroup-one-as") unordered, align 4
+ store atomic i32 %in, ptr %out syncscope("workgroup-one-as") unordered, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32* %out) {
+ i32 %in, ptr %out) {
entry:
- store atomic i32 %in, i32* %out syncscope("workgroup-one-as") monotonic, align 4
+ store atomic i32 %in, ptr %out syncscope("workgroup-one-as") monotonic, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32* %out) {
+ i32 %in, ptr %out) {
entry:
- store atomic i32 %in, i32* %out syncscope("workgroup-one-as") release, align 4
+ store atomic i32 %in, ptr %out syncscope("workgroup-one-as") release, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32* %out) {
+ i32 %in, ptr %out) {
entry:
- store atomic i32 %in, i32* %out syncscope("workgroup-one-as") seq_cst, align 4
+ store atomic i32 %in, ptr %out syncscope("workgroup-one-as") seq_cst, align 4
ret void
}
; GFX11-CU-NEXT: flat_atomic_swap_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in syncscope("workgroup-one-as") monotonic
+ %val = atomicrmw volatile xchg ptr %out, i32 %in syncscope("workgroup-one-as") monotonic
ret void
}
; GFX11-CU-NEXT: flat_atomic_swap_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in syncscope("workgroup-one-as") acquire
+ %val = atomicrmw volatile xchg ptr %out, i32 %in syncscope("workgroup-one-as") acquire
ret void
}
; GFX11-CU-NEXT: flat_atomic_swap_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in syncscope("workgroup-one-as") release
+ %val = atomicrmw volatile xchg ptr %out, i32 %in syncscope("workgroup-one-as") release
ret void
}
; GFX11-CU-NEXT: flat_atomic_swap_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in syncscope("workgroup-one-as") acq_rel
+ %val = atomicrmw volatile xchg ptr %out, i32 %in syncscope("workgroup-one-as") acq_rel
ret void
}
; GFX11-CU-NEXT: flat_atomic_swap_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in syncscope("workgroup-one-as") seq_cst
+ %val = atomicrmw volatile xchg ptr %out, i32 %in syncscope("workgroup-one-as") seq_cst
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in syncscope("workgroup-one-as") acquire
- store i32 %val, i32* %out, align 4
+ %val = atomicrmw volatile xchg ptr %out, i32 %in syncscope("workgroup-one-as") acquire
+ store i32 %val, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in syncscope("workgroup-one-as") acq_rel
- store i32 %val, i32* %out, align 4
+ %val = atomicrmw volatile xchg ptr %out, i32 %in syncscope("workgroup-one-as") acq_rel
+ store i32 %val, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in syncscope("workgroup-one-as") seq_cst
- store i32 %val, i32* %out, align 4
+ %val = atomicrmw volatile xchg ptr %out, i32 %in syncscope("workgroup-one-as") seq_cst
+ store i32 %val, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") monotonic monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("workgroup-one-as") monotonic monotonic
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") acquire monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("workgroup-one-as") acquire monotonic
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") release monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("workgroup-one-as") release monotonic
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") acq_rel monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("workgroup-one-as") acq_rel monotonic
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") seq_cst monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("workgroup-one-as") seq_cst monotonic
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") monotonic acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("workgroup-one-as") monotonic acquire
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") acquire acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("workgroup-one-as") acquire acquire
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") release acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("workgroup-one-as") release acquire
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") acq_rel acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("workgroup-one-as") acq_rel acquire
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") seq_cst acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("workgroup-one-as") seq_cst acquire
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") monotonic seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("workgroup-one-as") monotonic seq_cst
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") acquire seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("workgroup-one-as") acquire seq_cst
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") release seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("workgroup-one-as") release seq_cst
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") acq_rel seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("workgroup-one-as") acq_rel seq_cst
ret void
}
; GFX11-CU-NEXT: flat_atomic_cmpswap_b32 v[0:1], v[2:3] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") seq_cst seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("workgroup-one-as") seq_cst seq_cst
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") monotonic monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("workgroup-one-as") monotonic monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") acquire monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("workgroup-one-as") acquire monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") release monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("workgroup-one-as") release monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") acq_rel monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("workgroup-one-as") acq_rel monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") seq_cst monotonic
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("workgroup-one-as") seq_cst monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") monotonic acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("workgroup-one-as") monotonic acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") acquire acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("workgroup-one-as") acquire acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") release acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("workgroup-one-as") release acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") acq_rel acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("workgroup-one-as") acq_rel acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") seq_cst acquire
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("workgroup-one-as") seq_cst acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") monotonic seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("workgroup-one-as") monotonic seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") acquire seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("workgroup-one-as") acquire seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") release seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("workgroup-one-as") release seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") acq_rel seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("workgroup-one-as") acq_rel seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: flat_store_b32 v[0:1], v2
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") seq_cst seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("workgroup-one-as") seq_cst seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32* %out, align 4
+ store i32 %val0, ptr %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[2:3]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %in, i32 addrspace(1)* %out) {
+ ptr addrspace(1) %in, ptr addrspace(1) %out) {
entry:
- %val = load atomic i32, i32 addrspace(1)* %in syncscope("agent") unordered, align 4
- store i32 %val, i32 addrspace(1)* %out
+ %val = load atomic i32, ptr addrspace(1) %in syncscope("agent") unordered, align 4
+ store i32 %val, ptr addrspace(1) %out
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[2:3]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %in, i32 addrspace(1)* %out) {
+ ptr addrspace(1) %in, ptr addrspace(1) %out) {
entry:
- %val = load atomic i32, i32 addrspace(1)* %in syncscope("agent") monotonic, align 4
- store i32 %val, i32 addrspace(1)* %out
+ %val = load atomic i32, ptr addrspace(1) %in syncscope("agent") monotonic, align 4
+ store i32 %val, ptr addrspace(1) %out
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[2:3]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %in, i32 addrspace(1)* %out) {
+ ptr addrspace(1) %in, ptr addrspace(1) %out) {
entry:
- %val = load atomic i32, i32 addrspace(1)* %in syncscope("agent") acquire, align 4
- store i32 %val, i32 addrspace(1)* %out
+ %val = load atomic i32, ptr addrspace(1) %in syncscope("agent") acquire, align 4
+ store i32 %val, ptr addrspace(1) %out
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[2:3]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %in, i32 addrspace(1)* %out) {
+ ptr addrspace(1) %in, ptr addrspace(1) %out) {
entry:
- %val = load atomic i32, i32 addrspace(1)* %in syncscope("agent") seq_cst, align 4
- store i32 %val, i32 addrspace(1)* %out
+ %val = load atomic i32, ptr addrspace(1) %in syncscope("agent") seq_cst, align 4
+ store i32 %val, ptr addrspace(1) %out
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(1)* %out) {
+ i32 %in, ptr addrspace(1) %out) {
entry:
- store atomic i32 %in, i32 addrspace(1)* %out syncscope("agent") unordered, align 4
+ store atomic i32 %in, ptr addrspace(1) %out syncscope("agent") unordered, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(1)* %out) {
+ i32 %in, ptr addrspace(1) %out) {
entry:
- store atomic i32 %in, i32 addrspace(1)* %out syncscope("agent") monotonic, align 4
+ store atomic i32 %in, ptr addrspace(1) %out syncscope("agent") monotonic, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(1)* %out) {
+ i32 %in, ptr addrspace(1) %out) {
entry:
- store atomic i32 %in, i32 addrspace(1)* %out syncscope("agent") release, align 4
+ store atomic i32 %in, ptr addrspace(1) %out syncscope("agent") release, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(1)* %out) {
+ i32 %in, ptr addrspace(1) %out) {
entry:
- store atomic i32 %in, i32 addrspace(1)* %out syncscope("agent") seq_cst, align 4
+ store atomic i32 %in, ptr addrspace(1) %out syncscope("agent") seq_cst, align 4
ret void
}
; GFX11-CU-NEXT: global_atomic_swap_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in syncscope("agent") monotonic
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in syncscope("agent") monotonic
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in syncscope("agent") acquire
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in syncscope("agent") acquire
ret void
}
; GFX11-CU-NEXT: global_atomic_swap_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in syncscope("agent") release
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in syncscope("agent") release
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in syncscope("agent") acq_rel
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in syncscope("agent") acq_rel
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in syncscope("agent") seq_cst
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in syncscope("agent") seq_cst
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in syncscope("agent") acquire
- store i32 %val, i32 addrspace(1)* %out, align 4
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in syncscope("agent") acquire
+ store i32 %val, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in syncscope("agent") acq_rel
- store i32 %val, i32 addrspace(1)* %out, align 4
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in syncscope("agent") acq_rel
+ store i32 %val, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in syncscope("agent") seq_cst
- store i32 %val, i32 addrspace(1)* %out, align 4
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in syncscope("agent") seq_cst
+ store i32 %val, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("agent") monotonic monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("agent") monotonic monotonic
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("agent") acquire monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("agent") acquire monotonic
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("agent") release monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("agent") release monotonic
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("agent") acq_rel monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("agent") acq_rel monotonic
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("agent") seq_cst monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("agent") seq_cst monotonic
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("agent") monotonic acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("agent") monotonic acquire
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("agent") acquire acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("agent") acquire acquire
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("agent") release acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("agent") release acquire
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("agent") acq_rel acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("agent") acq_rel acquire
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("agent") seq_cst acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("agent") seq_cst acquire
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("agent") monotonic seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("agent") monotonic seq_cst
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("agent") acquire seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("agent") acquire seq_cst
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("agent") release seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("agent") release seq_cst
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("agent") acq_rel seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("agent") acq_rel seq_cst
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("agent") seq_cst seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("agent") seq_cst seq_cst
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("agent") monotonic monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("agent") monotonic monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("agent") acquire monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("agent") acquire monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("agent") release monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("agent") release monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("agent") acq_rel monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("agent") acq_rel monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("agent") seq_cst monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("agent") seq_cst monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("agent") monotonic acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("agent") monotonic acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("agent") acquire acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("agent") acquire acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("agent") release acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("agent") release acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("agent") acq_rel acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("agent") acq_rel acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("agent") seq_cst acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("agent") seq_cst acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("agent") monotonic seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("agent") monotonic seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("agent") acquire seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("agent") acquire seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("agent") release seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("agent") release seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("agent") acq_rel seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("agent") acq_rel seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("agent") seq_cst seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("agent") seq_cst seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[2:3]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %in, i32 addrspace(1)* %out) {
+ ptr addrspace(1) %in, ptr addrspace(1) %out) {
entry:
- %val = load atomic i32, i32 addrspace(1)* %in syncscope("agent-one-as") unordered, align 4
- store i32 %val, i32 addrspace(1)* %out
+ %val = load atomic i32, ptr addrspace(1) %in syncscope("agent-one-as") unordered, align 4
+ store i32 %val, ptr addrspace(1) %out
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[2:3]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %in, i32 addrspace(1)* %out) {
+ ptr addrspace(1) %in, ptr addrspace(1) %out) {
entry:
- %val = load atomic i32, i32 addrspace(1)* %in syncscope("agent-one-as") monotonic, align 4
- store i32 %val, i32 addrspace(1)* %out
+ %val = load atomic i32, ptr addrspace(1) %in syncscope("agent-one-as") monotonic, align 4
+ store i32 %val, ptr addrspace(1) %out
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[2:3]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %in, i32 addrspace(1)* %out) {
+ ptr addrspace(1) %in, ptr addrspace(1) %out) {
entry:
- %val = load atomic i32, i32 addrspace(1)* %in syncscope("agent-one-as") acquire, align 4
- store i32 %val, i32 addrspace(1)* %out
+ %val = load atomic i32, ptr addrspace(1) %in syncscope("agent-one-as") acquire, align 4
+ store i32 %val, ptr addrspace(1) %out
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[2:3]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %in, i32 addrspace(1)* %out) {
+ ptr addrspace(1) %in, ptr addrspace(1) %out) {
entry:
- %val = load atomic i32, i32 addrspace(1)* %in syncscope("agent-one-as") seq_cst, align 4
- store i32 %val, i32 addrspace(1)* %out
+ %val = load atomic i32, ptr addrspace(1) %in syncscope("agent-one-as") seq_cst, align 4
+ store i32 %val, ptr addrspace(1) %out
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(1)* %out) {
+ i32 %in, ptr addrspace(1) %out) {
entry:
- store atomic i32 %in, i32 addrspace(1)* %out syncscope("agent-one-as") unordered, align 4
+ store atomic i32 %in, ptr addrspace(1) %out syncscope("agent-one-as") unordered, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(1)* %out) {
+ i32 %in, ptr addrspace(1) %out) {
entry:
- store atomic i32 %in, i32 addrspace(1)* %out syncscope("agent-one-as") monotonic, align 4
+ store atomic i32 %in, ptr addrspace(1) %out syncscope("agent-one-as") monotonic, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(1)* %out) {
+ i32 %in, ptr addrspace(1) %out) {
entry:
- store atomic i32 %in, i32 addrspace(1)* %out syncscope("agent-one-as") release, align 4
+ store atomic i32 %in, ptr addrspace(1) %out syncscope("agent-one-as") release, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(1)* %out) {
+ i32 %in, ptr addrspace(1) %out) {
entry:
- store atomic i32 %in, i32 addrspace(1)* %out syncscope("agent-one-as") seq_cst, align 4
+ store atomic i32 %in, ptr addrspace(1) %out syncscope("agent-one-as") seq_cst, align 4
ret void
}
; GFX11-CU-NEXT: global_atomic_swap_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in syncscope("agent-one-as") monotonic
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in syncscope("agent-one-as") monotonic
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in syncscope("agent-one-as") acquire
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in syncscope("agent-one-as") acquire
ret void
}
; GFX11-CU-NEXT: global_atomic_swap_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in syncscope("agent-one-as") release
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in syncscope("agent-one-as") release
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in syncscope("agent-one-as") acq_rel
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in syncscope("agent-one-as") acq_rel
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in syncscope("agent-one-as") seq_cst
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in syncscope("agent-one-as") seq_cst
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in syncscope("agent-one-as") acquire
- store i32 %val, i32 addrspace(1)* %out, align 4
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in syncscope("agent-one-as") acquire
+ store i32 %val, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in syncscope("agent-one-as") acq_rel
- store i32 %val, i32 addrspace(1)* %out, align 4
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in syncscope("agent-one-as") acq_rel
+ store i32 %val, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in syncscope("agent-one-as") seq_cst
- store i32 %val, i32 addrspace(1)* %out, align 4
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in syncscope("agent-one-as") seq_cst
+ store i32 %val, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("agent-one-as") monotonic monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("agent-one-as") monotonic monotonic
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("agent-one-as") acquire monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("agent-one-as") acquire monotonic
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("agent-one-as") release monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("agent-one-as") release monotonic
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("agent-one-as") acq_rel monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("agent-one-as") acq_rel monotonic
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("agent-one-as") seq_cst monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("agent-one-as") seq_cst monotonic
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("agent-one-as") monotonic acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("agent-one-as") monotonic acquire
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("agent-one-as") acquire acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("agent-one-as") acquire acquire
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("agent-one-as") release acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("agent-one-as") release acquire
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("agent-one-as") acq_rel acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("agent-one-as") acq_rel acquire
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("agent-one-as") seq_cst acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("agent-one-as") seq_cst acquire
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("agent-one-as") monotonic seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("agent-one-as") monotonic seq_cst
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("agent-one-as") acquire seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("agent-one-as") acquire seq_cst
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("agent-one-as") release seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("agent-one-as") release seq_cst
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("agent-one-as") acq_rel seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("agent-one-as") acq_rel seq_cst
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("agent-one-as") seq_cst seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("agent-one-as") seq_cst seq_cst
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("agent-one-as") monotonic monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("agent-one-as") monotonic monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("agent-one-as") acquire monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("agent-one-as") acquire monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("agent-one-as") acq_rel monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("agent-one-as") acq_rel monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("agent-one-as") seq_cst monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("agent-one-as") seq_cst monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("agent-one-as") monotonic acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("agent-one-as") monotonic acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("agent-one-as") acquire acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("agent-one-as") acquire acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("agent-one-as") release acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("agent-one-as") release acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("agent-one-as") acq_rel acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("agent-one-as") acq_rel acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("agent-one-as") seq_cst acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("agent-one-as") seq_cst acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("agent-one-as") monotonic seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("agent-one-as") monotonic seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("agent-one-as") acquire seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("agent-one-as") acquire seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("agent-one-as") release seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("agent-one-as") release seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("agent-one-as") acq_rel seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("agent-one-as") acq_rel seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("agent-one-as") seq_cst seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("agent-one-as") seq_cst seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[2:3]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %in, i32 addrspace(1)* %out) {
+ ptr addrspace(1) %in, ptr addrspace(1) %out) {
entry:
- %val = load i32, i32 addrspace(1)* %in, align 4, !nontemporal !0
- store i32 %val, i32 addrspace(1)* %out
+ %val = load i32, ptr addrspace(1) %in, align 4, !nontemporal !0
+ store i32 %val, ptr addrspace(1) %out
ret void
}
; GFX11-CU-NEXT: global_store_b32 v1, v0, s[2:3]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %in, i32 addrspace(1)* %out) {
+ ptr addrspace(1) %in, ptr addrspace(1) %out) {
entry:
%tid = call i32 @llvm.amdgcn.workitem.id.x()
- %val.gep = getelementptr inbounds i32, i32 addrspace(1)* %in, i32 %tid
- %val = load i32, i32 addrspace(1)* %val.gep, align 4, !nontemporal !0
- store i32 %val, i32 addrspace(1)* %out
+ %val.gep = getelementptr inbounds i32, ptr addrspace(1) %in, i32 %tid
+ %val = load i32, ptr addrspace(1) %val.gep, align 4, !nontemporal !0
+ store i32 %val, ptr addrspace(1) %out
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[2:3] glc slc dlc
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %in, i32 addrspace(1)* %out) {
+ ptr addrspace(1) %in, ptr addrspace(1) %out) {
entry:
- %val = load i32, i32 addrspace(1)* %in, align 4
- store i32 %val, i32 addrspace(1)* %out, !nontemporal !0
+ %val = load i32, ptr addrspace(1) %in, align 4
+ store i32 %val, ptr addrspace(1) %out, !nontemporal !0
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[2:3] glc slc dlc
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %in, i32 addrspace(1)* %out) {
+ ptr addrspace(1) %in, ptr addrspace(1) %out) {
entry:
%tid = call i32 @llvm.amdgcn.workitem.id.x()
- %val = load i32, i32 addrspace(1)* %in, align 4
- %out.gep = getelementptr inbounds i32, i32 addrspace(1)* %out, i32 %tid
- store i32 %val, i32 addrspace(1)* %out.gep, !nontemporal !0
+ %val = load i32, ptr addrspace(1) %in, align 4
+ %out.gep = getelementptr inbounds i32, ptr addrspace(1) %out, i32 %tid
+ store i32 %val, ptr addrspace(1) %out.gep, !nontemporal !0
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[2:3]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %in, i32 addrspace(1)* %out) {
+ ptr addrspace(1) %in, ptr addrspace(1) %out) {
entry:
- %val = load atomic i32, i32 addrspace(1)* %in syncscope("singlethread") unordered, align 4
- store i32 %val, i32 addrspace(1)* %out
+ %val = load atomic i32, ptr addrspace(1) %in syncscope("singlethread") unordered, align 4
+ store i32 %val, ptr addrspace(1) %out
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[2:3]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %in, i32 addrspace(1)* %out) {
+ ptr addrspace(1) %in, ptr addrspace(1) %out) {
entry:
- %val = load atomic i32, i32 addrspace(1)* %in syncscope("singlethread") monotonic, align 4
- store i32 %val, i32 addrspace(1)* %out
+ %val = load atomic i32, ptr addrspace(1) %in syncscope("singlethread") monotonic, align 4
+ store i32 %val, ptr addrspace(1) %out
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[2:3]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %in, i32 addrspace(1)* %out) {
+ ptr addrspace(1) %in, ptr addrspace(1) %out) {
entry:
- %val = load atomic i32, i32 addrspace(1)* %in syncscope("singlethread") acquire, align 4
- store i32 %val, i32 addrspace(1)* %out
+ %val = load atomic i32, ptr addrspace(1) %in syncscope("singlethread") acquire, align 4
+ store i32 %val, ptr addrspace(1) %out
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[2:3]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %in, i32 addrspace(1)* %out) {
+ ptr addrspace(1) %in, ptr addrspace(1) %out) {
entry:
- %val = load atomic i32, i32 addrspace(1)* %in syncscope("singlethread") seq_cst, align 4
- store i32 %val, i32 addrspace(1)* %out
+ %val = load atomic i32, ptr addrspace(1) %in syncscope("singlethread") seq_cst, align 4
+ store i32 %val, ptr addrspace(1) %out
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(1)* %out) {
+ i32 %in, ptr addrspace(1) %out) {
entry:
- store atomic i32 %in, i32 addrspace(1)* %out syncscope("singlethread") unordered, align 4
+ store atomic i32 %in, ptr addrspace(1) %out syncscope("singlethread") unordered, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(1)* %out) {
+ i32 %in, ptr addrspace(1) %out) {
entry:
- store atomic i32 %in, i32 addrspace(1)* %out syncscope("singlethread") monotonic, align 4
+ store atomic i32 %in, ptr addrspace(1) %out syncscope("singlethread") monotonic, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(1)* %out) {
+ i32 %in, ptr addrspace(1) %out) {
entry:
- store atomic i32 %in, i32 addrspace(1)* %out syncscope("singlethread") release, align 4
+ store atomic i32 %in, ptr addrspace(1) %out syncscope("singlethread") release, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(1)* %out) {
+ i32 %in, ptr addrspace(1) %out) {
entry:
- store atomic i32 %in, i32 addrspace(1)* %out syncscope("singlethread") seq_cst, align 4
+ store atomic i32 %in, ptr addrspace(1) %out syncscope("singlethread") seq_cst, align 4
ret void
}
; GFX11-CU-NEXT: global_atomic_swap_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in syncscope("singlethread") monotonic
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in syncscope("singlethread") monotonic
ret void
}
; GFX11-CU-NEXT: global_atomic_swap_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in syncscope("singlethread") acquire
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in syncscope("singlethread") acquire
ret void
}
; GFX11-CU-NEXT: global_atomic_swap_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in syncscope("singlethread") release
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in syncscope("singlethread") release
ret void
}
; GFX11-CU-NEXT: global_atomic_swap_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in syncscope("singlethread") acq_rel
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in syncscope("singlethread") acq_rel
ret void
}
; GFX11-CU-NEXT: global_atomic_swap_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in syncscope("singlethread") seq_cst
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in syncscope("singlethread") seq_cst
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in syncscope("singlethread") acquire
- store i32 %val, i32 addrspace(1)* %out, align 4
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in syncscope("singlethread") acquire
+ store i32 %val, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in syncscope("singlethread") acq_rel
- store i32 %val, i32 addrspace(1)* %out, align 4
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in syncscope("singlethread") acq_rel
+ store i32 %val, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in syncscope("singlethread") seq_cst
- store i32 %val, i32 addrspace(1)* %out, align 4
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in syncscope("singlethread") seq_cst
+ store i32 %val, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("singlethread") monotonic monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("singlethread") monotonic monotonic
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("singlethread") acquire monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("singlethread") acquire monotonic
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("singlethread") release monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("singlethread") release monotonic
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("singlethread") acq_rel monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("singlethread") acq_rel monotonic
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("singlethread") seq_cst monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("singlethread") seq_cst monotonic
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("singlethread") monotonic acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("singlethread") monotonic acquire
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("singlethread") acquire acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("singlethread") acquire acquire
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("singlethread") release acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("singlethread") release acquire
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("singlethread") acq_rel acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("singlethread") acq_rel acquire
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("singlethread") seq_cst acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("singlethread") seq_cst acquire
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("singlethread") monotonic seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("singlethread") monotonic seq_cst
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("singlethread") acquire seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("singlethread") acquire seq_cst
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("singlethread") release seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("singlethread") release seq_cst
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("singlethread") acq_rel seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("singlethread") acq_rel seq_cst
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("singlethread") seq_cst seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("singlethread") seq_cst seq_cst
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("singlethread") monotonic monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("singlethread") monotonic monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("singlethread") acquire monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("singlethread") acquire monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("singlethread") release monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("singlethread") release monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("singlethread") acq_rel monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("singlethread") acq_rel monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("singlethread") seq_cst monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("singlethread") seq_cst monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("singlethread") monotonic acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("singlethread") monotonic acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("singlethread") acquire acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("singlethread") acquire acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("singlethread") release acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("singlethread") release acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("singlethread") acq_rel acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("singlethread") acq_rel acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("singlethread") seq_cst acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("singlethread") seq_cst acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("singlethread") monotonic seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("singlethread") monotonic seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("singlethread") acquire seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("singlethread") acquire seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("singlethread") release seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("singlethread") release seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("singlethread") acq_rel seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("singlethread") acq_rel seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("singlethread") seq_cst seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("singlethread") seq_cst seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[2:3]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %in, i32 addrspace(1)* %out) {
+ ptr addrspace(1) %in, ptr addrspace(1) %out) {
entry:
- %val = load atomic i32, i32 addrspace(1)* %in syncscope("singlethread-one-as") unordered, align 4
- store i32 %val, i32 addrspace(1)* %out
+ %val = load atomic i32, ptr addrspace(1) %in syncscope("singlethread-one-as") unordered, align 4
+ store i32 %val, ptr addrspace(1) %out
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[2:3]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %in, i32 addrspace(1)* %out) {
+ ptr addrspace(1) %in, ptr addrspace(1) %out) {
entry:
- %val = load atomic i32, i32 addrspace(1)* %in syncscope("singlethread-one-as") monotonic, align 4
- store i32 %val, i32 addrspace(1)* %out
+ %val = load atomic i32, ptr addrspace(1) %in syncscope("singlethread-one-as") monotonic, align 4
+ store i32 %val, ptr addrspace(1) %out
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[2:3]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %in, i32 addrspace(1)* %out) {
+ ptr addrspace(1) %in, ptr addrspace(1) %out) {
entry:
- %val = load atomic i32, i32 addrspace(1)* %in syncscope("singlethread-one-as") acquire, align 4
- store i32 %val, i32 addrspace(1)* %out
+ %val = load atomic i32, ptr addrspace(1) %in syncscope("singlethread-one-as") acquire, align 4
+ store i32 %val, ptr addrspace(1) %out
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[2:3]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %in, i32 addrspace(1)* %out) {
+ ptr addrspace(1) %in, ptr addrspace(1) %out) {
entry:
- %val = load atomic i32, i32 addrspace(1)* %in syncscope("singlethread-one-as") seq_cst, align 4
- store i32 %val, i32 addrspace(1)* %out
+ %val = load atomic i32, ptr addrspace(1) %in syncscope("singlethread-one-as") seq_cst, align 4
+ store i32 %val, ptr addrspace(1) %out
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(1)* %out) {
+ i32 %in, ptr addrspace(1) %out) {
entry:
- store atomic i32 %in, i32 addrspace(1)* %out syncscope("singlethread-one-as") unordered, align 4
+ store atomic i32 %in, ptr addrspace(1) %out syncscope("singlethread-one-as") unordered, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(1)* %out) {
+ i32 %in, ptr addrspace(1) %out) {
entry:
- store atomic i32 %in, i32 addrspace(1)* %out syncscope("singlethread-one-as") monotonic, align 4
+ store atomic i32 %in, ptr addrspace(1) %out syncscope("singlethread-one-as") monotonic, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(1)* %out) {
+ i32 %in, ptr addrspace(1) %out) {
entry:
- store atomic i32 %in, i32 addrspace(1)* %out syncscope("singlethread-one-as") release, align 4
+ store atomic i32 %in, ptr addrspace(1) %out syncscope("singlethread-one-as") release, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(1)* %out) {
+ i32 %in, ptr addrspace(1) %out) {
entry:
- store atomic i32 %in, i32 addrspace(1)* %out syncscope("singlethread-one-as") seq_cst, align 4
+ store atomic i32 %in, ptr addrspace(1) %out syncscope("singlethread-one-as") seq_cst, align 4
ret void
}
; GFX11-CU-NEXT: global_atomic_swap_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in syncscope("singlethread-one-as") monotonic
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in syncscope("singlethread-one-as") monotonic
ret void
}
; GFX11-CU-NEXT: global_atomic_swap_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in syncscope("singlethread-one-as") acquire
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in syncscope("singlethread-one-as") acquire
ret void
}
; GFX11-CU-NEXT: global_atomic_swap_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in syncscope("singlethread-one-as") release
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in syncscope("singlethread-one-as") release
ret void
}
; GFX11-CU-NEXT: global_atomic_swap_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in syncscope("singlethread-one-as") acq_rel
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in syncscope("singlethread-one-as") acq_rel
ret void
}
; GFX11-CU-NEXT: global_atomic_swap_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in syncscope("singlethread-one-as") seq_cst
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in syncscope("singlethread-one-as") seq_cst
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in syncscope("singlethread-one-as") acquire
- store i32 %val, i32 addrspace(1)* %out, align 4
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in syncscope("singlethread-one-as") acquire
+ store i32 %val, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in syncscope("singlethread-one-as") acq_rel
- store i32 %val, i32 addrspace(1)* %out, align 4
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in syncscope("singlethread-one-as") acq_rel
+ store i32 %val, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in syncscope("singlethread-one-as") seq_cst
- store i32 %val, i32 addrspace(1)* %out, align 4
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in syncscope("singlethread-one-as") seq_cst
+ store i32 %val, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") monotonic monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("singlethread-one-as") monotonic monotonic
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") acquire monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("singlethread-one-as") acquire monotonic
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") release monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("singlethread-one-as") release monotonic
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") acq_rel monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("singlethread-one-as") acq_rel monotonic
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") seq_cst monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("singlethread-one-as") seq_cst monotonic
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") monotonic acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("singlethread-one-as") monotonic acquire
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") acquire acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("singlethread-one-as") acquire acquire
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") release acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("singlethread-one-as") release acquire
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") acq_rel acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("singlethread-one-as") acq_rel acquire
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") seq_cst acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("singlethread-one-as") seq_cst acquire
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") monotonic seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("singlethread-one-as") monotonic seq_cst
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") acquire seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("singlethread-one-as") acquire seq_cst
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") release seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("singlethread-one-as") release seq_cst
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") acq_rel seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("singlethread-one-as") acq_rel seq_cst
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") seq_cst seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("singlethread-one-as") seq_cst seq_cst
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") monotonic monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("singlethread-one-as") monotonic monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") acquire monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("singlethread-one-as") acquire monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") release monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("singlethread-one-as") release monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") acq_rel monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("singlethread-one-as") acq_rel monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") seq_cst monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("singlethread-one-as") seq_cst monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") monotonic acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("singlethread-one-as") monotonic acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") acquire acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("singlethread-one-as") acquire acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") release acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("singlethread-one-as") release acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") acq_rel acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("singlethread-one-as") acq_rel acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") seq_cst acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("singlethread-one-as") seq_cst acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") monotonic seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("singlethread-one-as") monotonic seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") acquire seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("singlethread-one-as") acquire seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") release seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("singlethread-one-as") release seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") acq_rel seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("singlethread-one-as") acq_rel seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") seq_cst seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("singlethread-one-as") seq_cst seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[2:3]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %in, i32 addrspace(1)* %out) {
+ ptr addrspace(1) %in, ptr addrspace(1) %out) {
entry:
- %val = load atomic i32, i32 addrspace(1)* %in unordered, align 4
- store i32 %val, i32 addrspace(1)* %out
+ %val = load atomic i32, ptr addrspace(1) %in unordered, align 4
+ store i32 %val, ptr addrspace(1) %out
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[2:3]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %in, i32 addrspace(1)* %out) {
+ ptr addrspace(1) %in, ptr addrspace(1) %out) {
entry:
- %val = load atomic i32, i32 addrspace(1)* %in monotonic, align 4
- store i32 %val, i32 addrspace(1)* %out
+ %val = load atomic i32, ptr addrspace(1) %in monotonic, align 4
+ store i32 %val, ptr addrspace(1) %out
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[2:3]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %in, i32 addrspace(1)* %out) {
+ ptr addrspace(1) %in, ptr addrspace(1) %out) {
entry:
- %val = load atomic i32, i32 addrspace(1)* %in acquire, align 4
- store i32 %val, i32 addrspace(1)* %out
+ %val = load atomic i32, ptr addrspace(1) %in acquire, align 4
+ store i32 %val, ptr addrspace(1) %out
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[2:3]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %in, i32 addrspace(1)* %out) {
+ ptr addrspace(1) %in, ptr addrspace(1) %out) {
entry:
- %val = load atomic i32, i32 addrspace(1)* %in seq_cst, align 4
- store i32 %val, i32 addrspace(1)* %out
+ %val = load atomic i32, ptr addrspace(1) %in seq_cst, align 4
+ store i32 %val, ptr addrspace(1) %out
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(1)* %out) {
+ i32 %in, ptr addrspace(1) %out) {
entry:
- store atomic i32 %in, i32 addrspace(1)* %out unordered, align 4
+ store atomic i32 %in, ptr addrspace(1) %out unordered, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(1)* %out) {
+ i32 %in, ptr addrspace(1) %out) {
entry:
- store atomic i32 %in, i32 addrspace(1)* %out monotonic, align 4
+ store atomic i32 %in, ptr addrspace(1) %out monotonic, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(1)* %out) {
+ i32 %in, ptr addrspace(1) %out) {
entry:
- store atomic i32 %in, i32 addrspace(1)* %out release, align 4
+ store atomic i32 %in, ptr addrspace(1) %out release, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(1)* %out) {
+ i32 %in, ptr addrspace(1) %out) {
entry:
- store atomic i32 %in, i32 addrspace(1)* %out seq_cst, align 4
+ store atomic i32 %in, ptr addrspace(1) %out seq_cst, align 4
ret void
}
; GFX11-CU-NEXT: global_atomic_swap_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in monotonic
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in monotonic
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in acquire
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in acquire
ret void
}
; GFX11-CU-NEXT: global_atomic_swap_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in release
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in release
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in acq_rel
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in acq_rel
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in seq_cst
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in seq_cst
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in acquire
- store i32 %val, i32 addrspace(1)* %out, align 4
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in acquire
+ store i32 %val, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in acq_rel
- store i32 %val, i32 addrspace(1)* %out, align 4
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in acq_rel
+ store i32 %val, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in seq_cst
- store i32 %val, i32 addrspace(1)* %out, align 4
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in seq_cst
+ store i32 %val, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in monotonic monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in monotonic monotonic
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in acquire monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in acquire monotonic
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in release monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in release monotonic
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in acq_rel monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in acq_rel monotonic
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in seq_cst monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in seq_cst monotonic
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in monotonic acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in monotonic acquire
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in acquire acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in acquire acquire
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in release acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in release acquire
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in acq_rel acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in acq_rel acquire
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in seq_cst acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in seq_cst acquire
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in seq_cst seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in seq_cst seq_cst
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in monotonic monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in monotonic monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in acquire monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in acquire monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in acq_rel monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in acq_rel monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in seq_cst monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in seq_cst monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in monotonic acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in monotonic acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in acquire acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in acquire acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in release acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in release acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in acq_rel acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in acq_rel acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in seq_cst acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in seq_cst acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in monotonic seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in monotonic seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in acquire seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in acquire seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in release seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in release seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in acq_rel seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in acq_rel seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in seq_cst seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in seq_cst seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[2:3]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %in, i32 addrspace(1)* %out) {
+ ptr addrspace(1) %in, ptr addrspace(1) %out) {
entry:
- %val = load atomic i32, i32 addrspace(1)* %in syncscope("one-as") unordered, align 4
- store i32 %val, i32 addrspace(1)* %out
+ %val = load atomic i32, ptr addrspace(1) %in syncscope("one-as") unordered, align 4
+ store i32 %val, ptr addrspace(1) %out
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[2:3]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %in, i32 addrspace(1)* %out) {
+ ptr addrspace(1) %in, ptr addrspace(1) %out) {
entry:
- %val = load atomic i32, i32 addrspace(1)* %in syncscope("one-as") monotonic, align 4
- store i32 %val, i32 addrspace(1)* %out
+ %val = load atomic i32, ptr addrspace(1) %in syncscope("one-as") monotonic, align 4
+ store i32 %val, ptr addrspace(1) %out
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[2:3]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %in, i32 addrspace(1)* %out) {
+ ptr addrspace(1) %in, ptr addrspace(1) %out) {
entry:
- %val = load atomic i32, i32 addrspace(1)* %in syncscope("one-as") acquire, align 4
- store i32 %val, i32 addrspace(1)* %out
+ %val = load atomic i32, ptr addrspace(1) %in syncscope("one-as") acquire, align 4
+ store i32 %val, ptr addrspace(1) %out
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[2:3]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %in, i32 addrspace(1)* %out) {
+ ptr addrspace(1) %in, ptr addrspace(1) %out) {
entry:
- %val = load atomic i32, i32 addrspace(1)* %in syncscope("one-as") seq_cst, align 4
- store i32 %val, i32 addrspace(1)* %out
+ %val = load atomic i32, ptr addrspace(1) %in syncscope("one-as") seq_cst, align 4
+ store i32 %val, ptr addrspace(1) %out
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(1)* %out) {
+ i32 %in, ptr addrspace(1) %out) {
entry:
- store atomic i32 %in, i32 addrspace(1)* %out syncscope("one-as") unordered, align 4
+ store atomic i32 %in, ptr addrspace(1) %out syncscope("one-as") unordered, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(1)* %out) {
+ i32 %in, ptr addrspace(1) %out) {
entry:
- store atomic i32 %in, i32 addrspace(1)* %out syncscope("one-as") monotonic, align 4
+ store atomic i32 %in, ptr addrspace(1) %out syncscope("one-as") monotonic, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(1)* %out) {
+ i32 %in, ptr addrspace(1) %out) {
entry:
- store atomic i32 %in, i32 addrspace(1)* %out syncscope("one-as") release, align 4
+ store atomic i32 %in, ptr addrspace(1) %out syncscope("one-as") release, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(1)* %out) {
+ i32 %in, ptr addrspace(1) %out) {
entry:
- store atomic i32 %in, i32 addrspace(1)* %out syncscope("one-as") seq_cst, align 4
+ store atomic i32 %in, ptr addrspace(1) %out syncscope("one-as") seq_cst, align 4
ret void
}
; GFX11-CU-NEXT: global_atomic_swap_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in syncscope("one-as") monotonic
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in syncscope("one-as") monotonic
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in syncscope("one-as") acquire
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in syncscope("one-as") acquire
ret void
}
; GFX11-CU-NEXT: global_atomic_swap_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in syncscope("one-as") release
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in syncscope("one-as") release
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in syncscope("one-as") acq_rel
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in syncscope("one-as") acq_rel
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in syncscope("one-as") seq_cst
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in syncscope("one-as") seq_cst
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in syncscope("one-as") acquire
- store i32 %val, i32 addrspace(1)* %out, align 4
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in syncscope("one-as") acquire
+ store i32 %val, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in syncscope("one-as") acq_rel
- store i32 %val, i32 addrspace(1)* %out, align 4
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in syncscope("one-as") acq_rel
+ store i32 %val, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in syncscope("one-as") seq_cst
- store i32 %val, i32 addrspace(1)* %out, align 4
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in syncscope("one-as") seq_cst
+ store i32 %val, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("one-as") monotonic monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("one-as") monotonic monotonic
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("one-as") acquire monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("one-as") acquire monotonic
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("one-as") release monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("one-as") release monotonic
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("one-as") acq_rel monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("one-as") acq_rel monotonic
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("one-as") seq_cst monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("one-as") seq_cst monotonic
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("one-as") monotonic acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("one-as") monotonic acquire
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("one-as") acquire acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("one-as") acquire acquire
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("one-as") release acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("one-as") release acquire
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("one-as") acq_rel acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("one-as") acq_rel acquire
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("one-as") seq_cst acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("one-as") seq_cst acquire
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("one-as") monotonic seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("one-as") monotonic seq_cst
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("one-as") acquire seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("one-as") acquire seq_cst
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("one-as") release seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("one-as") release seq_cst
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("one-as") acq_rel seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("one-as") acq_rel seq_cst
ret void
}
; GFX11-CU-NEXT: buffer_gl0_inv
; GFX11-CU-NEXT: buffer_gl1_inv
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("one-as") seq_cst seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("one-as") seq_cst seq_cst
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("one-as") monotonic monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("one-as") monotonic monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("one-as") acquire monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("one-as") acquire monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("one-as") release monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("one-as") release monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("one-as") acq_rel monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("one-as") acq_rel monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("one-as") seq_cst monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("one-as") seq_cst monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("one-as") monotonic acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("one-as") monotonic acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("one-as") acquire acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("one-as") acquire acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("one-as") release acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("one-as") release acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("one-as") acq_rel acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("one-as") acq_rel acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("one-as") seq_cst acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("one-as") seq_cst acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("one-as") monotonic seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("one-as") monotonic seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("one-as") acquire seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("one-as") acquire seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("one-as") release seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("one-as") release seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("one-as") acq_rel seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("one-as") acq_rel seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("one-as") seq_cst seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("one-as") seq_cst seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[2:3]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %in, i32 addrspace(1)* %out) {
+ ptr addrspace(1) %in, ptr addrspace(1) %out) {
entry:
- %val = load volatile i32, i32 addrspace(1)* %in, align 4
- store i32 %val, i32 addrspace(1)* %out
+ %val = load volatile i32, ptr addrspace(1) %in, align 4
+ store i32 %val, ptr addrspace(1) %out
ret void
}
; GFX11-CU-NEXT: global_store_b32 v1, v0, s[2:3]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %in, i32 addrspace(1)* %out) {
+ ptr addrspace(1) %in, ptr addrspace(1) %out) {
entry:
%tid = call i32 @llvm.amdgcn.workitem.id.x()
- %val.gep = getelementptr inbounds i32, i32 addrspace(1)* %in, i32 %tid
- %val = load volatile i32, i32 addrspace(1)* %val.gep, align 4
- store i32 %val, i32 addrspace(1)* %out
+ %val.gep = getelementptr inbounds i32, ptr addrspace(1) %in, i32 %tid
+ %val = load volatile i32, ptr addrspace(1) %val.gep, align 4
+ store i32 %val, ptr addrspace(1) %out
ret void
}
; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %in, i32 addrspace(1)* %out) {
+ ptr addrspace(1) %in, ptr addrspace(1) %out) {
entry:
- %val = load i32, i32 addrspace(1)* %in, align 4
- store volatile i32 %val, i32 addrspace(1)* %out
+ %val = load i32, ptr addrspace(1) %in, align 4
+ store volatile i32 %val, ptr addrspace(1) %out
ret void
}
; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %in, i32 addrspace(1)* %out) {
+ ptr addrspace(1) %in, ptr addrspace(1) %out) {
entry:
%tid = call i32 @llvm.amdgcn.workitem.id.x()
- %val = load i32, i32 addrspace(1)* %in, align 4
- %out.gep = getelementptr inbounds i32, i32 addrspace(1)* %out, i32 %tid
- store volatile i32 %val, i32 addrspace(1)* %out.gep
+ %val = load i32, ptr addrspace(1) %in, align 4
+ %out.gep = getelementptr inbounds i32, ptr addrspace(1) %out, i32 %tid
+ store volatile i32 %val, ptr addrspace(1) %out.gep
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[2:3]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %in, i32 addrspace(1)* %out) {
+ ptr addrspace(1) %in, ptr addrspace(1) %out) {
entry:
- %val = load atomic volatile i32, i32 addrspace(1)* %in syncscope("workgroup") acquire, align 4
- store i32 %val, i32 addrspace(1)* %out
+ %val = load atomic volatile i32, ptr addrspace(1) %in syncscope("workgroup") acquire, align 4
+ store i32 %val, ptr addrspace(1) %out
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(1)* %out) {
+ i32 %in, ptr addrspace(1) %out) {
entry:
- store atomic volatile i32 %in, i32 addrspace(1)* %out syncscope("workgroup") release, align 4
+ store atomic volatile i32 %in, ptr addrspace(1) %out syncscope("workgroup") release, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[2:3]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %in, i32 addrspace(1)* %out) {
+ ptr addrspace(1) %in, ptr addrspace(1) %out) {
entry:
- %val = load atomic i32, i32 addrspace(1)* %in syncscope("wavefront") unordered, align 4
- store i32 %val, i32 addrspace(1)* %out
+ %val = load atomic i32, ptr addrspace(1) %in syncscope("wavefront") unordered, align 4
+ store i32 %val, ptr addrspace(1) %out
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[2:3]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %in, i32 addrspace(1)* %out) {
+ ptr addrspace(1) %in, ptr addrspace(1) %out) {
entry:
- %val = load atomic i32, i32 addrspace(1)* %in syncscope("wavefront") monotonic, align 4
- store i32 %val, i32 addrspace(1)* %out
+ %val = load atomic i32, ptr addrspace(1) %in syncscope("wavefront") monotonic, align 4
+ store i32 %val, ptr addrspace(1) %out
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[2:3]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %in, i32 addrspace(1)* %out) {
+ ptr addrspace(1) %in, ptr addrspace(1) %out) {
entry:
- %val = load atomic i32, i32 addrspace(1)* %in syncscope("wavefront") acquire, align 4
- store i32 %val, i32 addrspace(1)* %out
+ %val = load atomic i32, ptr addrspace(1) %in syncscope("wavefront") acquire, align 4
+ store i32 %val, ptr addrspace(1) %out
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[2:3]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %in, i32 addrspace(1)* %out) {
+ ptr addrspace(1) %in, ptr addrspace(1) %out) {
entry:
- %val = load atomic i32, i32 addrspace(1)* %in syncscope("wavefront") seq_cst, align 4
- store i32 %val, i32 addrspace(1)* %out
+ %val = load atomic i32, ptr addrspace(1) %in syncscope("wavefront") seq_cst, align 4
+ store i32 %val, ptr addrspace(1) %out
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(1)* %out) {
+ i32 %in, ptr addrspace(1) %out) {
entry:
- store atomic i32 %in, i32 addrspace(1)* %out syncscope("wavefront") unordered, align 4
+ store atomic i32 %in, ptr addrspace(1) %out syncscope("wavefront") unordered, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(1)* %out) {
+ i32 %in, ptr addrspace(1) %out) {
entry:
- store atomic i32 %in, i32 addrspace(1)* %out syncscope("wavefront") monotonic, align 4
+ store atomic i32 %in, ptr addrspace(1) %out syncscope("wavefront") monotonic, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(1)* %out) {
+ i32 %in, ptr addrspace(1) %out) {
entry:
- store atomic i32 %in, i32 addrspace(1)* %out syncscope("wavefront") release, align 4
+ store atomic i32 %in, ptr addrspace(1) %out syncscope("wavefront") release, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(1)* %out) {
+ i32 %in, ptr addrspace(1) %out) {
entry:
- store atomic i32 %in, i32 addrspace(1)* %out syncscope("wavefront") seq_cst, align 4
+ store atomic i32 %in, ptr addrspace(1) %out syncscope("wavefront") seq_cst, align 4
ret void
}
; GFX11-CU-NEXT: global_atomic_swap_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in syncscope("wavefront") monotonic
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in syncscope("wavefront") monotonic
ret void
}
; GFX11-CU-NEXT: global_atomic_swap_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in syncscope("wavefront") acquire
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in syncscope("wavefront") acquire
ret void
}
; GFX11-CU-NEXT: global_atomic_swap_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in syncscope("wavefront") release
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in syncscope("wavefront") release
ret void
}
; GFX11-CU-NEXT: global_atomic_swap_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in syncscope("wavefront") acq_rel
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in syncscope("wavefront") acq_rel
ret void
}
; GFX11-CU-NEXT: global_atomic_swap_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in syncscope("wavefront") seq_cst
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in syncscope("wavefront") seq_cst
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in syncscope("wavefront") acquire
- store i32 %val, i32 addrspace(1)* %out, align 4
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in syncscope("wavefront") acquire
+ store i32 %val, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in syncscope("wavefront") acq_rel
- store i32 %val, i32 addrspace(1)* %out, align 4
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in syncscope("wavefront") acq_rel
+ store i32 %val, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in syncscope("wavefront") seq_cst
- store i32 %val, i32 addrspace(1)* %out, align 4
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in syncscope("wavefront") seq_cst
+ store i32 %val, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("wavefront") monotonic monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("wavefront") monotonic monotonic
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("wavefront") acquire monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("wavefront") acquire monotonic
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("wavefront") release monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("wavefront") release monotonic
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("wavefront") acq_rel monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("wavefront") acq_rel monotonic
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("wavefront") seq_cst monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("wavefront") seq_cst monotonic
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("wavefront") monotonic acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("wavefront") monotonic acquire
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("wavefront") acquire acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("wavefront") acquire acquire
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("wavefront") release acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("wavefront") release acquire
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("wavefront") acq_rel acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("wavefront") acq_rel acquire
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("wavefront") seq_cst acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("wavefront") seq_cst acquire
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("wavefront") monotonic seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("wavefront") monotonic seq_cst
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("wavefront") acquire seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("wavefront") acquire seq_cst
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("wavefront") release seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("wavefront") release seq_cst
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("wavefront") acq_rel seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("wavefront") acq_rel seq_cst
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("wavefront") seq_cst seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("wavefront") seq_cst seq_cst
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("wavefront") monotonic monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("wavefront") monotonic monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("wavefront") acquire monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("wavefront") acquire monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("wavefront") release monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("wavefront") release monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("wavefront") acq_rel monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("wavefront") acq_rel monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("wavefront") seq_cst monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("wavefront") seq_cst monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("wavefront") monotonic acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("wavefront") monotonic acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("wavefront") acquire acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("wavefront") acquire acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("wavefront") release acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("wavefront") release acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("wavefront") acq_rel acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("wavefront") acq_rel acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("wavefront") seq_cst acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("wavefront") seq_cst acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("wavefront") monotonic seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("wavefront") monotonic seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("wavefront") acquire seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("wavefront") acquire seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("wavefront") release seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("wavefront") release seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("wavefront") acq_rel seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("wavefront") acq_rel seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("wavefront") seq_cst seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("wavefront") seq_cst seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[2:3]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %in, i32 addrspace(1)* %out) {
+ ptr addrspace(1) %in, ptr addrspace(1) %out) {
entry:
- %val = load atomic i32, i32 addrspace(1)* %in syncscope("wavefront-one-as") unordered, align 4
- store i32 %val, i32 addrspace(1)* %out
+ %val = load atomic i32, ptr addrspace(1) %in syncscope("wavefront-one-as") unordered, align 4
+ store i32 %val, ptr addrspace(1) %out
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[2:3]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %in, i32 addrspace(1)* %out) {
+ ptr addrspace(1) %in, ptr addrspace(1) %out) {
entry:
- %val = load atomic i32, i32 addrspace(1)* %in syncscope("wavefront-one-as") monotonic, align 4
- store i32 %val, i32 addrspace(1)* %out
+ %val = load atomic i32, ptr addrspace(1) %in syncscope("wavefront-one-as") monotonic, align 4
+ store i32 %val, ptr addrspace(1) %out
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[2:3]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %in, i32 addrspace(1)* %out) {
+ ptr addrspace(1) %in, ptr addrspace(1) %out) {
entry:
- %val = load atomic i32, i32 addrspace(1)* %in syncscope("wavefront-one-as") acquire, align 4
- store i32 %val, i32 addrspace(1)* %out
+ %val = load atomic i32, ptr addrspace(1) %in syncscope("wavefront-one-as") acquire, align 4
+ store i32 %val, ptr addrspace(1) %out
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[2:3]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %in, i32 addrspace(1)* %out) {
+ ptr addrspace(1) %in, ptr addrspace(1) %out) {
entry:
- %val = load atomic i32, i32 addrspace(1)* %in syncscope("wavefront-one-as") seq_cst, align 4
- store i32 %val, i32 addrspace(1)* %out
+ %val = load atomic i32, ptr addrspace(1) %in syncscope("wavefront-one-as") seq_cst, align 4
+ store i32 %val, ptr addrspace(1) %out
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(1)* %out) {
+ i32 %in, ptr addrspace(1) %out) {
entry:
- store atomic i32 %in, i32 addrspace(1)* %out syncscope("wavefront-one-as") unordered, align 4
+ store atomic i32 %in, ptr addrspace(1) %out syncscope("wavefront-one-as") unordered, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(1)* %out) {
+ i32 %in, ptr addrspace(1) %out) {
entry:
- store atomic i32 %in, i32 addrspace(1)* %out syncscope("wavefront-one-as") monotonic, align 4
+ store atomic i32 %in, ptr addrspace(1) %out syncscope("wavefront-one-as") monotonic, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(1)* %out) {
+ i32 %in, ptr addrspace(1) %out) {
entry:
- store atomic i32 %in, i32 addrspace(1)* %out syncscope("wavefront-one-as") release, align 4
+ store atomic i32 %in, ptr addrspace(1) %out syncscope("wavefront-one-as") release, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(1)* %out) {
+ i32 %in, ptr addrspace(1) %out) {
entry:
- store atomic i32 %in, i32 addrspace(1)* %out syncscope("wavefront-one-as") seq_cst, align 4
+ store atomic i32 %in, ptr addrspace(1) %out syncscope("wavefront-one-as") seq_cst, align 4
ret void
}
; GFX11-CU-NEXT: global_atomic_swap_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in syncscope("wavefront-one-as") monotonic
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in syncscope("wavefront-one-as") monotonic
ret void
}
; GFX11-CU-NEXT: global_atomic_swap_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in syncscope("wavefront-one-as") acquire
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in syncscope("wavefront-one-as") acquire
ret void
}
; GFX11-CU-NEXT: global_atomic_swap_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in syncscope("wavefront-one-as") release
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in syncscope("wavefront-one-as") release
ret void
}
; GFX11-CU-NEXT: global_atomic_swap_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in syncscope("wavefront-one-as") acq_rel
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in syncscope("wavefront-one-as") acq_rel
ret void
}
; GFX11-CU-NEXT: global_atomic_swap_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in syncscope("wavefront-one-as") seq_cst
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in syncscope("wavefront-one-as") seq_cst
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in syncscope("wavefront-one-as") acquire
- store i32 %val, i32 addrspace(1)* %out, align 4
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in syncscope("wavefront-one-as") acquire
+ store i32 %val, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in syncscope("wavefront-one-as") acq_rel
- store i32 %val, i32 addrspace(1)* %out, align 4
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in syncscope("wavefront-one-as") acq_rel
+ store i32 %val, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in syncscope("wavefront-one-as") seq_cst
- store i32 %val, i32 addrspace(1)* %out, align 4
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in syncscope("wavefront-one-as") seq_cst
+ store i32 %val, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") monotonic monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("wavefront-one-as") monotonic monotonic
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") acquire monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("wavefront-one-as") acquire monotonic
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") release monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("wavefront-one-as") release monotonic
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") acq_rel monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("wavefront-one-as") acq_rel monotonic
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") seq_cst monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("wavefront-one-as") seq_cst monotonic
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") monotonic acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("wavefront-one-as") monotonic acquire
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") acquire acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("wavefront-one-as") acquire acquire
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") release acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("wavefront-one-as") release acquire
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") acq_rel acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("wavefront-one-as") acq_rel acquire
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") seq_cst acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("wavefront-one-as") seq_cst acquire
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") monotonic seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("wavefront-one-as") monotonic seq_cst
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") acquire seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("wavefront-one-as") acquire seq_cst
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") release seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("wavefront-one-as") release seq_cst
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") acq_rel seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("wavefront-one-as") acq_rel seq_cst
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") seq_cst seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("wavefront-one-as") seq_cst seq_cst
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") monotonic monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("wavefront-one-as") monotonic monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") acquire monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("wavefront-one-as") acquire monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") release monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("wavefront-one-as") release monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") acq_rel monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("wavefront-one-as") acq_rel monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") seq_cst monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("wavefront-one-as") seq_cst monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") monotonic acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("wavefront-one-as") monotonic acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") acquire acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("wavefront-one-as") acquire acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") release acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("wavefront-one-as") release acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") acq_rel acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("wavefront-one-as") acq_rel acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") seq_cst acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("wavefront-one-as") seq_cst acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") monotonic seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("wavefront-one-as") monotonic seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") acquire seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("wavefront-one-as") acquire seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") release seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("wavefront-one-as") release seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") acq_rel seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("wavefront-one-as") acq_rel seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") seq_cst seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("wavefront-one-as") seq_cst seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[2:3]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %in, i32 addrspace(1)* %out) {
+ ptr addrspace(1) %in, ptr addrspace(1) %out) {
entry:
- %val = load atomic i32, i32 addrspace(1)* %in syncscope("workgroup") unordered, align 4
- store i32 %val, i32 addrspace(1)* %out
+ %val = load atomic i32, ptr addrspace(1) %in syncscope("workgroup") unordered, align 4
+ store i32 %val, ptr addrspace(1) %out
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[2:3]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %in, i32 addrspace(1)* %out) {
+ ptr addrspace(1) %in, ptr addrspace(1) %out) {
entry:
- %val = load atomic i32, i32 addrspace(1)* %in syncscope("workgroup") monotonic, align 4
- store i32 %val, i32 addrspace(1)* %out
+ %val = load atomic i32, ptr addrspace(1) %in syncscope("workgroup") monotonic, align 4
+ store i32 %val, ptr addrspace(1) %out
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[2:3]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %in, i32 addrspace(1)* %out) {
+ ptr addrspace(1) %in, ptr addrspace(1) %out) {
entry:
- %val = load atomic i32, i32 addrspace(1)* %in syncscope("workgroup") acquire, align 4
- store i32 %val, i32 addrspace(1)* %out
+ %val = load atomic i32, ptr addrspace(1) %in syncscope("workgroup") acquire, align 4
+ store i32 %val, ptr addrspace(1) %out
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[2:3]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %in, i32 addrspace(1)* %out) {
+ ptr addrspace(1) %in, ptr addrspace(1) %out) {
entry:
- %val = load atomic i32, i32 addrspace(1)* %in syncscope("workgroup") seq_cst, align 4
- store i32 %val, i32 addrspace(1)* %out
+ %val = load atomic i32, ptr addrspace(1) %in syncscope("workgroup") seq_cst, align 4
+ store i32 %val, ptr addrspace(1) %out
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(1)* %out) {
+ i32 %in, ptr addrspace(1) %out) {
entry:
- store atomic i32 %in, i32 addrspace(1)* %out syncscope("workgroup") unordered, align 4
+ store atomic i32 %in, ptr addrspace(1) %out syncscope("workgroup") unordered, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(1)* %out) {
+ i32 %in, ptr addrspace(1) %out) {
entry:
- store atomic i32 %in, i32 addrspace(1)* %out syncscope("workgroup") monotonic, align 4
+ store atomic i32 %in, ptr addrspace(1) %out syncscope("workgroup") monotonic, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(1)* %out) {
+ i32 %in, ptr addrspace(1) %out) {
entry:
- store atomic i32 %in, i32 addrspace(1)* %out syncscope("workgroup") release, align 4
+ store atomic i32 %in, ptr addrspace(1) %out syncscope("workgroup") release, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(1)* %out) {
+ i32 %in, ptr addrspace(1) %out) {
entry:
- store atomic i32 %in, i32 addrspace(1)* %out syncscope("workgroup") seq_cst, align 4
+ store atomic i32 %in, ptr addrspace(1) %out syncscope("workgroup") seq_cst, align 4
ret void
}
; GFX11-CU-NEXT: global_atomic_swap_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in syncscope("workgroup") monotonic
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in syncscope("workgroup") monotonic
ret void
}
; GFX11-CU-NEXT: global_atomic_swap_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in syncscope("workgroup") acquire
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in syncscope("workgroup") acquire
ret void
}
; GFX11-CU-NEXT: global_atomic_swap_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in syncscope("workgroup") release
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in syncscope("workgroup") release
ret void
}
; GFX11-CU-NEXT: global_atomic_swap_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in syncscope("workgroup") acq_rel
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in syncscope("workgroup") acq_rel
ret void
}
; GFX11-CU-NEXT: global_atomic_swap_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in syncscope("workgroup") seq_cst
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in syncscope("workgroup") seq_cst
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in syncscope("workgroup") acquire
- store i32 %val, i32 addrspace(1)* %out, align 4
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in syncscope("workgroup") acquire
+ store i32 %val, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in syncscope("workgroup") acq_rel
- store i32 %val, i32 addrspace(1)* %out, align 4
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in syncscope("workgroup") acq_rel
+ store i32 %val, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in syncscope("workgroup") seq_cst
- store i32 %val, i32 addrspace(1)* %out, align 4
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in syncscope("workgroup") seq_cst
+ store i32 %val, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("workgroup") monotonic monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("workgroup") monotonic monotonic
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("workgroup") acquire monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("workgroup") acquire monotonic
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("workgroup") release monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("workgroup") release monotonic
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("workgroup") acq_rel monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("workgroup") acq_rel monotonic
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("workgroup") seq_cst monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("workgroup") seq_cst monotonic
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("workgroup") monotonic acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("workgroup") monotonic acquire
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("workgroup") acquire acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("workgroup") acquire acquire
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("workgroup") release acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("workgroup") release acquire
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("workgroup") acq_rel acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("workgroup") acq_rel acquire
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("workgroup") seq_cst acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("workgroup") seq_cst acquire
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("workgroup") monotonic seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("workgroup") monotonic seq_cst
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("workgroup") acquire seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("workgroup") acquire seq_cst
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("workgroup") release seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("workgroup") release seq_cst
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("workgroup") acq_rel seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("workgroup") acq_rel seq_cst
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("workgroup") seq_cst seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("workgroup") seq_cst seq_cst
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("workgroup") monotonic monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("workgroup") monotonic monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("workgroup") acquire monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("workgroup") acquire monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("workgroup") release monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("workgroup") release monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("workgroup") acq_rel monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("workgroup") acq_rel monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("workgroup") seq_cst monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("workgroup") seq_cst monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("workgroup") monotonic acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("workgroup") monotonic acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("workgroup") acquire acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("workgroup") acquire acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("workgroup") release acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("workgroup") release acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("workgroup") acq_rel acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("workgroup") acq_rel acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("workgroup") seq_cst acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("workgroup") seq_cst acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("workgroup") monotonic seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("workgroup") monotonic seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("workgroup") acquire seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("workgroup") acquire seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("workgroup") release seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("workgroup") release seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("workgroup") acq_rel seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("workgroup") acq_rel seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("workgroup") seq_cst seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("workgroup") seq_cst seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[2:3]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %in, i32 addrspace(1)* %out) {
+ ptr addrspace(1) %in, ptr addrspace(1) %out) {
entry:
- %val = load atomic i32, i32 addrspace(1)* %in syncscope("workgroup-one-as") unordered, align 4
- store i32 %val, i32 addrspace(1)* %out
+ %val = load atomic i32, ptr addrspace(1) %in syncscope("workgroup-one-as") unordered, align 4
+ store i32 %val, ptr addrspace(1) %out
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[2:3]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %in, i32 addrspace(1)* %out) {
+ ptr addrspace(1) %in, ptr addrspace(1) %out) {
entry:
- %val = load atomic i32, i32 addrspace(1)* %in syncscope("workgroup-one-as") monotonic, align 4
- store i32 %val, i32 addrspace(1)* %out
+ %val = load atomic i32, ptr addrspace(1) %in syncscope("workgroup-one-as") monotonic, align 4
+ store i32 %val, ptr addrspace(1) %out
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[2:3]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %in, i32 addrspace(1)* %out) {
+ ptr addrspace(1) %in, ptr addrspace(1) %out) {
entry:
- %val = load atomic i32, i32 addrspace(1)* %in syncscope("workgroup-one-as") acquire, align 4
- store i32 %val, i32 addrspace(1)* %out
+ %val = load atomic i32, ptr addrspace(1) %in syncscope("workgroup-one-as") acquire, align 4
+ store i32 %val, ptr addrspace(1) %out
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[2:3]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %in, i32 addrspace(1)* %out) {
+ ptr addrspace(1) %in, ptr addrspace(1) %out) {
entry:
- %val = load atomic i32, i32 addrspace(1)* %in syncscope("workgroup-one-as") seq_cst, align 4
- store i32 %val, i32 addrspace(1)* %out
+ %val = load atomic i32, ptr addrspace(1) %in syncscope("workgroup-one-as") seq_cst, align 4
+ store i32 %val, ptr addrspace(1) %out
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(1)* %out) {
+ i32 %in, ptr addrspace(1) %out) {
entry:
- store atomic i32 %in, i32 addrspace(1)* %out syncscope("workgroup-one-as") unordered, align 4
+ store atomic i32 %in, ptr addrspace(1) %out syncscope("workgroup-one-as") unordered, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(1)* %out) {
+ i32 %in, ptr addrspace(1) %out) {
entry:
- store atomic i32 %in, i32 addrspace(1)* %out syncscope("workgroup-one-as") monotonic, align 4
+ store atomic i32 %in, ptr addrspace(1) %out syncscope("workgroup-one-as") monotonic, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(1)* %out) {
+ i32 %in, ptr addrspace(1) %out) {
entry:
- store atomic i32 %in, i32 addrspace(1)* %out syncscope("workgroup-one-as") release, align 4
+ store atomic i32 %in, ptr addrspace(1) %out syncscope("workgroup-one-as") release, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(1)* %out) {
+ i32 %in, ptr addrspace(1) %out) {
entry:
- store atomic i32 %in, i32 addrspace(1)* %out syncscope("workgroup-one-as") seq_cst, align 4
+ store atomic i32 %in, ptr addrspace(1) %out syncscope("workgroup-one-as") seq_cst, align 4
ret void
}
; GFX11-CU-NEXT: global_atomic_swap_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in syncscope("workgroup-one-as") monotonic
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in syncscope("workgroup-one-as") monotonic
ret void
}
; GFX11-CU-NEXT: global_atomic_swap_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in syncscope("workgroup-one-as") acquire
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in syncscope("workgroup-one-as") acquire
ret void
}
; GFX11-CU-NEXT: global_atomic_swap_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in syncscope("workgroup-one-as") release
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in syncscope("workgroup-one-as") release
ret void
}
; GFX11-CU-NEXT: global_atomic_swap_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in syncscope("workgroup-one-as") acq_rel
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in syncscope("workgroup-one-as") acq_rel
ret void
}
; GFX11-CU-NEXT: global_atomic_swap_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in syncscope("workgroup-one-as") seq_cst
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in syncscope("workgroup-one-as") seq_cst
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in syncscope("workgroup-one-as") acquire
- store i32 %val, i32 addrspace(1)* %out, align 4
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in syncscope("workgroup-one-as") acquire
+ store i32 %val, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in syncscope("workgroup-one-as") acq_rel
- store i32 %val, i32 addrspace(1)* %out, align 4
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in syncscope("workgroup-one-as") acq_rel
+ store i32 %val, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v0, v1, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in) {
+ ptr addrspace(1) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(1)* %out, i32 %in syncscope("workgroup-one-as") seq_cst
- store i32 %val, i32 addrspace(1)* %out, align 4
+ %val = atomicrmw volatile xchg ptr addrspace(1) %out, i32 %in syncscope("workgroup-one-as") seq_cst
+ store i32 %val, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") monotonic monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("workgroup-one-as") monotonic monotonic
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") acquire monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("workgroup-one-as") acquire monotonic
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") release monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("workgroup-one-as") release monotonic
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") acq_rel monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("workgroup-one-as") acq_rel monotonic
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") seq_cst monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("workgroup-one-as") seq_cst monotonic
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") monotonic acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("workgroup-one-as") monotonic acquire
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") acquire acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("workgroup-one-as") acquire acquire
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") release acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("workgroup-one-as") release acquire
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") acq_rel acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("workgroup-one-as") acq_rel acquire
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") seq_cst acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("workgroup-one-as") seq_cst acquire
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") monotonic seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("workgroup-one-as") monotonic seq_cst
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") acquire seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("workgroup-one-as") acquire seq_cst
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") release seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("workgroup-one-as") release seq_cst
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") acq_rel seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("workgroup-one-as") acq_rel seq_cst
ret void
}
; GFX11-CU-NEXT: global_atomic_cmpswap_b32 v2, v[0:1], s[0:1] offset:16
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") seq_cst seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("workgroup-one-as") seq_cst seq_cst
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") monotonic monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("workgroup-one-as") monotonic monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") acquire monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("workgroup-one-as") acquire monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") release monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("workgroup-one-as") release monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") acq_rel monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("workgroup-one-as") acq_rel monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") seq_cst monotonic
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("workgroup-one-as") seq_cst monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") monotonic acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("workgroup-one-as") monotonic acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") acquire acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("workgroup-one-as") acquire acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") release acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("workgroup-one-as") release acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") acq_rel acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("workgroup-one-as") acq_rel acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") seq_cst acquire
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("workgroup-one-as") seq_cst acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") monotonic seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("workgroup-one-as") monotonic seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") acquire seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("workgroup-one-as") acquire seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") release seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("workgroup-one-as") release seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") acq_rel seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("workgroup-one-as") acq_rel seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v2, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %out, i32 %in, i32 %old) {
+ ptr addrspace(1) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(1)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(1)* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") seq_cst seq_cst
+ %gep = getelementptr i32, ptr addrspace(1) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(1) %gep, i32 %old, i32 %in syncscope("workgroup-one-as") seq_cst seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(1)* %out, align 4
+ store i32 %val0, ptr addrspace(1) %out, align 4
ret void
}
ret void
}
-; CHECK: error: <unknown>:0:0: in function invalid_load void (i32*, i32*): Unsupported non-inclusive atomic synchronization scope
+; CHECK: error: <unknown>:0:0: in function invalid_load void (ptr, ptr): Unsupported non-inclusive atomic synchronization scope
define amdgpu_kernel void @invalid_load(
- i32* %in, i32* %out) {
+ ptr %in, ptr %out) {
entry:
- %val = load atomic i32, i32* %in syncscope("invalid") seq_cst, align 4
- store i32 %val, i32* %out
+ %val = load atomic i32, ptr %in syncscope("invalid") seq_cst, align 4
+ store i32 %val, ptr %out
ret void
}
-; CHECK: error: <unknown>:0:0: in function invalid_store void (i32, i32*): Unsupported non-inclusive atomic synchronization scope
+; CHECK: error: <unknown>:0:0: in function invalid_store void (i32, ptr): Unsupported non-inclusive atomic synchronization scope
define amdgpu_kernel void @invalid_store(
- i32 %in, i32* %out) {
+ i32 %in, ptr %out) {
entry:
- store atomic i32 %in, i32* %out syncscope("invalid") seq_cst, align 4
+ store atomic i32 %in, ptr %out syncscope("invalid") seq_cst, align 4
ret void
}
-; CHECK: error: <unknown>:0:0: in function invalid_cmpxchg void (i32*, i32, i32): Unsupported non-inclusive atomic synchronization scope
+; CHECK: error: <unknown>:0:0: in function invalid_cmpxchg void (ptr, i32, i32): Unsupported non-inclusive atomic synchronization scope
define amdgpu_kernel void @invalid_cmpxchg(
- i32* %out, i32 %in, i32 %old) {
+ ptr %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32* %out, i32 4
- %val = cmpxchg volatile i32* %gep, i32 %old, i32 %in syncscope("invalid") seq_cst seq_cst
+ %gep = getelementptr i32, ptr %out, i32 4
+ %val = cmpxchg volatile ptr %gep, i32 %old, i32 %in syncscope("invalid") seq_cst seq_cst
ret void
}
-; CHECK: error: <unknown>:0:0: in function invalid_rmw void (i32*, i32): Unsupported non-inclusive atomic synchronization scope
+; CHECK: error: <unknown>:0:0: in function invalid_rmw void (ptr, i32): Unsupported non-inclusive atomic synchronization scope
define amdgpu_kernel void @invalid_rmw(
- i32* %out, i32 %in) {
+ ptr %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32* %out, i32 %in syncscope("invalid") seq_cst
+ %val = atomicrmw volatile xchg ptr %out, i32 %in syncscope("invalid") seq_cst
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v1, v0
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %in, i32 addrspace(3)* %out) {
+ ptr addrspace(3) %in, ptr addrspace(3) %out) {
entry:
- %val = load atomic i32, i32 addrspace(3)* %in syncscope("agent") unordered, align 4
- store i32 %val, i32 addrspace(3)* %out
+ %val = load atomic i32, ptr addrspace(3) %in syncscope("agent") unordered, align 4
+ store i32 %val, ptr addrspace(3) %out
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v1, v0
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %in, i32 addrspace(3)* %out) {
+ ptr addrspace(3) %in, ptr addrspace(3) %out) {
entry:
- %val = load atomic i32, i32 addrspace(3)* %in syncscope("agent") monotonic, align 4
- store i32 %val, i32 addrspace(3)* %out
+ %val = load atomic i32, ptr addrspace(3) %in syncscope("agent") monotonic, align 4
+ store i32 %val, ptr addrspace(3) %out
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v1, v0
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %in, i32 addrspace(3)* %out) {
+ ptr addrspace(3) %in, ptr addrspace(3) %out) {
entry:
- %val = load atomic i32, i32 addrspace(3)* %in syncscope("agent") acquire, align 4
- store i32 %val, i32 addrspace(3)* %out
+ %val = load atomic i32, ptr addrspace(3) %in syncscope("agent") acquire, align 4
+ store i32 %val, ptr addrspace(3) %out
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v1, v0
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %in, i32 addrspace(3)* %out) {
+ ptr addrspace(3) %in, ptr addrspace(3) %out) {
entry:
- %val = load atomic i32, i32 addrspace(3)* %in syncscope("agent") seq_cst, align 4
- store i32 %val, i32 addrspace(3)* %out
+ %val = load atomic i32, ptr addrspace(3) %in syncscope("agent") seq_cst, align 4
+ store i32 %val, ptr addrspace(3) %out
ret void
}
; GFX11-CU-NEXT: v_dual_mov_b32 v0, s1 :: v_dual_mov_b32 v1, s0
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(3)* %out) {
+ i32 %in, ptr addrspace(3) %out) {
entry:
- store atomic i32 %in, i32 addrspace(3)* %out syncscope("agent") unordered, align 4
+ store atomic i32 %in, ptr addrspace(3) %out syncscope("agent") unordered, align 4
ret void
}
; GFX11-CU-NEXT: v_dual_mov_b32 v0, s1 :: v_dual_mov_b32 v1, s0
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(3)* %out) {
+ i32 %in, ptr addrspace(3) %out) {
entry:
- store atomic i32 %in, i32 addrspace(3)* %out syncscope("agent") monotonic, align 4
+ store atomic i32 %in, ptr addrspace(3) %out syncscope("agent") monotonic, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(3)* %out) {
+ i32 %in, ptr addrspace(3) %out) {
entry:
- store atomic i32 %in, i32 addrspace(3)* %out syncscope("agent") release, align 4
+ store atomic i32 %in, ptr addrspace(3) %out syncscope("agent") release, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(3)* %out) {
+ i32 %in, ptr addrspace(3) %out) {
entry:
- store atomic i32 %in, i32 addrspace(3)* %out syncscope("agent") seq_cst, align 4
+ store atomic i32 %in, ptr addrspace(3) %out syncscope("agent") seq_cst, align 4
ret void
}
; GFX11-CU-NEXT: v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s1
; GFX11-CU-NEXT: ds_storexchg_rtn_b32 v0, v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in syncscope("agent") monotonic
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in syncscope("agent") monotonic
ret void
}
; GFX11-CU-NEXT: ds_storexchg_rtn_b32 v0, v0, v1
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in syncscope("agent") acquire
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in syncscope("agent") acquire
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_storexchg_rtn_b32 v0, v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in syncscope("agent") release
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in syncscope("agent") release
ret void
}
; GFX11-CU-NEXT: ds_storexchg_rtn_b32 v0, v0, v1
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in syncscope("agent") acq_rel
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in syncscope("agent") acq_rel
ret void
}
; GFX11-CU-NEXT: ds_storexchg_rtn_b32 v0, v0, v1
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in syncscope("agent") seq_cst
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in syncscope("agent") seq_cst
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in syncscope("agent") acquire
- store i32 %val, i32 addrspace(3)* %out, align 4
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in syncscope("agent") acquire
+ store i32 %val, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in syncscope("agent") acq_rel
- store i32 %val, i32 addrspace(3)* %out, align 4
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in syncscope("agent") acq_rel
+ store i32 %val, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in syncscope("agent") seq_cst
- store i32 %val, i32 addrspace(3)* %out, align 4
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in syncscope("agent") seq_cst
+ store i32 %val, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("agent") monotonic monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("agent") monotonic monotonic
ret void
}
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("agent") acquire monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("agent") acquire monotonic
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("agent") release monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("agent") release monotonic
ret void
}
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("agent") acq_rel monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("agent") acq_rel monotonic
ret void
}
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("agent") seq_cst monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("agent") seq_cst monotonic
ret void
}
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("agent") monotonic acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("agent") monotonic acquire
ret void
}
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("agent") acquire acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("agent") acquire acquire
ret void
}
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("agent") release acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("agent") release acquire
ret void
}
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("agent") acq_rel acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("agent") acq_rel acquire
ret void
}
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("agent") seq_cst acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("agent") seq_cst acquire
ret void
}
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("agent") monotonic seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("agent") monotonic seq_cst
ret void
}
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("agent") acquire seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("agent") acquire seq_cst
ret void
}
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("agent") release seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("agent") release seq_cst
ret void
}
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("agent") acq_rel seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("agent") acq_rel seq_cst
ret void
}
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("agent") seq_cst seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("agent") seq_cst seq_cst
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("agent") monotonic monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("agent") monotonic monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("agent") acquire monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("agent") acquire monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("agent") release monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("agent") release monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("agent") acq_rel monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("agent") acq_rel monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("agent") seq_cst monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("agent") seq_cst monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("agent") monotonic acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("agent") monotonic acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("agent") acquire acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("agent") acquire acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("agent") release acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("agent") release acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("agent") acq_rel acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("agent") acq_rel acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("agent") seq_cst acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("agent") seq_cst acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("agent") monotonic seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("agent") monotonic seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("agent") acquire seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("agent") acquire seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("agent") release seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("agent") release seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("agent") acq_rel seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("agent") acq_rel seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("agent") seq_cst seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("agent") seq_cst seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v1, v0
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %in, i32 addrspace(3)* %out) {
+ ptr addrspace(3) %in, ptr addrspace(3) %out) {
entry:
- %val = load atomic i32, i32 addrspace(3)* %in syncscope("agent-one-as") unordered, align 4
- store i32 %val, i32 addrspace(3)* %out
+ %val = load atomic i32, ptr addrspace(3) %in syncscope("agent-one-as") unordered, align 4
+ store i32 %val, ptr addrspace(3) %out
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v1, v0
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %in, i32 addrspace(3)* %out) {
+ ptr addrspace(3) %in, ptr addrspace(3) %out) {
entry:
- %val = load atomic i32, i32 addrspace(3)* %in syncscope("agent-one-as") monotonic, align 4
- store i32 %val, i32 addrspace(3)* %out
+ %val = load atomic i32, ptr addrspace(3) %in syncscope("agent-one-as") monotonic, align 4
+ store i32 %val, ptr addrspace(3) %out
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v1, v0
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %in, i32 addrspace(3)* %out) {
+ ptr addrspace(3) %in, ptr addrspace(3) %out) {
entry:
- %val = load atomic i32, i32 addrspace(3)* %in syncscope("agent-one-as") acquire, align 4
- store i32 %val, i32 addrspace(3)* %out
+ %val = load atomic i32, ptr addrspace(3) %in syncscope("agent-one-as") acquire, align 4
+ store i32 %val, ptr addrspace(3) %out
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v1, v0
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %in, i32 addrspace(3)* %out) {
+ ptr addrspace(3) %in, ptr addrspace(3) %out) {
entry:
- %val = load atomic i32, i32 addrspace(3)* %in syncscope("agent-one-as") seq_cst, align 4
- store i32 %val, i32 addrspace(3)* %out
+ %val = load atomic i32, ptr addrspace(3) %in syncscope("agent-one-as") seq_cst, align 4
+ store i32 %val, ptr addrspace(3) %out
ret void
}
; GFX11-CU-NEXT: v_dual_mov_b32 v0, s1 :: v_dual_mov_b32 v1, s0
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(3)* %out) {
+ i32 %in, ptr addrspace(3) %out) {
entry:
- store atomic i32 %in, i32 addrspace(3)* %out syncscope("agent-one-as") unordered, align 4
+ store atomic i32 %in, ptr addrspace(3) %out syncscope("agent-one-as") unordered, align 4
ret void
}
; GFX11-CU-NEXT: v_dual_mov_b32 v0, s1 :: v_dual_mov_b32 v1, s0
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(3)* %out) {
+ i32 %in, ptr addrspace(3) %out) {
entry:
- store atomic i32 %in, i32 addrspace(3)* %out syncscope("agent-one-as") monotonic, align 4
+ store atomic i32 %in, ptr addrspace(3) %out syncscope("agent-one-as") monotonic, align 4
ret void
}
; GFX11-CU-NEXT: v_dual_mov_b32 v0, s1 :: v_dual_mov_b32 v1, s0
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(3)* %out) {
+ i32 %in, ptr addrspace(3) %out) {
entry:
- store atomic i32 %in, i32 addrspace(3)* %out syncscope("agent-one-as") release, align 4
+ store atomic i32 %in, ptr addrspace(3) %out syncscope("agent-one-as") release, align 4
ret void
}
; GFX11-CU-NEXT: v_dual_mov_b32 v0, s1 :: v_dual_mov_b32 v1, s0
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(3)* %out) {
+ i32 %in, ptr addrspace(3) %out) {
entry:
- store atomic i32 %in, i32 addrspace(3)* %out syncscope("agent-one-as") seq_cst, align 4
+ store atomic i32 %in, ptr addrspace(3) %out syncscope("agent-one-as") seq_cst, align 4
ret void
}
; GFX11-CU-NEXT: v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s1
; GFX11-CU-NEXT: ds_storexchg_rtn_b32 v0, v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in syncscope("agent-one-as") monotonic
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in syncscope("agent-one-as") monotonic
ret void
}
; GFX11-CU-NEXT: v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s1
; GFX11-CU-NEXT: ds_storexchg_rtn_b32 v0, v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in syncscope("agent-one-as") acquire
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in syncscope("agent-one-as") acquire
ret void
}
; GFX11-CU-NEXT: v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s1
; GFX11-CU-NEXT: ds_storexchg_rtn_b32 v0, v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in syncscope("agent-one-as") release
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in syncscope("agent-one-as") release
ret void
}
; GFX11-CU-NEXT: v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s1
; GFX11-CU-NEXT: ds_storexchg_rtn_b32 v0, v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in syncscope("agent-one-as") acq_rel
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in syncscope("agent-one-as") acq_rel
ret void
}
; GFX11-CU-NEXT: v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s1
; GFX11-CU-NEXT: ds_storexchg_rtn_b32 v0, v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in syncscope("agent-one-as") seq_cst
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in syncscope("agent-one-as") seq_cst
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in syncscope("agent-one-as") acquire
- store i32 %val, i32 addrspace(3)* %out, align 4
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in syncscope("agent-one-as") acquire
+ store i32 %val, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in syncscope("agent-one-as") acq_rel
- store i32 %val, i32 addrspace(3)* %out, align 4
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in syncscope("agent-one-as") acq_rel
+ store i32 %val, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in syncscope("agent-one-as") seq_cst
- store i32 %val, i32 addrspace(3)* %out, align 4
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in syncscope("agent-one-as") seq_cst
+ store i32 %val, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("agent-one-as") monotonic monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("agent-one-as") monotonic monotonic
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("agent-one-as") acquire monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("agent-one-as") acquire monotonic
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("agent-one-as") release monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("agent-one-as") release monotonic
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("agent-one-as") acq_rel monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("agent-one-as") acq_rel monotonic
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("agent-one-as") seq_cst monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("agent-one-as") seq_cst monotonic
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("agent-one-as") monotonic acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("agent-one-as") monotonic acquire
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("agent-one-as") acquire acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("agent-one-as") acquire acquire
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("agent-one-as") release acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("agent-one-as") release acquire
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("agent-one-as") acq_rel acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("agent-one-as") acq_rel acquire
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("agent-one-as") seq_cst acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("agent-one-as") seq_cst acquire
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("agent-one-as") monotonic seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("agent-one-as") monotonic seq_cst
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("agent-one-as") acquire seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("agent-one-as") acquire seq_cst
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("agent-one-as") release seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("agent-one-as") release seq_cst
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("agent-one-as") acq_rel seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("agent-one-as") acq_rel seq_cst
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("agent-one-as") seq_cst seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("agent-one-as") seq_cst seq_cst
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("agent-one-as") monotonic monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("agent-one-as") monotonic monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("agent-one-as") acquire monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("agent-one-as") acquire monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("agent-one-as") release monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("agent-one-as") release monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("agent-one-as") acq_rel monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("agent-one-as") acq_rel monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("agent-one-as") seq_cst monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("agent-one-as") seq_cst monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("agent-one-as") monotonic acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("agent-one-as") monotonic acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("agent-one-as") acquire acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("agent-one-as") acquire acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("agent-one-as") release acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("agent-one-as") release acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("agent-one-as") acq_rel acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("agent-one-as") acq_rel acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("agent-one-as") seq_cst acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("agent-one-as") seq_cst acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("agent-one-as") monotonic seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("agent-one-as") monotonic seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("agent-one-as") acquire seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("agent-one-as") acquire seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("agent-one-as") release seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("agent-one-as") release seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("agent-one-as") acq_rel seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("agent-one-as") acq_rel seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("agent-one-as") seq_cst seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("agent-one-as") seq_cst seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v1, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %in, i32 addrspace(1)* %out) {
+ ptr addrspace(3) %in, ptr addrspace(1) %out) {
entry:
- %val = load i32, i32 addrspace(3)* %in, align 4, !nontemporal !0
- store i32 %val, i32 addrspace(1)* %out
+ %val = load i32, ptr addrspace(3) %in, align 4, !nontemporal !0
+ store i32 %val, ptr addrspace(1) %out
ret void
}
; GFX11-CU-NEXT: global_store_b32 v1, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %in, i32 addrspace(1)* %out) {
+ ptr addrspace(3) %in, ptr addrspace(1) %out) {
entry:
%tid = call i32 @llvm.amdgcn.workitem.id.x()
- %val.gep = getelementptr inbounds i32, i32 addrspace(3)* %in, i32 %tid
- %val = load i32, i32 addrspace(3)* %val.gep, align 4, !nontemporal !0
- store i32 %val, i32 addrspace(1)* %out
+ %val.gep = getelementptr inbounds i32, ptr addrspace(3) %in, i32 %tid
+ %val = load i32, ptr addrspace(3) %val.gep, align 4, !nontemporal !0
+ store i32 %val, ptr addrspace(1) %out
ret void
}
; GFX11-CU-NEXT: v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s1
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %in, i32 addrspace(3)* %out) {
+ ptr addrspace(1) %in, ptr addrspace(3) %out) {
entry:
- %val = load i32, i32 addrspace(1)* %in, align 4
- store i32 %val, i32 addrspace(3)* %out, !nontemporal !0
+ %val = load i32, ptr addrspace(1) %in, align 4
+ store i32 %val, ptr addrspace(3) %out, !nontemporal !0
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v1, s1
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %in, i32 addrspace(3)* %out) {
+ ptr addrspace(1) %in, ptr addrspace(3) %out) {
entry:
%tid = call i32 @llvm.amdgcn.workitem.id.x()
- %val = load i32, i32 addrspace(1)* %in, align 4
- %out.gep = getelementptr inbounds i32, i32 addrspace(3)* %out, i32 %tid
- store i32 %val, i32 addrspace(3)* %out.gep, !nontemporal !0
+ %val = load i32, ptr addrspace(1) %in, align 4
+ %out.gep = getelementptr inbounds i32, ptr addrspace(3) %out, i32 %tid
+ store i32 %val, ptr addrspace(3) %out.gep, !nontemporal !0
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v1, v0
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %in, i32 addrspace(3)* %out) {
+ ptr addrspace(3) %in, ptr addrspace(3) %out) {
entry:
- %val = load atomic i32, i32 addrspace(3)* %in syncscope("singlethread") unordered, align 4
- store i32 %val, i32 addrspace(3)* %out
+ %val = load atomic i32, ptr addrspace(3) %in syncscope("singlethread") unordered, align 4
+ store i32 %val, ptr addrspace(3) %out
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v1, v0
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %in, i32 addrspace(3)* %out) {
+ ptr addrspace(3) %in, ptr addrspace(3) %out) {
entry:
- %val = load atomic i32, i32 addrspace(3)* %in syncscope("singlethread") monotonic, align 4
- store i32 %val, i32 addrspace(3)* %out
+ %val = load atomic i32, ptr addrspace(3) %in syncscope("singlethread") monotonic, align 4
+ store i32 %val, ptr addrspace(3) %out
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v1, v0
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %in, i32 addrspace(3)* %out) {
+ ptr addrspace(3) %in, ptr addrspace(3) %out) {
entry:
- %val = load atomic i32, i32 addrspace(3)* %in syncscope("singlethread") acquire, align 4
- store i32 %val, i32 addrspace(3)* %out
+ %val = load atomic i32, ptr addrspace(3) %in syncscope("singlethread") acquire, align 4
+ store i32 %val, ptr addrspace(3) %out
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v1, v0
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %in, i32 addrspace(3)* %out) {
+ ptr addrspace(3) %in, ptr addrspace(3) %out) {
entry:
- %val = load atomic i32, i32 addrspace(3)* %in syncscope("singlethread") seq_cst, align 4
- store i32 %val, i32 addrspace(3)* %out
+ %val = load atomic i32, ptr addrspace(3) %in syncscope("singlethread") seq_cst, align 4
+ store i32 %val, ptr addrspace(3) %out
ret void
}
; GFX11-CU-NEXT: v_dual_mov_b32 v0, s1 :: v_dual_mov_b32 v1, s0
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(3)* %out) {
+ i32 %in, ptr addrspace(3) %out) {
entry:
- store atomic i32 %in, i32 addrspace(3)* %out syncscope("singlethread") unordered, align 4
+ store atomic i32 %in, ptr addrspace(3) %out syncscope("singlethread") unordered, align 4
ret void
}
; GFX11-CU-NEXT: v_dual_mov_b32 v0, s1 :: v_dual_mov_b32 v1, s0
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(3)* %out) {
+ i32 %in, ptr addrspace(3) %out) {
entry:
- store atomic i32 %in, i32 addrspace(3)* %out syncscope("singlethread") monotonic, align 4
+ store atomic i32 %in, ptr addrspace(3) %out syncscope("singlethread") monotonic, align 4
ret void
}
; GFX11-CU-NEXT: v_dual_mov_b32 v0, s1 :: v_dual_mov_b32 v1, s0
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(3)* %out) {
+ i32 %in, ptr addrspace(3) %out) {
entry:
- store atomic i32 %in, i32 addrspace(3)* %out syncscope("singlethread") release, align 4
+ store atomic i32 %in, ptr addrspace(3) %out syncscope("singlethread") release, align 4
ret void
}
; GFX11-CU-NEXT: v_dual_mov_b32 v0, s1 :: v_dual_mov_b32 v1, s0
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(3)* %out) {
+ i32 %in, ptr addrspace(3) %out) {
entry:
- store atomic i32 %in, i32 addrspace(3)* %out syncscope("singlethread") seq_cst, align 4
+ store atomic i32 %in, ptr addrspace(3) %out syncscope("singlethread") seq_cst, align 4
ret void
}
; GFX11-CU-NEXT: v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s1
; GFX11-CU-NEXT: ds_storexchg_rtn_b32 v0, v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in syncscope("singlethread") monotonic
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in syncscope("singlethread") monotonic
ret void
}
; GFX11-CU-NEXT: v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s1
; GFX11-CU-NEXT: ds_storexchg_rtn_b32 v0, v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in syncscope("singlethread") acquire
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in syncscope("singlethread") acquire
ret void
}
; GFX11-CU-NEXT: v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s1
; GFX11-CU-NEXT: ds_storexchg_rtn_b32 v0, v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in syncscope("singlethread") release
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in syncscope("singlethread") release
ret void
}
; GFX11-CU-NEXT: v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s1
; GFX11-CU-NEXT: ds_storexchg_rtn_b32 v0, v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in syncscope("singlethread") acq_rel
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in syncscope("singlethread") acq_rel
ret void
}
; GFX11-CU-NEXT: v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s1
; GFX11-CU-NEXT: ds_storexchg_rtn_b32 v0, v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in syncscope("singlethread") seq_cst
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in syncscope("singlethread") seq_cst
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in syncscope("singlethread") acquire
- store i32 %val, i32 addrspace(3)* %out, align 4
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in syncscope("singlethread") acquire
+ store i32 %val, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in syncscope("singlethread") acq_rel
- store i32 %val, i32 addrspace(3)* %out, align 4
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in syncscope("singlethread") acq_rel
+ store i32 %val, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in syncscope("singlethread") seq_cst
- store i32 %val, i32 addrspace(3)* %out, align 4
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in syncscope("singlethread") seq_cst
+ store i32 %val, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("singlethread") monotonic monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("singlethread") monotonic monotonic
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("singlethread") acquire monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("singlethread") acquire monotonic
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("singlethread") release monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("singlethread") release monotonic
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("singlethread") acq_rel monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("singlethread") acq_rel monotonic
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("singlethread") seq_cst monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("singlethread") seq_cst monotonic
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("singlethread") monotonic acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("singlethread") monotonic acquire
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("singlethread") acquire acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("singlethread") acquire acquire
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("singlethread") release acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("singlethread") release acquire
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("singlethread") acq_rel acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("singlethread") acq_rel acquire
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("singlethread") seq_cst acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("singlethread") seq_cst acquire
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("singlethread") monotonic seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("singlethread") monotonic seq_cst
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("singlethread") acquire seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("singlethread") acquire seq_cst
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("singlethread") release seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("singlethread") release seq_cst
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("singlethread") acq_rel seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("singlethread") acq_rel seq_cst
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("singlethread") seq_cst seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("singlethread") seq_cst seq_cst
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("singlethread") monotonic monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("singlethread") monotonic monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("singlethread") acquire monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("singlethread") acquire monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("singlethread") release monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("singlethread") release monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("singlethread") acq_rel monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("singlethread") acq_rel monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("singlethread") seq_cst monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("singlethread") seq_cst monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("singlethread") monotonic acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("singlethread") monotonic acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("singlethread") acquire acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("singlethread") acquire acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("singlethread") release acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("singlethread") release acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("singlethread") acq_rel acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("singlethread") acq_rel acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("singlethread") seq_cst acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("singlethread") seq_cst acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("singlethread") monotonic seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("singlethread") monotonic seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("singlethread") acquire seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("singlethread") acquire seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("singlethread") release seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("singlethread") release seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("singlethread") acq_rel seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("singlethread") acq_rel seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("singlethread") seq_cst seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("singlethread") seq_cst seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v1, v0
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %in, i32 addrspace(3)* %out) {
+ ptr addrspace(3) %in, ptr addrspace(3) %out) {
entry:
- %val = load atomic i32, i32 addrspace(3)* %in syncscope("singlethread-one-as") unordered, align 4
- store i32 %val, i32 addrspace(3)* %out
+ %val = load atomic i32, ptr addrspace(3) %in syncscope("singlethread-one-as") unordered, align 4
+ store i32 %val, ptr addrspace(3) %out
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v1, v0
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %in, i32 addrspace(3)* %out) {
+ ptr addrspace(3) %in, ptr addrspace(3) %out) {
entry:
- %val = load atomic i32, i32 addrspace(3)* %in syncscope("singlethread-one-as") monotonic, align 4
- store i32 %val, i32 addrspace(3)* %out
+ %val = load atomic i32, ptr addrspace(3) %in syncscope("singlethread-one-as") monotonic, align 4
+ store i32 %val, ptr addrspace(3) %out
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v1, v0
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %in, i32 addrspace(3)* %out) {
+ ptr addrspace(3) %in, ptr addrspace(3) %out) {
entry:
- %val = load atomic i32, i32 addrspace(3)* %in syncscope("singlethread-one-as") acquire, align 4
- store i32 %val, i32 addrspace(3)* %out
+ %val = load atomic i32, ptr addrspace(3) %in syncscope("singlethread-one-as") acquire, align 4
+ store i32 %val, ptr addrspace(3) %out
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v1, v0
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %in, i32 addrspace(3)* %out) {
+ ptr addrspace(3) %in, ptr addrspace(3) %out) {
entry:
- %val = load atomic i32, i32 addrspace(3)* %in syncscope("singlethread-one-as") seq_cst, align 4
- store i32 %val, i32 addrspace(3)* %out
+ %val = load atomic i32, ptr addrspace(3) %in syncscope("singlethread-one-as") seq_cst, align 4
+ store i32 %val, ptr addrspace(3) %out
ret void
}
; GFX11-CU-NEXT: v_dual_mov_b32 v0, s1 :: v_dual_mov_b32 v1, s0
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(3)* %out) {
+ i32 %in, ptr addrspace(3) %out) {
entry:
- store atomic i32 %in, i32 addrspace(3)* %out syncscope("singlethread-one-as") unordered, align 4
+ store atomic i32 %in, ptr addrspace(3) %out syncscope("singlethread-one-as") unordered, align 4
ret void
}
; GFX11-CU-NEXT: v_dual_mov_b32 v0, s1 :: v_dual_mov_b32 v1, s0
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(3)* %out) {
+ i32 %in, ptr addrspace(3) %out) {
entry:
- store atomic i32 %in, i32 addrspace(3)* %out syncscope("singlethread-one-as") monotonic, align 4
+ store atomic i32 %in, ptr addrspace(3) %out syncscope("singlethread-one-as") monotonic, align 4
ret void
}
; GFX11-CU-NEXT: v_dual_mov_b32 v0, s1 :: v_dual_mov_b32 v1, s0
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(3)* %out) {
+ i32 %in, ptr addrspace(3) %out) {
entry:
- store atomic i32 %in, i32 addrspace(3)* %out syncscope("singlethread-one-as") release, align 4
+ store atomic i32 %in, ptr addrspace(3) %out syncscope("singlethread-one-as") release, align 4
ret void
}
; GFX11-CU-NEXT: v_dual_mov_b32 v0, s1 :: v_dual_mov_b32 v1, s0
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(3)* %out) {
+ i32 %in, ptr addrspace(3) %out) {
entry:
- store atomic i32 %in, i32 addrspace(3)* %out syncscope("singlethread-one-as") seq_cst, align 4
+ store atomic i32 %in, ptr addrspace(3) %out syncscope("singlethread-one-as") seq_cst, align 4
ret void
}
; GFX11-CU-NEXT: v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s1
; GFX11-CU-NEXT: ds_storexchg_rtn_b32 v0, v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in syncscope("singlethread-one-as") monotonic
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in syncscope("singlethread-one-as") monotonic
ret void
}
; GFX11-CU-NEXT: v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s1
; GFX11-CU-NEXT: ds_storexchg_rtn_b32 v0, v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in syncscope("singlethread-one-as") acquire
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in syncscope("singlethread-one-as") acquire
ret void
}
; GFX11-CU-NEXT: v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s1
; GFX11-CU-NEXT: ds_storexchg_rtn_b32 v0, v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in syncscope("singlethread-one-as") release
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in syncscope("singlethread-one-as") release
ret void
}
; GFX11-CU-NEXT: v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s1
; GFX11-CU-NEXT: ds_storexchg_rtn_b32 v0, v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in syncscope("singlethread-one-as") acq_rel
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in syncscope("singlethread-one-as") acq_rel
ret void
}
; GFX11-CU-NEXT: v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s1
; GFX11-CU-NEXT: ds_storexchg_rtn_b32 v0, v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in syncscope("singlethread-one-as") seq_cst
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in syncscope("singlethread-one-as") seq_cst
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in syncscope("singlethread-one-as") acquire
- store i32 %val, i32 addrspace(3)* %out, align 4
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in syncscope("singlethread-one-as") acquire
+ store i32 %val, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in syncscope("singlethread-one-as") acq_rel
- store i32 %val, i32 addrspace(3)* %out, align 4
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in syncscope("singlethread-one-as") acq_rel
+ store i32 %val, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in syncscope("singlethread-one-as") seq_cst
- store i32 %val, i32 addrspace(3)* %out, align 4
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in syncscope("singlethread-one-as") seq_cst
+ store i32 %val, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") monotonic monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("singlethread-one-as") monotonic monotonic
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") acquire monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("singlethread-one-as") acquire monotonic
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") release monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("singlethread-one-as") release monotonic
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") acq_rel monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("singlethread-one-as") acq_rel monotonic
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") seq_cst monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("singlethread-one-as") seq_cst monotonic
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") monotonic acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("singlethread-one-as") monotonic acquire
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") acquire acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("singlethread-one-as") acquire acquire
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") release acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("singlethread-one-as") release acquire
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") acq_rel acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("singlethread-one-as") acq_rel acquire
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") seq_cst acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("singlethread-one-as") seq_cst acquire
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") monotonic seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("singlethread-one-as") monotonic seq_cst
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") acquire seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("singlethread-one-as") acquire seq_cst
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") release seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("singlethread-one-as") release seq_cst
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") acq_rel seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("singlethread-one-as") acq_rel seq_cst
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") seq_cst seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("singlethread-one-as") seq_cst seq_cst
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") monotonic monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("singlethread-one-as") monotonic monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") acquire monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("singlethread-one-as") acquire monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") release monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("singlethread-one-as") release monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") acq_rel monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("singlethread-one-as") acq_rel monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") seq_cst monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("singlethread-one-as") seq_cst monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") monotonic acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("singlethread-one-as") monotonic acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") acquire acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("singlethread-one-as") acquire acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") release acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("singlethread-one-as") release acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") acq_rel acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("singlethread-one-as") acq_rel acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") seq_cst acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("singlethread-one-as") seq_cst acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") monotonic seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("singlethread-one-as") monotonic seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") acquire seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("singlethread-one-as") acquire seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") release seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("singlethread-one-as") release seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") acq_rel seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("singlethread-one-as") acq_rel seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("singlethread-one-as") seq_cst seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("singlethread-one-as") seq_cst seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v1, v0
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %in, i32 addrspace(3)* %out) {
+ ptr addrspace(3) %in, ptr addrspace(3) %out) {
entry:
- %val = load atomic i32, i32 addrspace(3)* %in unordered, align 4
- store i32 %val, i32 addrspace(3)* %out
+ %val = load atomic i32, ptr addrspace(3) %in unordered, align 4
+ store i32 %val, ptr addrspace(3) %out
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v1, v0
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %in, i32 addrspace(3)* %out) {
+ ptr addrspace(3) %in, ptr addrspace(3) %out) {
entry:
- %val = load atomic i32, i32 addrspace(3)* %in monotonic, align 4
- store i32 %val, i32 addrspace(3)* %out
+ %val = load atomic i32, ptr addrspace(3) %in monotonic, align 4
+ store i32 %val, ptr addrspace(3) %out
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v1, v0
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %in, i32 addrspace(3)* %out) {
+ ptr addrspace(3) %in, ptr addrspace(3) %out) {
entry:
- %val = load atomic i32, i32 addrspace(3)* %in acquire, align 4
- store i32 %val, i32 addrspace(3)* %out
+ %val = load atomic i32, ptr addrspace(3) %in acquire, align 4
+ store i32 %val, ptr addrspace(3) %out
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v1, v0
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %in, i32 addrspace(3)* %out) {
+ ptr addrspace(3) %in, ptr addrspace(3) %out) {
entry:
- %val = load atomic i32, i32 addrspace(3)* %in seq_cst, align 4
- store i32 %val, i32 addrspace(3)* %out
+ %val = load atomic i32, ptr addrspace(3) %in seq_cst, align 4
+ store i32 %val, ptr addrspace(3) %out
ret void
}
; GFX11-CU-NEXT: v_dual_mov_b32 v0, s1 :: v_dual_mov_b32 v1, s0
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(3)* %out) {
+ i32 %in, ptr addrspace(3) %out) {
entry:
- store atomic i32 %in, i32 addrspace(3)* %out unordered, align 4
+ store atomic i32 %in, ptr addrspace(3) %out unordered, align 4
ret void
}
; GFX11-CU-NEXT: v_dual_mov_b32 v0, s1 :: v_dual_mov_b32 v1, s0
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(3)* %out) {
+ i32 %in, ptr addrspace(3) %out) {
entry:
- store atomic i32 %in, i32 addrspace(3)* %out monotonic, align 4
+ store atomic i32 %in, ptr addrspace(3) %out monotonic, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(3)* %out) {
+ i32 %in, ptr addrspace(3) %out) {
entry:
- store atomic i32 %in, i32 addrspace(3)* %out release, align 4
+ store atomic i32 %in, ptr addrspace(3) %out release, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(3)* %out) {
+ i32 %in, ptr addrspace(3) %out) {
entry:
- store atomic i32 %in, i32 addrspace(3)* %out seq_cst, align 4
+ store atomic i32 %in, ptr addrspace(3) %out seq_cst, align 4
ret void
}
; GFX11-CU-NEXT: v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s1
; GFX11-CU-NEXT: ds_storexchg_rtn_b32 v0, v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in monotonic
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in monotonic
ret void
}
; GFX11-CU-NEXT: ds_storexchg_rtn_b32 v0, v0, v1
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in acquire
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in acquire
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_storexchg_rtn_b32 v0, v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in release
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in release
ret void
}
; GFX11-CU-NEXT: ds_storexchg_rtn_b32 v0, v0, v1
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in acq_rel
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in acq_rel
ret void
}
; GFX11-CU-NEXT: ds_storexchg_rtn_b32 v0, v0, v1
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in seq_cst
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in seq_cst
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in acquire
- store i32 %val, i32 addrspace(3)* %out, align 4
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in acquire
+ store i32 %val, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in acq_rel
- store i32 %val, i32 addrspace(3)* %out, align 4
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in acq_rel
+ store i32 %val, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in seq_cst
- store i32 %val, i32 addrspace(3)* %out, align 4
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in seq_cst
+ store i32 %val, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in monotonic monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in monotonic monotonic
ret void
}
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in acquire monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in acquire monotonic
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in release monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in release monotonic
ret void
}
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in acq_rel monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in acq_rel monotonic
ret void
}
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in seq_cst monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in seq_cst monotonic
ret void
}
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in monotonic acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in monotonic acquire
ret void
}
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in acquire acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in acquire acquire
ret void
}
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in release acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in release acquire
ret void
}
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in acq_rel acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in acq_rel acquire
ret void
}
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in seq_cst acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in seq_cst acquire
ret void
}
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in monotonic seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in monotonic seq_cst
ret void
}
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in acquire seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in acquire seq_cst
ret void
}
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in release seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in release seq_cst
ret void
}
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in acq_rel seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in acq_rel seq_cst
ret void
}
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in seq_cst seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in seq_cst seq_cst
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in monotonic monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in monotonic monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in acquire monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in acquire monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in release monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in release monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in acq_rel monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in acq_rel monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in seq_cst monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in seq_cst monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in monotonic acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in monotonic acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in acquire acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in acquire acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in release acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in release acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in acq_rel acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in acq_rel acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in seq_cst acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in seq_cst acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in monotonic seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in monotonic seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in acquire seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in acquire seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in release seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in release seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in acq_rel seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in acq_rel seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in seq_cst seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in seq_cst seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v1, v0
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %in, i32 addrspace(3)* %out) {
+ ptr addrspace(3) %in, ptr addrspace(3) %out) {
entry:
- %val = load atomic i32, i32 addrspace(3)* %in syncscope("one-as") unordered, align 4
- store i32 %val, i32 addrspace(3)* %out
+ %val = load atomic i32, ptr addrspace(3) %in syncscope("one-as") unordered, align 4
+ store i32 %val, ptr addrspace(3) %out
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v1, v0
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %in, i32 addrspace(3)* %out) {
+ ptr addrspace(3) %in, ptr addrspace(3) %out) {
entry:
- %val = load atomic i32, i32 addrspace(3)* %in syncscope("one-as") monotonic, align 4
- store i32 %val, i32 addrspace(3)* %out
+ %val = load atomic i32, ptr addrspace(3) %in syncscope("one-as") monotonic, align 4
+ store i32 %val, ptr addrspace(3) %out
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v1, v0
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %in, i32 addrspace(3)* %out) {
+ ptr addrspace(3) %in, ptr addrspace(3) %out) {
entry:
- %val = load atomic i32, i32 addrspace(3)* %in syncscope("one-as") acquire, align 4
- store i32 %val, i32 addrspace(3)* %out
+ %val = load atomic i32, ptr addrspace(3) %in syncscope("one-as") acquire, align 4
+ store i32 %val, ptr addrspace(3) %out
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v1, v0
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %in, i32 addrspace(3)* %out) {
+ ptr addrspace(3) %in, ptr addrspace(3) %out) {
entry:
- %val = load atomic i32, i32 addrspace(3)* %in syncscope("one-as") seq_cst, align 4
- store i32 %val, i32 addrspace(3)* %out
+ %val = load atomic i32, ptr addrspace(3) %in syncscope("one-as") seq_cst, align 4
+ store i32 %val, ptr addrspace(3) %out
ret void
}
; GFX11-CU-NEXT: v_dual_mov_b32 v0, s1 :: v_dual_mov_b32 v1, s0
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(3)* %out) {
+ i32 %in, ptr addrspace(3) %out) {
entry:
- store atomic i32 %in, i32 addrspace(3)* %out syncscope("one-as") unordered, align 4
+ store atomic i32 %in, ptr addrspace(3) %out syncscope("one-as") unordered, align 4
ret void
}
; GFX11-CU-NEXT: v_dual_mov_b32 v0, s1 :: v_dual_mov_b32 v1, s0
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(3)* %out) {
+ i32 %in, ptr addrspace(3) %out) {
entry:
- store atomic i32 %in, i32 addrspace(3)* %out syncscope("one-as") monotonic, align 4
+ store atomic i32 %in, ptr addrspace(3) %out syncscope("one-as") monotonic, align 4
ret void
}
; GFX11-CU-NEXT: v_dual_mov_b32 v0, s1 :: v_dual_mov_b32 v1, s0
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(3)* %out) {
+ i32 %in, ptr addrspace(3) %out) {
entry:
- store atomic i32 %in, i32 addrspace(3)* %out syncscope("one-as") release, align 4
+ store atomic i32 %in, ptr addrspace(3) %out syncscope("one-as") release, align 4
ret void
}
; GFX11-CU-NEXT: v_dual_mov_b32 v0, s1 :: v_dual_mov_b32 v1, s0
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(3)* %out) {
+ i32 %in, ptr addrspace(3) %out) {
entry:
- store atomic i32 %in, i32 addrspace(3)* %out syncscope("one-as") seq_cst, align 4
+ store atomic i32 %in, ptr addrspace(3) %out syncscope("one-as") seq_cst, align 4
ret void
}
; GFX11-CU-NEXT: v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s1
; GFX11-CU-NEXT: ds_storexchg_rtn_b32 v0, v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in syncscope("one-as") monotonic
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in syncscope("one-as") monotonic
ret void
}
; GFX11-CU-NEXT: v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s1
; GFX11-CU-NEXT: ds_storexchg_rtn_b32 v0, v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in syncscope("one-as") acquire
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in syncscope("one-as") acquire
ret void
}
; GFX11-CU-NEXT: v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s1
; GFX11-CU-NEXT: ds_storexchg_rtn_b32 v0, v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in syncscope("one-as") release
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in syncscope("one-as") release
ret void
}
; GFX11-CU-NEXT: v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s1
; GFX11-CU-NEXT: ds_storexchg_rtn_b32 v0, v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in syncscope("one-as") acq_rel
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in syncscope("one-as") acq_rel
ret void
}
; GFX11-CU-NEXT: v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s1
; GFX11-CU-NEXT: ds_storexchg_rtn_b32 v0, v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in syncscope("one-as") seq_cst
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in syncscope("one-as") seq_cst
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in syncscope("one-as") acquire
- store i32 %val, i32 addrspace(3)* %out, align 4
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in syncscope("one-as") acquire
+ store i32 %val, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in syncscope("one-as") acq_rel
- store i32 %val, i32 addrspace(3)* %out, align 4
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in syncscope("one-as") acq_rel
+ store i32 %val, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in syncscope("one-as") seq_cst
- store i32 %val, i32 addrspace(3)* %out, align 4
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in syncscope("one-as") seq_cst
+ store i32 %val, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("one-as") monotonic monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("one-as") monotonic monotonic
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("one-as") acquire monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("one-as") acquire monotonic
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("one-as") release monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("one-as") release monotonic
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("one-as") acq_rel monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("one-as") acq_rel monotonic
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("one-as") seq_cst monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("one-as") seq_cst monotonic
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("one-as") monotonic acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("one-as") monotonic acquire
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("one-as") acquire acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("one-as") acquire acquire
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("one-as") release acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("one-as") release acquire
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("one-as") acq_rel acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("one-as") acq_rel acquire
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("one-as") seq_cst acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("one-as") seq_cst acquire
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("one-as") monotonic seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("one-as") monotonic seq_cst
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("one-as") acquire seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("one-as") acquire seq_cst
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("one-as") release seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("one-as") release seq_cst
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("one-as") acq_rel seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("one-as") acq_rel seq_cst
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("one-as") seq_cst seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("one-as") seq_cst seq_cst
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("one-as") monotonic monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("one-as") monotonic monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("one-as") acquire monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("one-as") acquire monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("one-as") release monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("one-as") release monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("one-as") acq_rel monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("one-as") acq_rel monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("one-as") seq_cst monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("one-as") seq_cst monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("one-as") monotonic acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("one-as") monotonic acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("one-as") acquire acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("one-as") acquire acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("one-as") release acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("one-as") release acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("one-as") acq_rel acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("one-as") acq_rel acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("one-as") seq_cst acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("one-as") seq_cst acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("one-as") monotonic seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("one-as") monotonic seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("one-as") acquire seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("one-as") acquire seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("one-as") release seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("one-as") release seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("one-as") acq_rel seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("one-as") acq_rel seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("one-as") seq_cst seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("one-as") seq_cst seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v1, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %in, i32 addrspace(1)* %out) {
+ ptr addrspace(3) %in, ptr addrspace(1) %out) {
entry:
- %val = load volatile i32, i32 addrspace(3)* %in, align 4
- store i32 %val, i32 addrspace(1)* %out
+ %val = load volatile i32, ptr addrspace(3) %in, align 4
+ store i32 %val, ptr addrspace(1) %out
ret void
}
; GFX11-CU-NEXT: global_store_b32 v1, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %in, i32 addrspace(1)* %out) {
+ ptr addrspace(3) %in, ptr addrspace(1) %out) {
entry:
%tid = call i32 @llvm.amdgcn.workitem.id.x()
- %val.gep = getelementptr inbounds i32, i32 addrspace(3)* %in, i32 %tid
- %val = load volatile i32, i32 addrspace(3)* %val.gep, align 4
- store i32 %val, i32 addrspace(1)* %out
+ %val.gep = getelementptr inbounds i32, ptr addrspace(3) %in, i32 %tid
+ %val = load volatile i32, ptr addrspace(3) %val.gep, align 4
+ store i32 %val, ptr addrspace(1) %out
ret void
}
; GFX11-CU-NEXT: v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s1
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %in, i32 addrspace(3)* %out) {
+ ptr addrspace(1) %in, ptr addrspace(3) %out) {
entry:
- %val = load i32, i32 addrspace(1)* %in, align 4
- store volatile i32 %val, i32 addrspace(3)* %out
+ %val = load i32, ptr addrspace(1) %in, align 4
+ store volatile i32 %val, ptr addrspace(3) %out
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v1, s1
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %in, i32 addrspace(3)* %out) {
+ ptr addrspace(1) %in, ptr addrspace(3) %out) {
entry:
%tid = call i32 @llvm.amdgcn.workitem.id.x()
- %val = load i32, i32 addrspace(1)* %in, align 4
- %out.gep = getelementptr inbounds i32, i32 addrspace(3)* %out, i32 %tid
- store volatile i32 %val, i32 addrspace(3)* %out.gep
+ %val = load i32, ptr addrspace(1) %in, align 4
+ %out.gep = getelementptr inbounds i32, ptr addrspace(3) %out, i32 %tid
+ store volatile i32 %val, ptr addrspace(3) %out.gep
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v1, v0
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %in, i32 addrspace(3)* %out) {
+ ptr addrspace(3) %in, ptr addrspace(3) %out) {
entry:
- %val = load atomic volatile i32, i32 addrspace(3)* %in syncscope("workgroup") acquire, align 4
- store i32 %val, i32 addrspace(3)* %out
+ %val = load atomic volatile i32, ptr addrspace(3) %in syncscope("workgroup") acquire, align 4
+ store i32 %val, ptr addrspace(3) %out
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(3)* %out) {
+ i32 %in, ptr addrspace(3) %out) {
entry:
- store atomic volatile i32 %in, i32 addrspace(3)* %out syncscope("workgroup") release, align 4
+ store atomic volatile i32 %in, ptr addrspace(3) %out syncscope("workgroup") release, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v1, v0
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %in, i32 addrspace(3)* %out) {
+ ptr addrspace(3) %in, ptr addrspace(3) %out) {
entry:
- %val = load atomic i32, i32 addrspace(3)* %in syncscope("wavefront") unordered, align 4
- store i32 %val, i32 addrspace(3)* %out
+ %val = load atomic i32, ptr addrspace(3) %in syncscope("wavefront") unordered, align 4
+ store i32 %val, ptr addrspace(3) %out
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v1, v0
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %in, i32 addrspace(3)* %out) {
+ ptr addrspace(3) %in, ptr addrspace(3) %out) {
entry:
- %val = load atomic i32, i32 addrspace(3)* %in syncscope("wavefront") monotonic, align 4
- store i32 %val, i32 addrspace(3)* %out
+ %val = load atomic i32, ptr addrspace(3) %in syncscope("wavefront") monotonic, align 4
+ store i32 %val, ptr addrspace(3) %out
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v1, v0
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %in, i32 addrspace(3)* %out) {
+ ptr addrspace(3) %in, ptr addrspace(3) %out) {
entry:
- %val = load atomic i32, i32 addrspace(3)* %in syncscope("wavefront") acquire, align 4
- store i32 %val, i32 addrspace(3)* %out
+ %val = load atomic i32, ptr addrspace(3) %in syncscope("wavefront") acquire, align 4
+ store i32 %val, ptr addrspace(3) %out
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v1, v0
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %in, i32 addrspace(3)* %out) {
+ ptr addrspace(3) %in, ptr addrspace(3) %out) {
entry:
- %val = load atomic i32, i32 addrspace(3)* %in syncscope("wavefront") seq_cst, align 4
- store i32 %val, i32 addrspace(3)* %out
+ %val = load atomic i32, ptr addrspace(3) %in syncscope("wavefront") seq_cst, align 4
+ store i32 %val, ptr addrspace(3) %out
ret void
}
; GFX11-CU-NEXT: v_dual_mov_b32 v0, s1 :: v_dual_mov_b32 v1, s0
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(3)* %out) {
+ i32 %in, ptr addrspace(3) %out) {
entry:
- store atomic i32 %in, i32 addrspace(3)* %out syncscope("wavefront") unordered, align 4
+ store atomic i32 %in, ptr addrspace(3) %out syncscope("wavefront") unordered, align 4
ret void
}
; GFX11-CU-NEXT: v_dual_mov_b32 v0, s1 :: v_dual_mov_b32 v1, s0
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(3)* %out) {
+ i32 %in, ptr addrspace(3) %out) {
entry:
- store atomic i32 %in, i32 addrspace(3)* %out syncscope("wavefront") monotonic, align 4
+ store atomic i32 %in, ptr addrspace(3) %out syncscope("wavefront") monotonic, align 4
ret void
}
; GFX11-CU-NEXT: v_dual_mov_b32 v0, s1 :: v_dual_mov_b32 v1, s0
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(3)* %out) {
+ i32 %in, ptr addrspace(3) %out) {
entry:
- store atomic i32 %in, i32 addrspace(3)* %out syncscope("wavefront") release, align 4
+ store atomic i32 %in, ptr addrspace(3) %out syncscope("wavefront") release, align 4
ret void
}
; GFX11-CU-NEXT: v_dual_mov_b32 v0, s1 :: v_dual_mov_b32 v1, s0
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(3)* %out) {
+ i32 %in, ptr addrspace(3) %out) {
entry:
- store atomic i32 %in, i32 addrspace(3)* %out syncscope("wavefront") seq_cst, align 4
+ store atomic i32 %in, ptr addrspace(3) %out syncscope("wavefront") seq_cst, align 4
ret void
}
; GFX11-CU-NEXT: v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s1
; GFX11-CU-NEXT: ds_storexchg_rtn_b32 v0, v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in syncscope("wavefront") monotonic
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in syncscope("wavefront") monotonic
ret void
}
; GFX11-CU-NEXT: v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s1
; GFX11-CU-NEXT: ds_storexchg_rtn_b32 v0, v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in syncscope("wavefront") acquire
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in syncscope("wavefront") acquire
ret void
}
; GFX11-CU-NEXT: v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s1
; GFX11-CU-NEXT: ds_storexchg_rtn_b32 v0, v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in syncscope("wavefront") release
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in syncscope("wavefront") release
ret void
}
; GFX11-CU-NEXT: v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s1
; GFX11-CU-NEXT: ds_storexchg_rtn_b32 v0, v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in syncscope("wavefront") acq_rel
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in syncscope("wavefront") acq_rel
ret void
}
; GFX11-CU-NEXT: v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s1
; GFX11-CU-NEXT: ds_storexchg_rtn_b32 v0, v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in syncscope("wavefront") seq_cst
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in syncscope("wavefront") seq_cst
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in syncscope("wavefront") acquire
- store i32 %val, i32 addrspace(3)* %out, align 4
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in syncscope("wavefront") acquire
+ store i32 %val, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in syncscope("wavefront") acq_rel
- store i32 %val, i32 addrspace(3)* %out, align 4
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in syncscope("wavefront") acq_rel
+ store i32 %val, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in syncscope("wavefront") seq_cst
- store i32 %val, i32 addrspace(3)* %out, align 4
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in syncscope("wavefront") seq_cst
+ store i32 %val, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("wavefront") monotonic monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("wavefront") monotonic monotonic
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("wavefront") acquire monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("wavefront") acquire monotonic
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("wavefront") release monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("wavefront") release monotonic
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("wavefront") acq_rel monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("wavefront") acq_rel monotonic
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("wavefront") seq_cst monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("wavefront") seq_cst monotonic
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("wavefront") monotonic acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("wavefront") monotonic acquire
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("wavefront") acquire acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("wavefront") acquire acquire
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("wavefront") release acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("wavefront") release acquire
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("wavefront") acq_rel acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("wavefront") acq_rel acquire
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("wavefront") seq_cst acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("wavefront") seq_cst acquire
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("wavefront") monotonic seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("wavefront") monotonic seq_cst
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("wavefront") acquire seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("wavefront") acquire seq_cst
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("wavefront") release seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("wavefront") release seq_cst
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("wavefront") acq_rel seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("wavefront") acq_rel seq_cst
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("wavefront") seq_cst seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("wavefront") seq_cst seq_cst
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("wavefront") monotonic monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("wavefront") monotonic monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("wavefront") acquire monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("wavefront") acquire monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("wavefront") release monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("wavefront") release monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("wavefront") acq_rel monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("wavefront") acq_rel monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("wavefront") seq_cst monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("wavefront") seq_cst monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("wavefront") monotonic acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("wavefront") monotonic acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("wavefront") acquire acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("wavefront") acquire acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("wavefront") release acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("wavefront") release acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("wavefront") acq_rel acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("wavefront") acq_rel acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("wavefront") seq_cst acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("wavefront") seq_cst acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("wavefront") monotonic seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("wavefront") monotonic seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("wavefront") acquire seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("wavefront") acquire seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("wavefront") release seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("wavefront") release seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("wavefront") acq_rel seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("wavefront") acq_rel seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("wavefront") seq_cst seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("wavefront") seq_cst seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v1, v0
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %in, i32 addrspace(3)* %out) {
+ ptr addrspace(3) %in, ptr addrspace(3) %out) {
entry:
- %val = load atomic i32, i32 addrspace(3)* %in syncscope("wavefront-one-as") unordered, align 4
- store i32 %val, i32 addrspace(3)* %out
+ %val = load atomic i32, ptr addrspace(3) %in syncscope("wavefront-one-as") unordered, align 4
+ store i32 %val, ptr addrspace(3) %out
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v1, v0
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %in, i32 addrspace(3)* %out) {
+ ptr addrspace(3) %in, ptr addrspace(3) %out) {
entry:
- %val = load atomic i32, i32 addrspace(3)* %in syncscope("wavefront-one-as") monotonic, align 4
- store i32 %val, i32 addrspace(3)* %out
+ %val = load atomic i32, ptr addrspace(3) %in syncscope("wavefront-one-as") monotonic, align 4
+ store i32 %val, ptr addrspace(3) %out
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v1, v0
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %in, i32 addrspace(3)* %out) {
+ ptr addrspace(3) %in, ptr addrspace(3) %out) {
entry:
- %val = load atomic i32, i32 addrspace(3)* %in syncscope("wavefront-one-as") acquire, align 4
- store i32 %val, i32 addrspace(3)* %out
+ %val = load atomic i32, ptr addrspace(3) %in syncscope("wavefront-one-as") acquire, align 4
+ store i32 %val, ptr addrspace(3) %out
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v1, v0
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %in, i32 addrspace(3)* %out) {
+ ptr addrspace(3) %in, ptr addrspace(3) %out) {
entry:
- %val = load atomic i32, i32 addrspace(3)* %in syncscope("wavefront-one-as") seq_cst, align 4
- store i32 %val, i32 addrspace(3)* %out
+ %val = load atomic i32, ptr addrspace(3) %in syncscope("wavefront-one-as") seq_cst, align 4
+ store i32 %val, ptr addrspace(3) %out
ret void
}
; GFX11-CU-NEXT: v_dual_mov_b32 v0, s1 :: v_dual_mov_b32 v1, s0
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(3)* %out) {
+ i32 %in, ptr addrspace(3) %out) {
entry:
- store atomic i32 %in, i32 addrspace(3)* %out syncscope("wavefront-one-as") unordered, align 4
+ store atomic i32 %in, ptr addrspace(3) %out syncscope("wavefront-one-as") unordered, align 4
ret void
}
; GFX11-CU-NEXT: v_dual_mov_b32 v0, s1 :: v_dual_mov_b32 v1, s0
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(3)* %out) {
+ i32 %in, ptr addrspace(3) %out) {
entry:
- store atomic i32 %in, i32 addrspace(3)* %out syncscope("wavefront-one-as") monotonic, align 4
+ store atomic i32 %in, ptr addrspace(3) %out syncscope("wavefront-one-as") monotonic, align 4
ret void
}
; GFX11-CU-NEXT: v_dual_mov_b32 v0, s1 :: v_dual_mov_b32 v1, s0
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(3)* %out) {
+ i32 %in, ptr addrspace(3) %out) {
entry:
- store atomic i32 %in, i32 addrspace(3)* %out syncscope("wavefront-one-as") release, align 4
+ store atomic i32 %in, ptr addrspace(3) %out syncscope("wavefront-one-as") release, align 4
ret void
}
; GFX11-CU-NEXT: v_dual_mov_b32 v0, s1 :: v_dual_mov_b32 v1, s0
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(3)* %out) {
+ i32 %in, ptr addrspace(3) %out) {
entry:
- store atomic i32 %in, i32 addrspace(3)* %out syncscope("wavefront-one-as") seq_cst, align 4
+ store atomic i32 %in, ptr addrspace(3) %out syncscope("wavefront-one-as") seq_cst, align 4
ret void
}
; GFX11-CU-NEXT: v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s1
; GFX11-CU-NEXT: ds_storexchg_rtn_b32 v0, v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in syncscope("wavefront-one-as") monotonic
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in syncscope("wavefront-one-as") monotonic
ret void
}
; GFX11-CU-NEXT: v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s1
; GFX11-CU-NEXT: ds_storexchg_rtn_b32 v0, v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in syncscope("wavefront-one-as") acquire
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in syncscope("wavefront-one-as") acquire
ret void
}
; GFX11-CU-NEXT: v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s1
; GFX11-CU-NEXT: ds_storexchg_rtn_b32 v0, v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in syncscope("wavefront-one-as") release
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in syncscope("wavefront-one-as") release
ret void
}
; GFX11-CU-NEXT: v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s1
; GFX11-CU-NEXT: ds_storexchg_rtn_b32 v0, v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in syncscope("wavefront-one-as") acq_rel
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in syncscope("wavefront-one-as") acq_rel
ret void
}
; GFX11-CU-NEXT: v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s1
; GFX11-CU-NEXT: ds_storexchg_rtn_b32 v0, v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in syncscope("wavefront-one-as") seq_cst
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in syncscope("wavefront-one-as") seq_cst
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in syncscope("wavefront-one-as") acquire
- store i32 %val, i32 addrspace(3)* %out, align 4
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in syncscope("wavefront-one-as") acquire
+ store i32 %val, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in syncscope("wavefront-one-as") acq_rel
- store i32 %val, i32 addrspace(3)* %out, align 4
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in syncscope("wavefront-one-as") acq_rel
+ store i32 %val, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in syncscope("wavefront-one-as") seq_cst
- store i32 %val, i32 addrspace(3)* %out, align 4
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in syncscope("wavefront-one-as") seq_cst
+ store i32 %val, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") monotonic monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("wavefront-one-as") monotonic monotonic
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") acquire monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("wavefront-one-as") acquire monotonic
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") release monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("wavefront-one-as") release monotonic
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") acq_rel monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("wavefront-one-as") acq_rel monotonic
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") seq_cst monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("wavefront-one-as") seq_cst monotonic
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") monotonic acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("wavefront-one-as") monotonic acquire
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") acquire acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("wavefront-one-as") acquire acquire
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") release acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("wavefront-one-as") release acquire
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") acq_rel acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("wavefront-one-as") acq_rel acquire
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") seq_cst acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("wavefront-one-as") seq_cst acquire
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") monotonic seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("wavefront-one-as") monotonic seq_cst
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") acquire seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("wavefront-one-as") acquire seq_cst
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") release seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("wavefront-one-as") release seq_cst
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") acq_rel seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("wavefront-one-as") acq_rel seq_cst
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") seq_cst seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("wavefront-one-as") seq_cst seq_cst
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") monotonic monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("wavefront-one-as") monotonic monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") acquire monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("wavefront-one-as") acquire monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") release monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("wavefront-one-as") release monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") acq_rel monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("wavefront-one-as") acq_rel monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") seq_cst monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("wavefront-one-as") seq_cst monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") monotonic acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("wavefront-one-as") monotonic acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") acquire acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("wavefront-one-as") acquire acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") release acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("wavefront-one-as") release acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") acq_rel acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("wavefront-one-as") acq_rel acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") seq_cst acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("wavefront-one-as") seq_cst acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") monotonic seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("wavefront-one-as") monotonic seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") acquire seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("wavefront-one-as") acquire seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") release seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("wavefront-one-as") release seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") acq_rel seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("wavefront-one-as") acq_rel seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("wavefront-one-as") seq_cst seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("wavefront-one-as") seq_cst seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v1, v0
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %in, i32 addrspace(3)* %out) {
+ ptr addrspace(3) %in, ptr addrspace(3) %out) {
entry:
- %val = load atomic i32, i32 addrspace(3)* %in syncscope("workgroup") unordered, align 4
- store i32 %val, i32 addrspace(3)* %out
+ %val = load atomic i32, ptr addrspace(3) %in syncscope("workgroup") unordered, align 4
+ store i32 %val, ptr addrspace(3) %out
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v1, v0
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %in, i32 addrspace(3)* %out) {
+ ptr addrspace(3) %in, ptr addrspace(3) %out) {
entry:
- %val = load atomic i32, i32 addrspace(3)* %in syncscope("workgroup") monotonic, align 4
- store i32 %val, i32 addrspace(3)* %out
+ %val = load atomic i32, ptr addrspace(3) %in syncscope("workgroup") monotonic, align 4
+ store i32 %val, ptr addrspace(3) %out
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v1, v0
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %in, i32 addrspace(3)* %out) {
+ ptr addrspace(3) %in, ptr addrspace(3) %out) {
entry:
- %val = load atomic i32, i32 addrspace(3)* %in syncscope("workgroup") acquire, align 4
- store i32 %val, i32 addrspace(3)* %out
+ %val = load atomic i32, ptr addrspace(3) %in syncscope("workgroup") acquire, align 4
+ store i32 %val, ptr addrspace(3) %out
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v1, v0
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %in, i32 addrspace(3)* %out) {
+ ptr addrspace(3) %in, ptr addrspace(3) %out) {
entry:
- %val = load atomic i32, i32 addrspace(3)* %in syncscope("workgroup") seq_cst, align 4
- store i32 %val, i32 addrspace(3)* %out
+ %val = load atomic i32, ptr addrspace(3) %in syncscope("workgroup") seq_cst, align 4
+ store i32 %val, ptr addrspace(3) %out
ret void
}
; GFX11-CU-NEXT: v_dual_mov_b32 v0, s1 :: v_dual_mov_b32 v1, s0
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(3)* %out) {
+ i32 %in, ptr addrspace(3) %out) {
entry:
- store atomic i32 %in, i32 addrspace(3)* %out syncscope("workgroup") unordered, align 4
+ store atomic i32 %in, ptr addrspace(3) %out syncscope("workgroup") unordered, align 4
ret void
}
; GFX11-CU-NEXT: v_dual_mov_b32 v0, s1 :: v_dual_mov_b32 v1, s0
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(3)* %out) {
+ i32 %in, ptr addrspace(3) %out) {
entry:
- store atomic i32 %in, i32 addrspace(3)* %out syncscope("workgroup") monotonic, align 4
+ store atomic i32 %in, ptr addrspace(3) %out syncscope("workgroup") monotonic, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(3)* %out) {
+ i32 %in, ptr addrspace(3) %out) {
entry:
- store atomic i32 %in, i32 addrspace(3)* %out syncscope("workgroup") release, align 4
+ store atomic i32 %in, ptr addrspace(3) %out syncscope("workgroup") release, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(3)* %out) {
+ i32 %in, ptr addrspace(3) %out) {
entry:
- store atomic i32 %in, i32 addrspace(3)* %out syncscope("workgroup") seq_cst, align 4
+ store atomic i32 %in, ptr addrspace(3) %out syncscope("workgroup") seq_cst, align 4
ret void
}
; GFX11-CU-NEXT: v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s1
; GFX11-CU-NEXT: ds_storexchg_rtn_b32 v0, v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in syncscope("workgroup") monotonic
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in syncscope("workgroup") monotonic
ret void
}
; GFX11-CU-NEXT: ds_storexchg_rtn_b32 v0, v0, v1
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in syncscope("workgroup") acquire
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in syncscope("workgroup") acquire
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_storexchg_rtn_b32 v0, v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in syncscope("workgroup") release
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in syncscope("workgroup") release
ret void
}
; GFX11-CU-NEXT: ds_storexchg_rtn_b32 v0, v0, v1
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in syncscope("workgroup") acq_rel
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in syncscope("workgroup") acq_rel
ret void
}
; GFX11-CU-NEXT: ds_storexchg_rtn_b32 v0, v0, v1
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in syncscope("workgroup") seq_cst
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in syncscope("workgroup") seq_cst
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in syncscope("workgroup") acquire
- store i32 %val, i32 addrspace(3)* %out, align 4
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in syncscope("workgroup") acquire
+ store i32 %val, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in syncscope("workgroup") acq_rel
- store i32 %val, i32 addrspace(3)* %out, align 4
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in syncscope("workgroup") acq_rel
+ store i32 %val, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in syncscope("workgroup") seq_cst
- store i32 %val, i32 addrspace(3)* %out, align 4
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in syncscope("workgroup") seq_cst
+ store i32 %val, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("workgroup") monotonic monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("workgroup") monotonic monotonic
ret void
}
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("workgroup") acquire monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("workgroup") acquire monotonic
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("workgroup") release monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("workgroup") release monotonic
ret void
}
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("workgroup") acq_rel monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("workgroup") acq_rel monotonic
ret void
}
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("workgroup") seq_cst monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("workgroup") seq_cst monotonic
ret void
}
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("workgroup") monotonic acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("workgroup") monotonic acquire
ret void
}
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("workgroup") acquire acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("workgroup") acquire acquire
ret void
}
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("workgroup") release acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("workgroup") release acquire
ret void
}
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("workgroup") acq_rel acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("workgroup") acq_rel acquire
ret void
}
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("workgroup") seq_cst acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("workgroup") seq_cst acquire
ret void
}
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("workgroup") monotonic seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("workgroup") monotonic seq_cst
ret void
}
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("workgroup") acquire seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("workgroup") acquire seq_cst
ret void
}
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("workgroup") release seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("workgroup") release seq_cst
ret void
}
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("workgroup") acq_rel seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("workgroup") acq_rel seq_cst
ret void
}
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("workgroup") seq_cst seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("workgroup") seq_cst seq_cst
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("workgroup") monotonic monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("workgroup") monotonic monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("workgroup") acquire monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("workgroup") acquire monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("workgroup") release monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("workgroup") release monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("workgroup") acq_rel monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("workgroup") acq_rel monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("workgroup") seq_cst monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("workgroup") seq_cst monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("workgroup") monotonic acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("workgroup") monotonic acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("workgroup") acquire acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("workgroup") acquire acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("workgroup") release acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("workgroup") release acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("workgroup") acq_rel acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("workgroup") acq_rel acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("workgroup") seq_cst acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("workgroup") seq_cst acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("workgroup") monotonic seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("workgroup") monotonic seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("workgroup") acquire seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("workgroup") acquire seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("workgroup") release seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("workgroup") release seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("workgroup") acq_rel seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("workgroup") acq_rel seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("workgroup") seq_cst seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("workgroup") seq_cst seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v1, v0
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %in, i32 addrspace(3)* %out) {
+ ptr addrspace(3) %in, ptr addrspace(3) %out) {
entry:
- %val = load atomic i32, i32 addrspace(3)* %in syncscope("workgroup-one-as") unordered, align 4
- store i32 %val, i32 addrspace(3)* %out
+ %val = load atomic i32, ptr addrspace(3) %in syncscope("workgroup-one-as") unordered, align 4
+ store i32 %val, ptr addrspace(3) %out
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v1, v0
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %in, i32 addrspace(3)* %out) {
+ ptr addrspace(3) %in, ptr addrspace(3) %out) {
entry:
- %val = load atomic i32, i32 addrspace(3)* %in syncscope("workgroup-one-as") monotonic, align 4
- store i32 %val, i32 addrspace(3)* %out
+ %val = load atomic i32, ptr addrspace(3) %in syncscope("workgroup-one-as") monotonic, align 4
+ store i32 %val, ptr addrspace(3) %out
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v1, v0
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %in, i32 addrspace(3)* %out) {
+ ptr addrspace(3) %in, ptr addrspace(3) %out) {
entry:
- %val = load atomic i32, i32 addrspace(3)* %in syncscope("workgroup-one-as") acquire, align 4
- store i32 %val, i32 addrspace(3)* %out
+ %val = load atomic i32, ptr addrspace(3) %in syncscope("workgroup-one-as") acquire, align 4
+ store i32 %val, ptr addrspace(3) %out
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v1, v0
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %in, i32 addrspace(3)* %out) {
+ ptr addrspace(3) %in, ptr addrspace(3) %out) {
entry:
- %val = load atomic i32, i32 addrspace(3)* %in syncscope("workgroup-one-as") seq_cst, align 4
- store i32 %val, i32 addrspace(3)* %out
+ %val = load atomic i32, ptr addrspace(3) %in syncscope("workgroup-one-as") seq_cst, align 4
+ store i32 %val, ptr addrspace(3) %out
ret void
}
; GFX11-CU-NEXT: v_dual_mov_b32 v0, s1 :: v_dual_mov_b32 v1, s0
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(3)* %out) {
+ i32 %in, ptr addrspace(3) %out) {
entry:
- store atomic i32 %in, i32 addrspace(3)* %out syncscope("workgroup-one-as") unordered, align 4
+ store atomic i32 %in, ptr addrspace(3) %out syncscope("workgroup-one-as") unordered, align 4
ret void
}
; GFX11-CU-NEXT: v_dual_mov_b32 v0, s1 :: v_dual_mov_b32 v1, s0
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(3)* %out) {
+ i32 %in, ptr addrspace(3) %out) {
entry:
- store atomic i32 %in, i32 addrspace(3)* %out syncscope("workgroup-one-as") monotonic, align 4
+ store atomic i32 %in, ptr addrspace(3) %out syncscope("workgroup-one-as") monotonic, align 4
ret void
}
; GFX11-CU-NEXT: v_dual_mov_b32 v0, s1 :: v_dual_mov_b32 v1, s0
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(3)* %out) {
+ i32 %in, ptr addrspace(3) %out) {
entry:
- store atomic i32 %in, i32 addrspace(3)* %out syncscope("workgroup-one-as") release, align 4
+ store atomic i32 %in, ptr addrspace(3) %out syncscope("workgroup-one-as") release, align 4
ret void
}
; GFX11-CU-NEXT: v_dual_mov_b32 v0, s1 :: v_dual_mov_b32 v1, s0
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 %in, i32 addrspace(3)* %out) {
+ i32 %in, ptr addrspace(3) %out) {
entry:
- store atomic i32 %in, i32 addrspace(3)* %out syncscope("workgroup-one-as") seq_cst, align 4
+ store atomic i32 %in, ptr addrspace(3) %out syncscope("workgroup-one-as") seq_cst, align 4
ret void
}
; GFX11-CU-NEXT: v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s1
; GFX11-CU-NEXT: ds_storexchg_rtn_b32 v0, v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in syncscope("workgroup-one-as") monotonic
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in syncscope("workgroup-one-as") monotonic
ret void
}
; GFX11-CU-NEXT: v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s1
; GFX11-CU-NEXT: ds_storexchg_rtn_b32 v0, v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in syncscope("workgroup-one-as") acquire
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in syncscope("workgroup-one-as") acquire
ret void
}
; GFX11-CU-NEXT: v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s1
; GFX11-CU-NEXT: ds_storexchg_rtn_b32 v0, v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in syncscope("workgroup-one-as") release
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in syncscope("workgroup-one-as") release
ret void
}
; GFX11-CU-NEXT: v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s1
; GFX11-CU-NEXT: ds_storexchg_rtn_b32 v0, v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in syncscope("workgroup-one-as") acq_rel
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in syncscope("workgroup-one-as") acq_rel
ret void
}
; GFX11-CU-NEXT: v_dual_mov_b32 v0, s0 :: v_dual_mov_b32 v1, s1
; GFX11-CU-NEXT: ds_storexchg_rtn_b32 v0, v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in syncscope("workgroup-one-as") seq_cst
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in syncscope("workgroup-one-as") seq_cst
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in syncscope("workgroup-one-as") acquire
- store i32 %val, i32 addrspace(3)* %out, align 4
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in syncscope("workgroup-one-as") acquire
+ store i32 %val, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in syncscope("workgroup-one-as") acq_rel
- store i32 %val, i32 addrspace(3)* %out, align 4
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in syncscope("workgroup-one-as") acq_rel
+ store i32 %val, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in) {
+ ptr addrspace(3) %out, i32 %in) {
entry:
- %val = atomicrmw volatile xchg i32 addrspace(3)* %out, i32 %in syncscope("workgroup-one-as") seq_cst
- store i32 %val, i32 addrspace(3)* %out, align 4
+ %val = atomicrmw volatile xchg ptr addrspace(3) %out, i32 %in syncscope("workgroup-one-as") seq_cst
+ store i32 %val, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") monotonic monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("workgroup-one-as") monotonic monotonic
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") acquire monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("workgroup-one-as") acquire monotonic
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") release monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("workgroup-one-as") release monotonic
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") acq_rel monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("workgroup-one-as") acq_rel monotonic
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") seq_cst monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("workgroup-one-as") seq_cst monotonic
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") monotonic acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("workgroup-one-as") monotonic acquire
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") acquire acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("workgroup-one-as") acquire acquire
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") release acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("workgroup-one-as") release acquire
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") acq_rel acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("workgroup-one-as") acq_rel acquire
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") seq_cst acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("workgroup-one-as") seq_cst acquire
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") monotonic seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("workgroup-one-as") monotonic seq_cst
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") acquire seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("workgroup-one-as") acquire seq_cst
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") release seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("workgroup-one-as") release seq_cst
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") acq_rel seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("workgroup-one-as") acq_rel seq_cst
ret void
}
; GFX11-CU-NEXT: v_mov_b32_e32 v2, s2
; GFX11-CU-NEXT: ds_cmpstore_b32 v0, v1, v2 offset:16
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") seq_cst seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("workgroup-one-as") seq_cst seq_cst
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") monotonic monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("workgroup-one-as") monotonic monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") acquire monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("workgroup-one-as") acquire monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") release monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("workgroup-one-as") release monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") acq_rel monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("workgroup-one-as") acq_rel monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") seq_cst monotonic
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("workgroup-one-as") seq_cst monotonic
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") monotonic acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("workgroup-one-as") monotonic acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") acquire acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("workgroup-one-as") acquire acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") release acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("workgroup-one-as") release acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") acq_rel acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("workgroup-one-as") acq_rel acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") seq_cst acquire
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("workgroup-one-as") seq_cst acquire
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") monotonic seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("workgroup-one-as") monotonic seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") acquire seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("workgroup-one-as") acquire seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") release seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("workgroup-one-as") release seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") acq_rel seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("workgroup-one-as") acq_rel seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: s_waitcnt lgkmcnt(0)
; GFX11-CU-NEXT: ds_store_b32 v0, v1
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(3)* %out, i32 %in, i32 %old) {
+ ptr addrspace(3) %out, i32 %in, i32 %old) {
entry:
- %gep = getelementptr i32, i32 addrspace(3)* %out, i32 4
- %val = cmpxchg volatile i32 addrspace(3)* %gep, i32 %old, i32 %in syncscope("workgroup-one-as") seq_cst seq_cst
+ %gep = getelementptr i32, ptr addrspace(3) %out, i32 4
+ %val = cmpxchg volatile ptr addrspace(3) %gep, i32 %old, i32 %in syncscope("workgroup-one-as") seq_cst seq_cst
%val0 = extractvalue { i32, i1 } %val, 0
- store i32 %val0, i32 addrspace(3)* %out, align 4
+ store i32 %val0, ptr addrspace(3) %out, align 4
ret void
}
; GFX11-CU-NEXT: global_store_b32 v1, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(5)* %in, i32 addrspace(1)* %out) {
+ ptr addrspace(5) %in, ptr addrspace(1) %out) {
entry:
- %val = load i32, i32 addrspace(5)* %in, align 4, !nontemporal !0
- store i32 %val, i32 addrspace(1)* %out
+ %val = load i32, ptr addrspace(5) %in, align 4, !nontemporal !0
+ store i32 %val, ptr addrspace(1) %out
ret void
}
; GFX11-CU-NEXT: global_store_b32 v1, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(5)* %in, i32 addrspace(1)* %out) {
+ ptr addrspace(5) %in, ptr addrspace(1) %out) {
entry:
%tid = call i32 @llvm.amdgcn.workitem.id.x()
- %val.gep = getelementptr inbounds i32, i32 addrspace(5)* %in, i32 %tid
- %val = load i32, i32 addrspace(5)* %val.gep, align 4, !nontemporal !0
- store i32 %val, i32 addrspace(1)* %out
+ %val.gep = getelementptr inbounds i32, ptr addrspace(5) %in, i32 %tid
+ %val = load i32, ptr addrspace(5) %val.gep, align 4, !nontemporal !0
+ store i32 %val, ptr addrspace(1) %out
ret void
}
; GFX11-CU-NEXT: scratch_store_b32 off, v0, s0 glc slc dlc
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %in, i32 addrspace(5)* %out) {
+ ptr addrspace(1) %in, ptr addrspace(5) %out) {
entry:
- %val = load i32, i32 addrspace(1)* %in, align 4
- store i32 %val, i32 addrspace(5)* %out, !nontemporal !0
+ %val = load i32, ptr addrspace(1) %in, align 4
+ store i32 %val, ptr addrspace(5) %out, !nontemporal !0
ret void
}
; GFX11-CU-NEXT: scratch_store_b32 v0, v1, s0 glc slc dlc
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %in, i32 addrspace(5)* %out) {
+ ptr addrspace(1) %in, ptr addrspace(5) %out) {
entry:
%tid = call i32 @llvm.amdgcn.workitem.id.x()
- %val = load i32, i32 addrspace(1)* %in, align 4
- %out.gep = getelementptr inbounds i32, i32 addrspace(5)* %out, i32 %tid
- store i32 %val, i32 addrspace(5)* %out.gep, !nontemporal !0
+ %val = load i32, ptr addrspace(1) %in, align 4
+ %out.gep = getelementptr inbounds i32, ptr addrspace(5) %out, i32 %tid
+ store i32 %val, ptr addrspace(5) %out.gep, !nontemporal !0
ret void
}
; GFX11-CU-NEXT: global_store_b32 v1, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(5)* %in, i32 addrspace(1)* %out) {
+ ptr addrspace(5) %in, ptr addrspace(1) %out) {
entry:
- %val = load volatile i32, i32 addrspace(5)* %in, align 4
- store i32 %val, i32 addrspace(1)* %out
+ %val = load volatile i32, ptr addrspace(5) %in, align 4
+ store i32 %val, ptr addrspace(1) %out
ret void
}
; GFX11-CU-NEXT: global_store_b32 v1, v0, s[0:1]
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(5)* %in, i32 addrspace(1)* %out) {
+ ptr addrspace(5) %in, ptr addrspace(1) %out) {
entry:
%tid = call i32 @llvm.amdgcn.workitem.id.x()
- %val.gep = getelementptr inbounds i32, i32 addrspace(5)* %in, i32 %tid
- %val = load volatile i32, i32 addrspace(5)* %val.gep, align 4
- store i32 %val, i32 addrspace(1)* %out
+ %val.gep = getelementptr inbounds i32, ptr addrspace(5) %in, i32 %tid
+ %val = load volatile i32, ptr addrspace(5) %val.gep, align 4
+ store i32 %val, ptr addrspace(1) %out
ret void
}
; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %in, i32 addrspace(5)* %out) {
+ ptr addrspace(1) %in, ptr addrspace(5) %out) {
entry:
- %val = load i32, i32 addrspace(1)* %in, align 4
- store volatile i32 %val, i32 addrspace(5)* %out
+ %val = load i32, ptr addrspace(1) %in, align 4
+ store volatile i32 %val, ptr addrspace(5) %out
ret void
}
; GFX11-CU-NEXT: s_waitcnt_vscnt null, 0x0
; GFX11-CU-NEXT: s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
; GFX11-CU-NEXT: s_endpgm
- i32 addrspace(1)* %in, i32 addrspace(5)* %out) {
+ ptr addrspace(1) %in, ptr addrspace(5) %out) {
entry:
%tid = call i32 @llvm.amdgcn.workitem.id.x()
- %val = load i32, i32 addrspace(1)* %in, align 4
- %out.gep = getelementptr inbounds i32, i32 addrspace(5)* %out, i32 %tid
- store volatile i32 %val, i32 addrspace(5)* %out.gep
+ %val = load i32, ptr addrspace(1) %in, align 4
+ %out.gep = getelementptr inbounds i32, ptr addrspace(5) %out, i32 %tid
+ store volatile i32 %val, ptr addrspace(5) %out.gep
ret void
}
; GCN-LABEL: {{^}}_Z6brokenPd:
; GCN: flat_store_dword v[{{[0-9]+}}:{{[0-9]+}}], {{v[0-9]+}}
; GCN: flat_store_dword v[{{[0-9]+}}:{{[0-9]+}}], {{v[0-9]+}}
-define amdgpu_kernel void @_Z6brokenPd(double* %arg) {
+define amdgpu_kernel void @_Z6brokenPd(ptr %arg) {
bb:
%tmp = alloca double, align 8, addrspace(5)
%tmp1 = alloca double, align 8, addrspace(5)
- %tmp2 = load double, double* %arg, align 8
+ %tmp2 = load double, ptr %arg, align 8
br i1 1, label %bb6, label %bb4
bb3: ; No predecessors!
br label %bb4
bb4: ; preds = %bb3, %bb
- %tmp5 = phi double addrspace(5)* [ %tmp1, %bb3 ], [ %tmp, %bb ]
- store double %tmp2, double addrspace(5)* %tmp5, align 8
+ %tmp5 = phi ptr addrspace(5) [ %tmp1, %bb3 ], [ %tmp, %bb ]
+ store double %tmp2, ptr addrspace(5) %tmp5, align 8
br label %bb6
bb6: ; preds = %bb4, %bb
%tmp7 = phi double [ 0x7FF8123000000000, %bb4 ], [ 0x7FF8000000000000, %bb ]
- store double %tmp7, double* %arg, align 8
+ store double %tmp7, ptr %arg, align 8
ret void
}