blob: 3ae8c42e3df15c0c7dbc4d24640bd24017e2a8b8 [file] [log] [blame]
#include <metal_stdlib>
using namespace metal;
#define TINT_ISOLATE_UB(VOLATILE_NAME) \
{volatile bool VOLATILE_NAME = false; if (VOLATILE_NAME) break;}
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) {
TINT_ISOLATE_UB(tint_volatile_false);
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)));
}
}
}
}