#include #include using namespace metal; struct SSBO; struct UBO { uint2 b; }; struct SSBO { packed_float3 a1; float a2; }; kernel void main0(constant UBO& _10 [[buffer(0)]]) { ((device SSBO*)as_type(_10.b))->a1 = float3(1.0, 2.0, 3.0); uint2 v2 = as_type((uint64_t)((device SSBO*)as_type(_10.b + uint2(32u)))); float3 v3 = float3(((device SSBO*)as_type(v2))->a1); ((device SSBO*)as_type(v2))->a1 = v3 + float3(1.0); }