Skip to content

Commit 879cbe0

Browse files
authored
[AMDGPU] Fix predicates for BUFFER_ATOMIC_CSUB pattern (#78701)
Use OtherPredicates to avoid interfering with other uses of SubtargetPredicate for GFX12.
1 parent 74f6ae9 commit 879cbe0

File tree

2 files changed

+3
-3
lines changed

2 files changed

+3
-3
lines changed

llvm/lib/Target/AMDGPU/BUFInstructions.td

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1712,7 +1712,7 @@ defm : SIBufferAtomicPat<"SIbuffer_atomic_xor", i64, "BUFFER_ATOMIC_XOR_X2">;
17121712
defm : SIBufferAtomicPat<"SIbuffer_atomic_inc", i64, "BUFFER_ATOMIC_INC_X2">;
17131713
defm : SIBufferAtomicPat<"SIbuffer_atomic_dec", i64, "BUFFER_ATOMIC_DEC_X2">;
17141714

1715-
let SubtargetPredicate = HasAtomicCSubNoRtnInsts in
1715+
let OtherPredicates = [HasAtomicCSubNoRtnInsts] in
17161716
defm : SIBufferAtomicPat<"SIbuffer_atomic_csub", i32, "BUFFER_ATOMIC_CSUB", ["noret"]>;
17171717

17181718
let SubtargetPredicate = isGFX12Plus in {

llvm/test/CodeGen/AMDGPU/llvm.amdgcn.atomic.csub.ll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ main_body:
1616

1717
; GCN-LABEL: {{^}}buffer_atomic_csub_no_rtn:
1818
; PREGFX12: buffer_atomic_csub v0, v1, s[0:3], 0 idxen
19-
; GFX12PLUS: buffer_atomic_csub_u32 v0, v1, s[0:3], null idxen
19+
; GFX12PLUS: buffer_atomic_sub_clamp_u32 v0, v1, s[0:3], null idxen
2020
define amdgpu_ps void @buffer_atomic_csub_no_rtn(<4 x i32> inreg %rsrc, i32 %data, i32 %vindex) #0 {
2121
main_body:
2222
%ret = call i32 @llvm.amdgcn.buffer.atomic.csub(i32 %data, <4 x i32> %rsrc, i32 %vindex, i32 0, i1 0)
@@ -34,7 +34,7 @@ main_body:
3434

3535
; GCN-LABEL: {{^}}buffer_atomic_csub_off4_slc_no_rtn:
3636
; PREGFX12: buffer_atomic_csub v0, v1, s[0:3], 0 idxen offset:4 slc
37-
; GFX12PLUS: buffer_atomic_csub_u32 v0, v1, s[0:3], null idxen offset:4 th:TH_ATOMIC_NT
37+
; GFX12PLUS: buffer_atomic_sub_clamp_u32 v0, v1, s[0:3], null idxen offset:4 th:TH_ATOMIC_NT
3838
define amdgpu_ps void @buffer_atomic_csub_off4_slc_no_rtn(<4 x i32> inreg %rsrc, i32 %data, i32 %vindex) #0 {
3939
main_body:
4040
%ret = call i32 @llvm.amdgcn.buffer.atomic.csub(i32 %data, <4 x i32> %rsrc, i32 %vindex, i32 4, i1 1)

0 commit comments

Comments
 (0)