xref: /aosp_15_r20/external/skia/tests/sksl/metal/OutParams.metal (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1#include <metal_stdlib>
2#include <simd/simd.h>
3#ifdef __clang__
4#pragma clang diagnostic ignored "-Wall"
5#endif
6using namespace metal;
7struct Inputs {
8};
9struct Outputs {
10    half4 sk_FragColor [[color(0)]];
11};
12void out_half_vh(thread half& v) {
13    v = 1.0h;
14}
15void out_half2_vh2(thread half2& v) {
16    v = half2(2.0h);
17}
18void out_half3_vh3(thread half3& v) {
19    v = half3(3.0h);
20}
21void out_half4_vh4(thread half4& v) {
22    v = half4(4.0h);
23}
24void out_half2x2_vh22(thread half2x2& v) {
25    v = half2x2(2.0h);
26}
27void out_half3x3_vh33(thread half3x3& v) {
28    v = half3x3(3.0h);
29}
30void out_half4x4_vh44(thread half4x4& v) {
31    v = half4x4(4.0h);
32}
33void out_int_vi(thread int& v) {
34    v = 1;
35}
36void out_int2_vi2(thread int2& v) {
37    v = int2(2);
38}
39void out_int3_vi3(thread int3& v) {
40    v = int3(3);
41}
42void out_int4_vi4(thread int4& v) {
43    v = int4(4);
44}
45void out_float_vf(thread float& v) {
46    v = 1.0;
47}
48void out_float2_vf2(thread float2& v) {
49    v = float2(2.0);
50}
51void out_float3_vf3(thread float3& v) {
52    v = float3(3.0);
53}
54void out_float4_vf4(thread float4& v) {
55    v = float4(4.0);
56}
57void out_float2x2_vf22(thread float2x2& v) {
58    v = float2x2(2.0);
59}
60void out_float3x3_vf33(thread float3x3& v) {
61    v = float3x3(3.0);
62}
63void out_float4x4_vf44(thread float4x4& v) {
64    v = float4x4(4.0);
65}
66void out_bool_vb(thread bool& v) {
67    v = true;
68}
69void out_bool2_vb2(thread bool2& v) {
70    v = bool2(false);
71}
72void out_bool3_vb3(thread bool3& v) {
73    v = bool3(true);
74}
75void out_bool4_vb4(thread bool4& v) {
76    v = bool4(false);
77}
78void out_pair_vhh(thread half& v1, thread half& v2) {
79    v1 = 1.0h;
80    v2 = 2.0h;
81}
82fragment Outputs fragmentMain(Inputs _in [[stage_in]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) {
83    Outputs _out;
84    (void)_out;
85    half _skTemp0;
86    half2 _skTemp1;
87    half3 _skTemp2;
88    half4 _skTemp3;
89    half _skTemp4;
90    half2 _skTemp5;
91    half4 _skTemp6;
92    half _skTemp7;
93    half _skTemp8;
94    half _skTemp9;
95    half _skTemp10;
96    half _skTemp11;
97    half _skTemp12;
98    half _skTemp13;
99    half _skTemp14;
100    half _skTemp15;
101    half _skTemp16;
102    half2x2 _skTemp17;
103    half3x3 _skTemp18;
104    half4x4 _skTemp19;
105    half3 _skTemp20;
106    half4 _skTemp21;
107    half2 _skTemp22;
108    int _skTemp23;
109    int2 _skTemp24;
110    int3 _skTemp25;
111    int4 _skTemp26;
112    int3 _skTemp27;
113    float _skTemp28;
114    float2 _skTemp29;
115    float3 _skTemp30;
116    float4 _skTemp31;
117    float2 _skTemp32;
118    float _skTemp33;
119    float2x2 _skTemp34;
120    float3x3 _skTemp35;
121    float4x4 _skTemp36;
122    float _skTemp37;
123    float4 _skTemp38;
124    bool _skTemp39;
125    bool2 _skTemp40;
126    bool3 _skTemp41;
127    bool4 _skTemp42;
128    bool2 _skTemp43;
129    bool _skTemp44;
130    half h;
131    ((out_half_vh(_skTemp0)), (h = _skTemp0));
132    half2 h2;
133    ((out_half2_vh2(_skTemp1)), (h2 = _skTemp1));
134    half3 h3;
135    ((out_half3_vh3(_skTemp2)), (h3 = _skTemp2));
136    half4 h4;
137    ((out_half4_vh4(_skTemp3)), (h4 = _skTemp3));
138    ((out_half_vh(_skTemp4)), (h3.y = _skTemp4));
139    ((out_half2_vh2(_skTemp5)), (h3.xz = _skTemp5));
140    ((out_half4_vh4(_skTemp6)), (h4.zwxy = _skTemp6));
141    _out.sk_FragColor = half4(h, h2.x, h3.x, h4.x);
142    half h1;
143    ((out_pair_vhh(_skTemp7, _skTemp8)), (h = _skTemp7), (h1 = _skTemp8));
144    ((out_pair_vhh(_skTemp9, _skTemp10)), (h = _skTemp9), (h = _skTemp10));
145    ((out_pair_vhh(_skTemp11, _skTemp12)), (h2.x = _skTemp11), (h2.y = _skTemp12));
146    ((out_pair_vhh(_skTemp13, _skTemp14)), (h2.x = _skTemp13), (h2.x = _skTemp14));
147    ((out_pair_vhh(_skTemp15, _skTemp16)), (h2.x = _skTemp15), (h3.x = _skTemp16));
148    half2x2 h2x2;
149    ((out_half2x2_vh22(_skTemp17)), (h2x2 = _skTemp17));
150    half3x3 h3x3;
151    ((out_half3x3_vh33(_skTemp18)), (h3x3 = _skTemp18));
152    half4x4 h4x4;
153    ((out_half4x4_vh44(_skTemp19)), (h4x4 = _skTemp19));
154    ((out_half3_vh3(_skTemp20)), (h3x3[1] = _skTemp20));
155    ((out_half4_vh4(_skTemp21)), (h4x4[3].zwxy = _skTemp21));
156    ((out_half2_vh2(_skTemp22)), (h2x2[0] = _skTemp22));
157    _out.sk_FragColor = half4(h2x2[0].x, h3x3[0].x, h4x4[0].x, 1.0h);
158    int i;
159    ((out_int_vi(_skTemp23)), (i = _skTemp23));
160    int2 i2;
161    ((out_int2_vi2(_skTemp24)), (i2 = _skTemp24));
162    int3 i3;
163    ((out_int3_vi3(_skTemp25)), (i3 = _skTemp25));
164    int4 i4;
165    ((out_int4_vi4(_skTemp26)), (i4 = _skTemp26));
166    ((out_int3_vi3(_skTemp27)), (i4.xyz = _skTemp27));
167    _out.sk_FragColor = half4(half(i), half(i2.x), half(i3.x), half(i4.x));
168    float f;
169    ((out_float_vf(_skTemp28)), (f = _skTemp28));
170    float2 f2;
171    ((out_float2_vf2(_skTemp29)), (f2 = _skTemp29));
172    float3 f3;
173    ((out_float3_vf3(_skTemp30)), (f3 = _skTemp30));
174    float4 f4;
175    ((out_float4_vf4(_skTemp31)), (f4 = _skTemp31));
176    ((out_float2_vf2(_skTemp32)), (f3.xy = _skTemp32));
177    ((out_float_vf(_skTemp33)), (f2.x = _skTemp33));
178    _out.sk_FragColor = half4(half(f), half(f2.x), half(f3.x), half(f4.x));
179    float2x2 f2x2;
180    ((out_float2x2_vf22(_skTemp34)), (f2x2 = _skTemp34));
181    float3x3 f3x3;
182    ((out_float3x3_vf33(_skTemp35)), (f3x3 = _skTemp35));
183    float4x4 f4x4;
184    ((out_float4x4_vf44(_skTemp36)), (f4x4 = _skTemp36));
185    ((out_float_vf(_skTemp37)), (f2x2[0].x = _skTemp37));
186    ((out_float4_vf4(_skTemp38)), (f4x4[1] = _skTemp38));
187    _out.sk_FragColor = half4(half(f2x2[0].x), half(f3x3[0].x), half(f4x4[0].x), 1.0h);
188    bool b;
189    ((out_bool_vb(_skTemp39)), (b = _skTemp39));
190    bool2 b2;
191    ((out_bool2_vb2(_skTemp40)), (b2 = _skTemp40));
192    bool3 b3;
193    ((out_bool3_vb3(_skTemp41)), (b3 = _skTemp41));
194    bool4 b4;
195    ((out_bool4_vb4(_skTemp42)), (b4 = _skTemp42));
196    ((out_bool2_vb2(_skTemp43)), (b4.xw = _skTemp43));
197    ((out_bool_vb(_skTemp44)), (b3.z = _skTemp44));
198    _out.sk_FragColor = half4(half(b), half(b2.x), half(b3.x), half(b4.x));
199    return _out;
200}
201