#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[2][4]; B b[2][4]; C c[2][4]; D d[2][4]; float2x4 e[2][4]; E f[1]; }; kernel void main0(device SSBO& _32 [[buffer(0)]]) { _32.f[0].a = float4(2.0); float2x2 tmp = float2x2(_32.e[0][1][0].xy, _32.e[0][1][1].xy); _32.e[1][2][0].xy = tmp[0]; _32.e[1][2][1].xy = tmp[1]; }