Add support for OpAtomicISub, OpAtomicIIncrement, OpAtomicIDecrement These are the remaining operations which were not tested through the dEQP-VK.image.* path. Test: dEQP-VK.spirv_assembly.* Bug: b/127472316 Change-Id: Icedc2fc7b972714bc67705e2458e1207972b95cc Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/29457 Tested-by: Chris Forbes <chrisforbes@google.com> Presubmit-Ready: Chris Forbes <chrisforbes@google.com> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com> Reviewed-by: Nicolas Capens <nicolascapens@google.com>
diff --git a/src/Reactor/Reactor.hpp b/src/Reactor/Reactor.hpp index fc9a5a1..1c7b5ca 100644 --- a/src/Reactor/Reactor.hpp +++ b/src/Reactor/Reactor.hpp
@@ -1269,6 +1269,7 @@ RValue<UInt> Clamp(RValue<UInt> x, RValue<UInt> min, RValue<UInt> max); RValue<UInt> AddAtomic(RValue<Pointer<UInt>> x, RValue<UInt> y, std::memory_order memoryOrder); + RValue<UInt> SubAtomic(RValue<Pointer<UInt>> x, RValue<UInt> y, std::memory_order memoryOrder); RValue<UInt> AndAtomic(RValue<Pointer<UInt>> x, RValue<UInt> y, std::memory_order memoryOrder); RValue<UInt> OrAtomic(RValue<Pointer<UInt>> x, RValue<UInt> y, std::memory_order memoryOrder); RValue<UInt> XorAtomic(RValue<Pointer<UInt>> x, RValue<UInt> y, std::memory_order memoryOrder);