blob: a1b08bbd1c4e9822b5116682eff7820785b32d7b [file] [log] [blame]
Ben Claytonf2ec7f32021-06-29 11:53:15 +00001#include <metal_stdlib>
Ben Clayton6a772362021-06-18 18:56:13 +00002
Ben Claytonf2ec7f32021-06-29 11:53:15 +00003using namespace metal;
Ben Clayton6a772362021-06-18 18:56:13 +00004struct SB_RW {
Ben Claytonf2ec7f32021-06-29 11:53:15 +00005 /* 0x0000 */ atomic_int arg_0;
Ben Clayton0a32a722021-06-18 18:56:13 +00006};
7
Natalie Chouinarde9027182024-06-13 18:50:19 +00008int atomicXor_c1b78c(device SB_RW* const tint_symbol) {
James Pricee548db92021-10-28 15:00:39 +00009 int res = atomic_fetch_xor_explicit(&((*(tint_symbol)).arg_0), 1, memory_order_relaxed);
Natalie Chouinarde9027182024-06-13 18:50:19 +000010 return res;
Ben Clayton0a32a722021-06-18 18:56:13 +000011}
12
Natalie Chouinarde9027182024-06-13 18:50:19 +000013fragment void fragment_main(device int* tint_symbol_1 [[buffer(0)]], device SB_RW* tint_symbol_2 [[buffer(1)]]) {
14 *(tint_symbol_1) = atomicXor_c1b78c(tint_symbol_2);
Ben Claytonf2ec7f32021-06-29 11:53:15 +000015 return;
Ben Clayton0a32a722021-06-18 18:56:13 +000016}
17
Natalie Chouinarde9027182024-06-13 18:50:19 +000018kernel void compute_main(device int* tint_symbol_3 [[buffer(0)]], device SB_RW* tint_symbol_4 [[buffer(1)]]) {
19 *(tint_symbol_3) = atomicXor_c1b78c(tint_symbol_4);
Ben Claytonf2ec7f32021-06-29 11:53:15 +000020 return;
Ben Clayton0a32a722021-06-18 18:56:13 +000021}
22