1cb93a386Sopenharmony_ci#include <metal_stdlib>
2cb93a386Sopenharmony_ci#include <simd/simd.h>
3cb93a386Sopenharmony_ciusing namespace metal;
4cb93a386Sopenharmony_cistruct Inputs {
5cb93a386Sopenharmony_ci};
6cb93a386Sopenharmony_cistruct Outputs {
7cb93a386Sopenharmony_ci    half4 sk_FragColor [[color(0)]];
8cb93a386Sopenharmony_ci};
9cb93a386Sopenharmony_cifragment Outputs fragmentMain(Inputs _in [[stage_in]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) {
10cb93a386Sopenharmony_ci    Outputs _out;
11cb93a386Sopenharmony_ci    (void)_out;
12cb93a386Sopenharmony_ci    half4 result = half4(0.0h);
13cb93a386Sopenharmony_ci    {
14cb93a386Sopenharmony_ci        half a = 0.0h;
15cb93a386Sopenharmony_ci        half b = 0.0h;
16cb93a386Sopenharmony_ci        for (; a < 10.0h && b < 10.0h; (++a , ++b)) {
17cb93a386Sopenharmony_ci            result.x = result.x + a;
18cb93a386Sopenharmony_ci            result.y = result.y + b;
19cb93a386Sopenharmony_ci        }
20cb93a386Sopenharmony_ci    }
21cb93a386Sopenharmony_ci    {
22cb93a386Sopenharmony_ci        int c = 0;
23cb93a386Sopenharmony_ci        for (; c < 10; ++c) {
24cb93a386Sopenharmony_ci            result.z = result.z + 1.0h;
25cb93a386Sopenharmony_ci        }
26cb93a386Sopenharmony_ci    }
27cb93a386Sopenharmony_ci    {
28cb93a386Sopenharmony_ci        array<float, 2> d = array<float, 2>{0.0, 10.0};
29cb93a386Sopenharmony_ci        array<float, 4> e = array<float, 4>{1.0, 2.0, 3.0, 4.0};
30cb93a386Sopenharmony_ci        float f = 9.0;
31cb93a386Sopenharmony_ci        for (; d[0] < d[1]; ++d[0]) {
32cb93a386Sopenharmony_ci            result.w = half(e[0] * f);
33cb93a386Sopenharmony_ci        }
34cb93a386Sopenharmony_ci    }
35cb93a386Sopenharmony_ci    {
36cb93a386Sopenharmony_ci        for (; ; ) break;
37cb93a386Sopenharmony_ci    }
38cb93a386Sopenharmony_ci    for (; ; ) break;
39cb93a386Sopenharmony_ci    _out.sk_FragColor = result;
40cb93a386Sopenharmony_ci    return _out;
41cb93a386Sopenharmony_ci}
42