31 lines
803 B
Plaintext
31 lines
803 B
Plaintext
|
#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)));
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|