#include <metal_stdlib>

using namespace metal;
void atomicOr_d09248(threadgroup atomic_int* const tint_symbol) {
  int arg_1 = 1;
  int res = atomic_fetch_or_explicit(tint_symbol, arg_1, memory_order_relaxed);
}

void compute_main_inner(uint local_invocation_index, threadgroup atomic_int* const tint_symbol_1) {
  {
    atomic_store_explicit(tint_symbol_1, 0, memory_order_relaxed);
  }
  threadgroup_barrier(mem_flags::mem_threadgroup);
  atomicOr_d09248(tint_symbol_1);
}

kernel void compute_main(uint local_invocation_index [[thread_index_in_threadgroup]]) {
  threadgroup atomic_int tint_symbol_2;
  compute_main_inner(local_invocation_index, &(tint_symbol_2));
  return;
}

