Skip to content

Commit e4af3a9

Browse files
aratajewAlexeySotkin
authored andcommitted
Fix mangling of OpAtomicUMax/OpAtomicUMin representation in SPV-IR
1 parent 767f672 commit e4af3a9

File tree

2 files changed

+8
-2
lines changed

2 files changed

+8
-2
lines changed

lib/SPIRV/SPIRVUtil.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1632,6 +1632,12 @@ class SPIRVFriendlyIRMangleInfo : public BuiltinFuncMangleInfo {
16321632
setArgAttr(0, SPIR::ATTR_CONST);
16331633
addUnsignedArg(0);
16341634
break;
1635+
case OpAtomicUMax:
1636+
LLVM_FALLTHROUGH;
1637+
case OpAtomicUMin:
1638+
addUnsignedArg(0);
1639+
addUnsignedArg(3);
1640+
break;
16351641
default:;
16361642
// No special handling is needed
16371643
}

test/transcoding/atomics.spt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -101,9 +101,9 @@
101101
; CHECK-LLVM-SPV-IR: call spir_func i32 @_Z24__spirv_AtomicIIncrementPU3AS1iii(i32 addrspace(1)* %dst, i32 1, i32 16) #[[#attr:]]
102102
; CHECK-LLVM-SPV-IR: call spir_func i32 @_Z24__spirv_AtomicIDecrementPU3AS1iii(i32 addrspace(1)* %dst, i32 1, i32 16) #[[#attr:]]
103103
; CHECK-LLVM-SPV-IR: call spir_func i32 @_Z18__spirv_AtomicSMaxPU3AS1iiii(i32 addrspace(1)* %dst, i32 1, i32 16, i32 0) #[[#attr:]]
104-
; CHECK-LLVM-SPV-IR: call spir_func i32 @_Z18__spirv_AtomicUMaxPU3AS1iiii(i32 addrspace(1)* %dst, i32 1, i32 16, i32 0) #[[#attr:]]
104+
; CHECK-LLVM-SPV-IR: call spir_func i32 @_Z18__spirv_AtomicUMaxPU3AS1jiij(i32 addrspace(1)* %dst, i32 1, i32 16, i32 0) #[[#attr:]]
105105
; CHECK-LLVM-SPV-IR: call spir_func i32 @_Z18__spirv_AtomicSMinPU3AS1iiii(i32 addrspace(1)* %dst, i32 1, i32 16, i32 0) #[[#attr:]]
106-
; CHECK-LLVM-SPV-IR: call spir_func i32 @_Z18__spirv_AtomicUMinPU3AS1iiii(i32 addrspace(1)* %dst, i32 1, i32 16, i32 0) #[[#attr:]]
106+
; CHECK-LLVM-SPV-IR: call spir_func i32 @_Z18__spirv_AtomicUMinPU3AS1jiij(i32 addrspace(1)* %dst, i32 1, i32 16, i32 0) #[[#attr:]]
107107
; CHECK-LLVM-SPV-IR: call spir_func i32 @_Z18__spirv_AtomicIAddPU3AS1iiii(i32 addrspace(1)* %dst, i32 1, i32 16, i32 1) #[[#attr:]]
108108
; CHECK-LLVM-SPV-IR: call spir_func i32 @_Z18__spirv_AtomicISubPU3AS1iiii(i32 addrspace(1)* %dst, i32 1, i32 16, i32 1) #[[#attr:]]
109109
; CHECK-LLVM-SPV-IR: call spir_func i32 @_Z16__spirv_AtomicOrPU3AS1iiii(i32 addrspace(1)* %dst, i32 1, i32 16, i32 1) #[[#attr:]]

0 commit comments

Comments
 (0)