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

using namespace metal;

struct S0
{
    float4 a;
};

struct SSBO0
{
    S0 s0s[1];
};

struct S1
{
    float4 a;
};

struct SSBO1
{
    S1 s1s[1];
};

struct SSBO2
{
    float4 outputs[1];
};

constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u);

kernel void main0(device SSBO0& _36 [[buffer(0)]], device SSBO1& _55 [[buffer(1)]], device SSBO2& _66 [[buffer(2)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]])
{
    _66.outputs[gl_GlobalInvocationID.x] = _36.s0s[gl_GlobalInvocationID.x].a + _55.s1s[gl_GlobalInvocationID.x].a;
}

