1cb93a386Sopenharmony_ci/*#pragma settings NoInline*/
2cb93a386Sopenharmony_ci
3cb93a386Sopenharmony_civoid out_half (out half  v) { v = 1; }
4cb93a386Sopenharmony_civoid out_half2(out half2 v) { v = half2(2); }
5cb93a386Sopenharmony_civoid out_half3(out half3 v) { v = half3(3); }
6cb93a386Sopenharmony_civoid out_half4(out half4 v) { v = half4(4); }
7cb93a386Sopenharmony_ci
8cb93a386Sopenharmony_civoid out_half2x2(out half2x2 v) { v = half2x2(2); }
9cb93a386Sopenharmony_civoid out_half3x3(out half3x3 v) { v = half3x3(3); }
10cb93a386Sopenharmony_civoid out_half4x4(out half4x4 v) { v = half4x4(4); }
11cb93a386Sopenharmony_ci
12cb93a386Sopenharmony_civoid out_int (out int  v) { v = 1; }
13cb93a386Sopenharmony_civoid out_int2(out int2 v) { v = int2(2); }
14cb93a386Sopenharmony_civoid out_int3(out int3 v) { v = int3(3); }
15cb93a386Sopenharmony_civoid out_int4(out int4 v) { v = int4(4); }
16cb93a386Sopenharmony_ci
17cb93a386Sopenharmony_civoid out_float (out float  v) { v = 1; }
18cb93a386Sopenharmony_civoid out_float2(out float2 v) { v = float2(2); }
19cb93a386Sopenharmony_civoid out_float3(out float3 v) { v = float3(3); }
20cb93a386Sopenharmony_civoid out_float4(out float4 v) { v = float4(4); }
21cb93a386Sopenharmony_ci
22cb93a386Sopenharmony_civoid out_float2x2(out float2x2 v) { v = float2x2(2); }
23cb93a386Sopenharmony_civoid out_float3x3(out float3x3 v) { v = float3x3(3); }
24cb93a386Sopenharmony_civoid out_float4x4(out float4x4 v) { v = float4x4(4); }
25cb93a386Sopenharmony_ci
26cb93a386Sopenharmony_civoid out_bool (out bool  v) { v = true; }
27cb93a386Sopenharmony_civoid out_bool2(out bool2 v) { v = bool2(false); }
28cb93a386Sopenharmony_civoid out_bool3(out bool3 v) { v = bool3(true);  }
29cb93a386Sopenharmony_civoid out_bool4(out bool4 v) { v = bool4(false); }
30cb93a386Sopenharmony_ci
31cb93a386Sopenharmony_civoid out_pair(out half v1, out half v2) { v1 = 1; v2 = 2; }
32cb93a386Sopenharmony_ci
33cb93a386Sopenharmony_civoid main() {
34cb93a386Sopenharmony_ci    half     h;    out_half (h);
35cb93a386Sopenharmony_ci    half2    h2;   out_half2(h2);
36cb93a386Sopenharmony_ci    half3    h3;   out_half3(h3);
37cb93a386Sopenharmony_ci    half4    h4;   out_half4(h4);
38cb93a386Sopenharmony_ci                   out_half(h3[1]);
39cb93a386Sopenharmony_ci                   out_half2(h3.xz);
40cb93a386Sopenharmony_ci                   out_half4(h4.zwxy);
41cb93a386Sopenharmony_ci    sk_FragColor = half4(h, h2.x, h3.x, h4.x);
42cb93a386Sopenharmony_ci
43cb93a386Sopenharmony_ci    half     h1;
44cb93a386Sopenharmony_ci    out_pair(h, h1);
45cb93a386Sopenharmony_ci    out_pair(h, h);
46cb93a386Sopenharmony_ci    out_pair(h2.x, h2.y);
47cb93a386Sopenharmony_ci    out_pair(h2.x, h2.x);
48cb93a386Sopenharmony_ci    out_pair(h2.x, h3.x);
49cb93a386Sopenharmony_ci
50cb93a386Sopenharmony_ci    half2x2  h2x2; out_half2x2(h2x2);
51cb93a386Sopenharmony_ci    half3x3  h3x3; out_half3x3(h3x3);
52cb93a386Sopenharmony_ci    half4x4  h4x4; out_half4x4(h4x4);
53cb93a386Sopenharmony_ci                   out_half3(h3x3[1]);
54cb93a386Sopenharmony_ci                   out_half4(h4x4[3].zwxy);
55cb93a386Sopenharmony_ci                   out_half2(h2x2[0]);
56cb93a386Sopenharmony_ci    sk_FragColor = half4(h2x2[0][0], h3x3[0][0], h4x4[0][0], 1);
57cb93a386Sopenharmony_ci
58cb93a386Sopenharmony_ci    int      i;    out_int (i);
59cb93a386Sopenharmony_ci    int2     i2;   out_int2(i2);
60cb93a386Sopenharmony_ci    int3     i3;   out_int3(i3);
61cb93a386Sopenharmony_ci    int4     i4;   out_int4(i4);
62cb93a386Sopenharmony_ci                   out_int3(i4.xyz);
63cb93a386Sopenharmony_ci    sk_FragColor = half4(i, i2.x, i3.x, i4.x);
64cb93a386Sopenharmony_ci
65cb93a386Sopenharmony_ci    float    f;    out_float (f);
66cb93a386Sopenharmony_ci    float2   f2;   out_float2(f2);
67cb93a386Sopenharmony_ci    float3   f3;   out_float3(f3);
68cb93a386Sopenharmony_ci    float4   f4;   out_float4(f4);
69cb93a386Sopenharmony_ci                   out_float2(f3.xy);
70cb93a386Sopenharmony_ci                   out_float(f2[0]);
71cb93a386Sopenharmony_ci    sk_FragColor = half4(f, f2.x, f3.x, f4.x);
72cb93a386Sopenharmony_ci
73cb93a386Sopenharmony_ci    float2x2 f2x2; out_float2x2(f2x2);
74cb93a386Sopenharmony_ci    float3x3 f3x3; out_float3x3(f3x3);
75cb93a386Sopenharmony_ci    float4x4 f4x4; out_float4x4(f4x4);
76cb93a386Sopenharmony_ci                   out_float(f2x2[0][0]);
77cb93a386Sopenharmony_ci                   out_float4(f4x4[1]);
78cb93a386Sopenharmony_ci    sk_FragColor = half4(f2x2[0][0], f3x3[0][0], f4x4[0][0], 1);
79cb93a386Sopenharmony_ci
80cb93a386Sopenharmony_ci    bool     b;    out_bool (b);
81cb93a386Sopenharmony_ci    bool2    b2;   out_bool2(b2);
82cb93a386Sopenharmony_ci    bool3    b3;   out_bool3(b3);
83cb93a386Sopenharmony_ci    bool4    b4;   out_bool4(b4);
84cb93a386Sopenharmony_ci                   out_bool2(b4.xw);
85cb93a386Sopenharmony_ci                   out_bool(b3[2]);
86cb93a386Sopenharmony_ci    sk_FragColor = half4(b, b2.x, b3.x, b4.x);
87cb93a386Sopenharmony_ci}
88