#include #include using namespace metal; struct SSBO { float4x4 mvp; float4 in_data[1]; }; struct SSBO2 { float4 out_data[1]; }; kernel void main0(const device SSBO& _24 [[buffer(0)]], device SSBO2& _177 [[buffer(1)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]]) { uint ident = gl_GlobalInvocationID.x; float4 idat = _24.in_data[ident]; int k = 0; uint i = 0u; if (idat.y == 20.0) { do { k *= 2; i++; } while (i < ident); } switch (k) { case 10: { for (;;) { i++; if (i > 10u) { break; } continue; } break; } default: { for (;;) { i += 2u; if (i > 20u) { break; } continue; } break; } } while (k < 10) { idat *= 2.0; k++; } for (uint i_1 = 0u; i_1 < 16u; i_1++, k++) { for (uint j = 0u; j < 30u; j++) { idat = _24.mvp * idat; } } k = 0; for (;;) { k++; if (k > 10) { k += 2; } else { k += 3; continue; } k += 10; continue; } k = 0; do { k++; } while (k > 10); int l = 0; for (;;) { if (l == 5) { int _172 = l; l = _172 + 1; continue; } idat += float4(1.0); int _172 = l; l = _172 + 1; continue; } _177.out_data[ident] = idat; }