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