| #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))); | 
 |       } | 
 |     } | 
 |   } | 
 | } | 
 |  |