#include <metal_stdlib>
#include <simd/simd.h>

using namespace metal;

struct SSBO
{
    float4 values[1];
};

constant int _10_tmp [[function_constant(1)]];
constant int _10 = is_function_constant_defined(_10_tmp) ? _10_tmp : 11;
constant int _11_tmp [[function_constant(2)]];
constant int _11 = is_function_constant_defined(_11_tmp) ? _11_tmp : 12;
constant int _4_tmp [[function_constant(3)]];
constant int _4 = is_function_constant_defined(_4_tmp) ? _4_tmp : 13;
constant int _5_tmp [[function_constant(4)]];
constant int _5 = is_function_constant_defined(_5_tmp) ? _5_tmp : 14;
constant uint _29 = (uint(_4) + 3u);
constant uint3 _30 = uint3(_29, _5, 2u);

kernel void main0(device SSBO& _8 [[buffer(0)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]])
{
    _8.values[gl_GlobalInvocationID.x] = ((((_8.values[gl_GlobalInvocationID.x] + float4(2.0)) + float3(_30).xyzz) * float(_4)) * float(_5)) * float(int(2u));
}

