#include 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((as_type(tint_symbol_2) + as_type(tint_symbol_3))); } } } }