#include <metal_stdlib>

using namespace metal;
struct SB_RW {
  /* 0x0000 */ atomic_int arg_0;
};

void atomicExchange_f2e22f(device SB_RW* const tint_symbol) {
  int res = atomic_exchange_explicit(&((*(tint_symbol)).arg_0), 1, memory_order_relaxed);
}

fragment void fragment_main(device SB_RW* tint_symbol_1 [[buffer(0)]]) {
  atomicExchange_f2e22f(tint_symbol_1);
  return;
}

kernel void compute_main(device SB_RW* tint_symbol_2 [[buffer(0)]]) {
  atomicExchange_f2e22f(tint_symbol_2);
  return;
}

