dawn-cmake/test/intrinsics/gen/atomicSub/0d26c2.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
674 B
Plaintext

#include <metal_stdlib>
using namespace metal;
void atomicSub_0d26c2(threadgroup atomic_uint* const tint_symbol) {
uint res = atomic_fetch_sub_explicit(tint_symbol, 1u, memory_order_relaxed);
}
void compute_main_inner(uint local_invocation_index, threadgroup atomic_uint* const tint_symbol_1) {
{
atomic_store_explicit(tint_symbol_1, uint(), memory_order_relaxed);
}
threadgroup_barrier(mem_flags::mem_threadgroup);
atomicSub_0d26c2(tint_symbol_1);
}
kernel void compute_main(uint local_invocation_index [[thread_index_in_threadgroup]]) {
threadgroup atomic_uint tint_symbol_2;
compute_main_inner(local_invocation_index, &(tint_symbol_2));
return;
}