#include <metal_stdlib>
using namespace metal;

struct SB_RW {
  atomic_uint arg_0;
};

struct tint_module_vars_struct {
  device SB_RW* sb_rw;
};

void atomicStore_cdc29e(tint_module_vars_struct tint_module_vars) {
  atomic_store_explicit((&(*tint_module_vars.sb_rw).arg_0), 1u, memory_order_relaxed);
}

fragment void fragment_main(device SB_RW* sb_rw [[buffer(0)]]) {
  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.sb_rw=sb_rw};
  atomicStore_cdc29e(tint_module_vars);
}

kernel void compute_main(device SB_RW* sb_rw [[buffer(0)]]) {
  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.sb_rw=sb_rw};
  atomicStore_cdc29e(tint_module_vars);
}
