#include #include using namespace metal; struct _11 { float2x2 _m0; }; struct _12 { float2x4 _m0; }; struct B2 { float4 elem2; }; struct C { float4 c; B2 b2; B2 b2_array[4]; _12 _m3; }; struct B1 { float4 elem1; }; struct A { float4 a; B1 b1; B1 b1_array[4]; _11 _m3; }; struct _8 { A a_block; C c_block; }; kernel void main0(device _8& _3 [[buffer(0)]]) { A _31; _31.a = _3.c_block.c; _31.b1.elem1 = _3.c_block.b2.elem2; _31.b1_array[0].elem1 = _3.c_block.b2_array[0].elem2; _31.b1_array[1].elem1 = _3.c_block.b2_array[1].elem2; _31.b1_array[2].elem1 = _3.c_block.b2_array[2].elem2; _31.b1_array[3].elem1 = _3.c_block.b2_array[3].elem2; _31._m3._m0 = transpose(float2x2(_3.c_block._m3._m0[0].xy, _3.c_block._m3._m0[1].xy)); _3.a_block = _31; }