1cb93a386Sopenharmony_ci#include <metal_stdlib> 2cb93a386Sopenharmony_ci#include <simd/simd.h> 3cb93a386Sopenharmony_ciusing namespace metal; 4cb93a386Sopenharmony_cistruct S { 5cb93a386Sopenharmony_ci float f; 6cb93a386Sopenharmony_ci array<float, 5> af; 7cb93a386Sopenharmony_ci half4 h4; 8cb93a386Sopenharmony_ci array<half4, 5> ah4; 9cb93a386Sopenharmony_ci}; 10cb93a386Sopenharmony_cistruct Uniforms { 11cb93a386Sopenharmony_ci half4 colorGreen; 12cb93a386Sopenharmony_ci}; 13cb93a386Sopenharmony_cistruct Inputs { 14cb93a386Sopenharmony_ci}; 15cb93a386Sopenharmony_cistruct Outputs { 16cb93a386Sopenharmony_ci half4 sk_FragColor [[color(0)]]; 17cb93a386Sopenharmony_ci}; 18cb93a386Sopenharmony_cistruct Globals { 19cb93a386Sopenharmony_ci half4 globalVar; 20cb93a386Sopenharmony_ci S globalStruct; 21cb93a386Sopenharmony_ci}; 22cb93a386Sopenharmony_cifragment Outputs fragmentMain(Inputs _in [[stage_in]], constant Uniforms& _uniforms [[buffer(0)]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) { 23cb93a386Sopenharmony_ci Globals _globals{{}, {}}; 24cb93a386Sopenharmony_ci (void)_globals; 25cb93a386Sopenharmony_ci Outputs _out; 26cb93a386Sopenharmony_ci (void)_out; 27cb93a386Sopenharmony_ci int i; 28cb93a386Sopenharmony_ci i = 0; 29cb93a386Sopenharmony_ci int4 i4; 30cb93a386Sopenharmony_ci i4 = int4(1, 2, 3, 4); 31cb93a386Sopenharmony_ci float3x3 f3x3; 32cb93a386Sopenharmony_ci f3x3 = float3x3(float3(1.0, 2.0, 3.0), float3(4.0, 5.0, 6.0), float3(7.0, 8.0, 9.0)); 33cb93a386Sopenharmony_ci half4 x; 34cb93a386Sopenharmony_ci x.w = 0.0h; 35cb93a386Sopenharmony_ci x.yx = half2(0.0h); 36cb93a386Sopenharmony_ci array<int, 1> ai; 37cb93a386Sopenharmony_ci ai[0] = 0; 38cb93a386Sopenharmony_ci array<int4, 1> ai4; 39cb93a386Sopenharmony_ci ai4[0] = int4(1, 2, 3, 4); 40cb93a386Sopenharmony_ci array<half3x3, 1> ah2x4; 41cb93a386Sopenharmony_ci ah2x4[0] = half3x3(half3(1.0h, 2.0h, 3.0h), half3(4.0h, 5.0h, 6.0h), half3(7.0h, 8.0h, 9.0h)); 42cb93a386Sopenharmony_ci array<float4, 1> af4; 43cb93a386Sopenharmony_ci af4[0].x = 0.0; 44cb93a386Sopenharmony_ci af4[0].ywxz = float4(1.0); 45cb93a386Sopenharmony_ci S s; 46cb93a386Sopenharmony_ci s.f = 0.0; 47cb93a386Sopenharmony_ci s.af[1] = 0.0; 48cb93a386Sopenharmony_ci s.h4.zxy = half3(9.0h); 49cb93a386Sopenharmony_ci s.ah4[2].yw = half2(5.0h); 50cb93a386Sopenharmony_ci _globals.globalVar = half4(0.0h); 51cb93a386Sopenharmony_ci _globals.globalStruct.f = 0.0; 52cb93a386Sopenharmony_ci half l; 53cb93a386Sopenharmony_ci l = 0.0h; 54cb93a386Sopenharmony_ci ai[0] += ai4[0].x; 55cb93a386Sopenharmony_ci s.f = 1.0; 56cb93a386Sopenharmony_ci s.af[0] = 2.0; 57cb93a386Sopenharmony_ci s.h4 = half4(1.0h); 58cb93a386Sopenharmony_ci s.ah4[0] = half4(2.0h); 59cb93a386Sopenharmony_ci af4[0] *= float(ah2x4[0][0].x); 60cb93a386Sopenharmony_ci i4.y = i4.y * i; 61cb93a386Sopenharmony_ci x.y = x.y * l; 62cb93a386Sopenharmony_ci s.f *= float(l); 63cb93a386Sopenharmony_ci _out.sk_FragColor = _uniforms.colorGreen; 64cb93a386Sopenharmony_ci return _out; 65cb93a386Sopenharmony_ci} 66