| #include <metal_stdlib> |
| #include <simd/simd.h> |
| using namespace metal; |
| struct S { |
| float f; |
| array<float, 5> af; |
| half4 h4; |
| array<half4, 5> ah4; |
| }; |
| struct Uniforms { |
| half4 colorGreen; |
| }; |
| struct Inputs { |
| }; |
| struct Outputs { |
| half4 sk_FragColor [[color(0)]]; |
| }; |
| struct Globals { |
| half4 globalVar; |
| S globalStruct; |
| }; |
| void keepAlive_vf(thread float& f); |
| void _skOutParamHelper0_keepAlive_vf(thread array<float4, 1>& af4) { |
| float _var0 = af4[0].x; |
| keepAlive_vf(_var0); |
| af4[0].x = _var0; |
| } |
| void keepAlive_vh(thread half& h); |
| void _skOutParamHelper1_keepAlive_vh(thread array<half3x3, 1>& ah3x3) { |
| half _var0 = ah3x3[0][0].x; |
| keepAlive_vh(_var0); |
| ah3x3[0][0].x = _var0; |
| } |
| void keepAlive_vi(thread int& i); |
| void _skOutParamHelper2_keepAlive_vi(thread int& i) { |
| int _var0 = i; |
| keepAlive_vi(_var0); |
| i = _var0; |
| } |
| void keepAlive_vi(thread int& i); |
| void _skOutParamHelper3_keepAlive_vi(thread int4& i4) { |
| int _var0 = i4.y; |
| keepAlive_vi(_var0); |
| i4.y = _var0; |
| } |
| void keepAlive_vi(thread int& i); |
| void _skOutParamHelper4_keepAlive_vi(thread array<int, 1>& ai) { |
| int _var0 = ai[0]; |
| keepAlive_vi(_var0); |
| ai[0] = _var0; |
| } |
| void keepAlive_vi(thread int& i); |
| void _skOutParamHelper5_keepAlive_vi(thread array<int4, 1>& ai4) { |
| int _var0 = ai4[0].x; |
| keepAlive_vi(_var0); |
| ai4[0].x = _var0; |
| } |
| void keepAlive_vh(thread half& h); |
| void _skOutParamHelper6_keepAlive_vh(thread half4& x) { |
| half _var0 = x.y; |
| keepAlive_vh(_var0); |
| x.y = _var0; |
| } |
| void keepAlive_vf(thread float& f); |
| void _skOutParamHelper7_keepAlive_vf(thread S& s) { |
| float _var0 = s.f; |
| keepAlive_vf(_var0); |
| s.f = _var0; |
| } |
| void keepAlive_vh(thread half& h); |
| void _skOutParamHelper8_keepAlive_vh(thread half& l) { |
| half _var0 = l; |
| keepAlive_vh(_var0); |
| l = _var0; |
| } |
| void keepAlive_vf(thread float& f); |
| void _skOutParamHelper9_keepAlive_vf(thread float3x3& f3x3) { |
| float _var0 = f3x3[0].x; |
| keepAlive_vf(_var0); |
| f3x3[0].x = _var0; |
| } |
| void keepAlive_vh(thread half& h) { |
| } |
| void keepAlive_vf(thread float& f) { |
| } |
| void keepAlive_vi(thread int& i) { |
| } |
| fragment Outputs fragmentMain(Inputs _in [[stage_in]], constant Uniforms& _uniforms [[buffer(0)]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) { |
| Globals _globals{{}, {}}; |
| (void)_globals; |
| Outputs _out; |
| (void)_out; |
| int i; |
| i = 0; |
| int4 i4; |
| i4 = int4(1, 2, 3, 4); |
| float3x3 f3x3; |
| f3x3 = float3x3(float3(1.0, 2.0, 3.0), float3(4.0, 5.0, 6.0), float3(7.0, 8.0, 9.0)); |
| half4 x; |
| x.w = 0.0h; |
| x.yx = half2(0.0h); |
| array<int, 1> ai; |
| ai[0] = 0; |
| array<int4, 1> ai4; |
| ai4[0] = int4(1, 2, 3, 4); |
| array<half3x3, 1> ah3x3; |
| ah3x3[0] = half3x3(half3(1.0h, 2.0h, 3.0h), half3(4.0h, 5.0h, 6.0h), half3(7.0h, 8.0h, 9.0h)); |
| array<float4, 1> af4; |
| af4[0].x = 0.0; |
| af4[0].ywxz = float4(1.0); |
| S s; |
| s.f = 0.0; |
| s.af[1] = 0.0; |
| s.h4.zxy = half3(9.0h); |
| s.ah4[2].yw = half2(5.0h); |
| _globals.globalVar = half4(0.0h); |
| _globals.globalStruct.f = 0.0; |
| half l; |
| l = 0.0h; |
| ai[0] += ai4[0].x; |
| s.f = 1.0; |
| s.af[0] = 2.0; |
| s.h4 = half4(1.0h); |
| s.ah4[0] = half4(2.0h); |
| _skOutParamHelper0_keepAlive_vf(af4); |
| _skOutParamHelper1_keepAlive_vh(ah3x3); |
| _skOutParamHelper2_keepAlive_vi(i); |
| _skOutParamHelper3_keepAlive_vi(i4); |
| _skOutParamHelper4_keepAlive_vi(ai); |
| _skOutParamHelper5_keepAlive_vi(ai4); |
| _skOutParamHelper6_keepAlive_vh(x); |
| _skOutParamHelper7_keepAlive_vf(s); |
| _skOutParamHelper8_keepAlive_vh(l); |
| _skOutParamHelper9_keepAlive_vf(f3x3); |
| _out.sk_FragColor = _uniforms.colorGreen; |
| return _out; |
| } |