dawn-cmake/test/intrinsics/gen/atomicSub/15bfc9.wgsl.expected.msl
James Price f9d19719fd Implement atomicSub intrinsic
Polyfill this for HLSL using an atomic add with the operand negated.

Fixed: tint:1130
Change-Id: Ifa32d58973f1b48593ec0f6320f47f4358a5a3a9
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/62760
Auto-Submit: James Price <jrprice@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
2021-08-26 15:26:25 +00:00

22 lines
438 B
Plaintext

#include <metal_stdlib>
using namespace metal;
struct SB_RW {
/* 0x0000 */ atomic_uint arg_0;
};
void atomicSub_15bfc9(device SB_RW& sb_rw) {
uint res = atomic_fetch_sub_explicit(&(sb_rw.arg_0), 1u, memory_order_relaxed);
}
fragment void fragment_main(device SB_RW& sb_rw [[buffer(0)]]) {
atomicSub_15bfc9(sb_rw);
return;
}
kernel void compute_main(device SB_RW& sb_rw [[buffer(0)]]) {
atomicSub_15bfc9(sb_rw);
return;
}