#include #include using namespace metal; struct A { float v; char _m0_final_padding[12]; }; struct B { float2 v; char _m0_final_padding[8]; }; struct C { float3 v; }; struct D { float4 v; }; struct E { float4 a; float2 b; char _m0_final_padding[8]; }; struct SSBO { A a[4]; B b[4]; C c[4]; D d[4]; float2x4 e[4]; E f[1]; }; constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); kernel void main0(device SSBO& _26 [[buffer(0)]]) { _26.f[0].a = float4(2.0); float2x2 tmp = float2x2(_26.e[1][0].xy, _26.e[1][1].xy); (device float2&)_26.e[2][0] = tmp[0]; (device float2&)_26.e[2][1] = tmp[1]; }