| #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)]]) |
| { |
| ((device SSBO*)as_type<uint64_t>(_10.b))->a1 = float3(1.0, 2.0, 3.0); |
| uint2 _35 = as_type<uint2>((uint64_t)((device SSBO*)as_type<uint64_t>(_10.b + uint2(32u)))); |
| uint2 v2 = _35; |
| device SSBO* _39 = ((device SSBO*)as_type<uint64_t>(_35)); |
| float3 v3 = float3(_39->a1); |
| _39->a1 = float3(_39->a1) + float3(1.0); |
| } |
| |