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

using namespace metal;

struct SSBO
{
    float4 values[1];
};

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

kernel void main0(device SSBO& _8 [[buffer(0)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]])
{
    _8.values[gl_GlobalInvocationID.x] += float4(2.0);
}

