mirror of
https://github.com/RPCS3/llvm.git
synced 2025-02-19 10:15:00 +00:00
R600/SI: Add missing soffset operand to global atomics
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@229604 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
a0abb2055a
commit
fe524d5902
@ -1780,8 +1780,8 @@ multiclass MUBUF_Atomic <mubuf op, string name, RegisterClass rc,
|
||||
defm _ADDR64 : MUBUFAtomicAddr64_m <
|
||||
op, name#"_addr64", (outs),
|
||||
(ins rc:$vdata, SReg_128:$srsrc, VReg_64:$vaddr,
|
||||
mbuf_offset:$offset, slc:$slc),
|
||||
name#" $vdata, $vaddr, $srsrc, 0 addr64"#"$offset"#"$slc", [], 0
|
||||
mbuf_offset:$offset, SCSrc_32:$soffset, slc:$slc),
|
||||
name#" $vdata, $vaddr, $srsrc, $soffset addr64"#"$offset"#"$slc", [], 0
|
||||
>;
|
||||
|
||||
defm _OFFSET : MUBUFAtomicOffset_m <
|
||||
|
@ -158,6 +158,15 @@ define void @store_sgpr_ptr_large_offset(i32 addrspace(1)* %out) #0 {
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: {{^}}store_sgpr_ptr_large_offset_atomic:
|
||||
; CHECK: s_mov_b32 [[SOFFSET:s[0-9]+]], 0x20000
|
||||
; CHECK: buffer_atomic_add v{{[0-9]+}}, s{{\[[0-9]+:[0-9]+\]}}, [[SOFFSET]]
|
||||
define void @store_sgpr_ptr_large_offset_atomic(i32 addrspace(1)* %out) #0 {
|
||||
%gep = getelementptr i32 addrspace(1)* %out, i32 32768
|
||||
%val = atomicrmw volatile add i32 addrspace(1)* %gep, i32 5 seq_cst
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: {{^}}store_vgpr_ptr:
|
||||
; CHECK: buffer_store_dword v{{[0-9]+}}, v{{\[[0-9]+:[0-9]+\]}}, s{{\[[0-9]+:[0-9]+\]}}, 0 addr64
|
||||
define void @store_vgpr_ptr(i32 addrspace(1)* %out) #0 {
|
||||
|
Loading…
x
Reference in New Issue
Block a user