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

using namespace metal;

struct SSBO;

struct UBO
{
    uint2 b;
};

struct SSBO
{
    packed_float3 a1;
    float a2;
};

kernel void main0(constant UBO& _10 [[buffer(0)]])
{
    (reinterpret_cast<device SSBO*>(as_type<ulong>(_10.b)))->a1 = float3(1.0, 2.0, 3.0);
    uint2 _35 = as_type<uint2>(reinterpret_cast<ulong>(reinterpret_cast<device SSBO*>(as_type<ulong>(_10.b + uint2(32u)))));
    uint2 v2 = _35;
    device SSBO* _39 = reinterpret_cast<device SSBO*>(as_type<ulong>(_35));
    float3 v3 = float3(_39->a1);
    _39->a1 = float3(_39->a1) + float3(1.0);
}

