#include <metal_stdlib>

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

void atomicLoad_0806ad(device SB_RW* const tint_symbol, device int* const tint_symbol_1) {
  int res = atomic_load_explicit(&((*(tint_symbol)).arg_0), memory_order_relaxed);
  *(tint_symbol_1) = res;
}

fragment void fragment_main(device SB_RW* tint_symbol_2 [[buffer(0)]], device int* tint_symbol_3 [[buffer(1)]]) {
  atomicLoad_0806ad(tint_symbol_2, tint_symbol_3);
  return;
}

kernel void compute_main(device SB_RW* tint_symbol_4 [[buffer(0)]], device int* tint_symbol_5 [[buffer(1)]]) {
  atomicLoad_0806ad(tint_symbol_4, tint_symbol_5);
  return;
}

