#include <metal_stdlib>

using namespace metal;
int tint_workgroupUniformLoad(threadgroup int* const p) {
  threadgroup_barrier(mem_flags::mem_threadgroup);
  int const result = *(p);
  threadgroup_barrier(mem_flags::mem_threadgroup);
  return result;
}

void foo(threadgroup int* const tint_symbol_4, threadgroup int* const tint_symbol_5) {
  {
    int i = 0;
    while (true) {
      int const tint_symbol = i;
      int const tint_symbol_1 = tint_workgroupUniformLoad(tint_symbol_4);
      if (!((tint_symbol < tint_symbol_1))) {
        break;
      }
      {
      }
      {
        int const tint_symbol_2 = i;
        int const tint_symbol_3 = tint_workgroupUniformLoad(tint_symbol_5);
        i = as_type<int>((as_type<uint>(tint_symbol_2) + as_type<uint>(tint_symbol_3)));
      }
    }
  }
}