xref: /aosp_15_r20/external/skia/tests/sksl/shared/Matrices.hlsl (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1cbuffer _UniformBuffer : register(b0, space0)
2{
3    float4 _9_colorGreen : packoffset(c0);
4    float4 _9_colorRed : packoffset(c1);
5};
6
7
8static float4 sk_FragColor;
9
10struct SPIRV_Cross_Output
11{
12    float4 sk_FragColor : SV_Target0;
13};
14
15bool test_half_b()
16{
17    bool ok = true;
18    float2x2 m1 = float2x2(float2(1.0f, 2.0f), float2(3.0f, 4.0f));
19    bool _47 = false;
20    if (true)
21    {
22        _47 = all(bool2(float2(1.0f, 2.0f).x == float2(1.0f, 2.0f).x, float2(1.0f, 2.0f).y == float2(1.0f, 2.0f).y)) && all(bool2(float2(3.0f, 4.0f).x == float2(3.0f, 4.0f).x, float2(3.0f, 4.0f).y == float2(3.0f, 4.0f).y));
23    }
24    else
25    {
26        _47 = false;
27    }
28    ok = _47;
29    float2x2 m3 = float2x2(float2(1.0f, 2.0f), float2(3.0f, 4.0f));
30    bool _56 = false;
31    if (_47)
32    {
33        _56 = all(bool2(float2(1.0f, 2.0f).x == float2(1.0f, 2.0f).x, float2(1.0f, 2.0f).y == float2(1.0f, 2.0f).y)) && all(bool2(float2(3.0f, 4.0f).x == float2(3.0f, 4.0f).x, float2(3.0f, 4.0f).y == float2(3.0f, 4.0f).y));
34    }
35    else
36    {
37        _56 = false;
38    }
39    ok = _56;
40    float2x2 m4 = float2x2(float2(6.0f, 0.0f), float2(0.0f, 6.0f));
41    bool _69 = false;
42    if (_56)
43    {
44        _69 = all(bool2(float2(6.0f, 0.0f).x == float2(6.0f, 0.0f).x, float2(6.0f, 0.0f).y == float2(6.0f, 0.0f).y)) && all(bool2(float2(0.0f, 6.0f).x == float2(0.0f, 6.0f).x, float2(0.0f, 6.0f).y == float2(0.0f, 6.0f).y));
45    }
46    else
47    {
48        _69 = false;
49    }
50    ok = _69;
51    float2x2 _70 = mul(float2x2(float2(6.0f, 0.0f), float2(0.0f, 6.0f)), float2x2(float2(1.0f, 2.0f), float2(3.0f, 4.0f)));
52    m3 = _70;
53    bool _86 = false;
54    if (_69)
55    {
56        float2 _79 = _70[0];
57        float2 _82 = _70[1];
58        _86 = all(bool2(_79.x == float2(6.0f, 12.0f).x, _79.y == float2(6.0f, 12.0f).y)) && all(bool2(_82.x == float2(18.0f, 24.0f).x, _82.y == float2(18.0f, 24.0f).y));
59    }
60    else
61    {
62        _86 = false;
63    }
64    ok = _86;
65    float2 _91 = m1[1];
66    float2 _93 = float2(_91.y, 0.0f);
67    float2 _94 = float2(0.0f, _91.y);
68    float2x2 m5 = float2x2(_93, _94);
69    bool _106 = false;
70    if (_86)
71    {
72        _106 = all(bool2(_93.x == float2(4.0f, 0.0f).x, _93.y == float2(4.0f, 0.0f).y)) && all(bool2(_94.x == float2(0.0f, 4.0f).x, _94.y == float2(0.0f, 4.0f).y));
73    }
74    else
75    {
76        _106 = false;
77    }
78    ok = _106;
79    float2 _107 = float2(1.0f, 2.0f) + _93;
80    float2 _108 = float2(3.0f, 4.0f) + _94;
81    m1 = float2x2(_107, _108);
82    bool _122 = false;
83    if (_106)
84    {
85        _122 = all(bool2(_107.x == float2(5.0f, 2.0f).x, _107.y == float2(5.0f, 2.0f).y)) && all(bool2(_108.x == float2(3.0f, 8.0f).x, _108.y == float2(3.0f, 8.0f).y));
86    }
87    else
88    {
89        _122 = false;
90    }
91    ok = _122;
92    float2x2 m7 = float2x2(float2(5.0f, 6.0f), float2(7.0f, 8.0f));
93    bool _135 = false;
94    if (_122)
95    {
96        _135 = all(bool2(float2(5.0f, 6.0f).x == float2(5.0f, 6.0f).x, float2(5.0f, 6.0f).y == float2(5.0f, 6.0f).y)) && all(bool2(float2(7.0f, 8.0f).x == float2(7.0f, 8.0f).x, float2(7.0f, 8.0f).y == float2(7.0f, 8.0f).y));
97    }
98    else
99    {
100        _135 = false;
101    }
102    ok = _135;
103    float3x3 m9 = float3x3(float3(9.0f, 0.0f, 0.0f), float3(0.0f, 9.0f, 0.0f), float3(0.0f, 0.0f, 9.0f));
104    bool _156 = false;
105    if (_135)
106    {
107        _156 = (all(bool3(float3(9.0f, 0.0f, 0.0f).x == float3(9.0f, 0.0f, 0.0f).x, float3(9.0f, 0.0f, 0.0f).y == float3(9.0f, 0.0f, 0.0f).y, float3(9.0f, 0.0f, 0.0f).z == float3(9.0f, 0.0f, 0.0f).z)) && all(bool3(float3(0.0f, 9.0f, 0.0f).x == float3(0.0f, 9.0f, 0.0f).x, float3(0.0f, 9.0f, 0.0f).y == float3(0.0f, 9.0f, 0.0f).y, float3(0.0f, 9.0f, 0.0f).z == float3(0.0f, 9.0f, 0.0f).z))) && all(bool3(float3(0.0f, 0.0f, 9.0f).x == float3(0.0f, 0.0f, 9.0f).x, float3(0.0f, 0.0f, 9.0f).y == float3(0.0f, 0.0f, 9.0f).y, float3(0.0f, 0.0f, 9.0f).z == float3(0.0f, 0.0f, 9.0f).z));
108    }
109    else
110    {
111        _156 = false;
112    }
113    ok = _156;
114    float4x4 m10 = float4x4(float4(11.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 11.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 11.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 11.0f));
115    bool _180 = false;
116    if (_156)
117    {
118        _180 = ((all(bool4(float4(11.0f, 0.0f, 0.0f, 0.0f).x == float4(11.0f, 0.0f, 0.0f, 0.0f).x, float4(11.0f, 0.0f, 0.0f, 0.0f).y == float4(11.0f, 0.0f, 0.0f, 0.0f).y, float4(11.0f, 0.0f, 0.0f, 0.0f).z == float4(11.0f, 0.0f, 0.0f, 0.0f).z, float4(11.0f, 0.0f, 0.0f, 0.0f).w == float4(11.0f, 0.0f, 0.0f, 0.0f).w)) && all(bool4(float4(0.0f, 11.0f, 0.0f, 0.0f).x == float4(0.0f, 11.0f, 0.0f, 0.0f).x, float4(0.0f, 11.0f, 0.0f, 0.0f).y == float4(0.0f, 11.0f, 0.0f, 0.0f).y, float4(0.0f, 11.0f, 0.0f, 0.0f).z == float4(0.0f, 11.0f, 0.0f, 0.0f).z, float4(0.0f, 11.0f, 0.0f, 0.0f).w == float4(0.0f, 11.0f, 0.0f, 0.0f).w))) && all(bool4(float4(0.0f, 0.0f, 11.0f, 0.0f).x == float4(0.0f, 0.0f, 11.0f, 0.0f).x, float4(0.0f, 0.0f, 11.0f, 0.0f).y == float4(0.0f, 0.0f, 11.0f, 0.0f).y, float4(0.0f, 0.0f, 11.0f, 0.0f).z == float4(0.0f, 0.0f, 11.0f, 0.0f).z, float4(0.0f, 0.0f, 11.0f, 0.0f).w == float4(0.0f, 0.0f, 11.0f, 0.0f).w))) && all(bool4(float4(0.0f, 0.0f, 0.0f, 11.0f).x == float4(0.0f, 0.0f, 0.0f, 11.0f).x, float4(0.0f, 0.0f, 0.0f, 11.0f).y == float4(0.0f, 0.0f, 0.0f, 11.0f).y, float4(0.0f, 0.0f, 0.0f, 11.0f).z == float4(0.0f, 0.0f, 0.0f, 11.0f).z, float4(0.0f, 0.0f, 0.0f, 11.0f).w == float4(0.0f, 0.0f, 0.0f, 11.0f).w));
119    }
120    else
121    {
122        _180 = false;
123    }
124    ok = _180;
125    float4x4 m11 = float4x4(20.0f.xxxx, 20.0f.xxxx, 20.0f.xxxx, 20.0f.xxxx);
126    float4 _185 = 20.0f.xxxx - float4(11.0f, 0.0f, 0.0f, 0.0f);
127    float4 _186 = 20.0f.xxxx - float4(0.0f, 11.0f, 0.0f, 0.0f);
128    float4 _187 = 20.0f.xxxx - float4(0.0f, 0.0f, 11.0f, 0.0f);
129    float4 _188 = 20.0f.xxxx - float4(0.0f, 0.0f, 0.0f, 11.0f);
130    m11 = float4x4(_185, _186, _187, _188);
131    bool _208 = false;
132    if (_180)
133    {
134        _208 = ((all(bool4(_185.x == float4(9.0f, 20.0f, 20.0f, 20.0f).x, _185.y == float4(9.0f, 20.0f, 20.0f, 20.0f).y, _185.z == float4(9.0f, 20.0f, 20.0f, 20.0f).z, _185.w == float4(9.0f, 20.0f, 20.0f, 20.0f).w)) && all(bool4(_186.x == float4(20.0f, 9.0f, 20.0f, 20.0f).x, _186.y == float4(20.0f, 9.0f, 20.0f, 20.0f).y, _186.z == float4(20.0f, 9.0f, 20.0f, 20.0f).z, _186.w == float4(20.0f, 9.0f, 20.0f, 20.0f).w))) && all(bool4(_187.x == float4(20.0f, 20.0f, 9.0f, 20.0f).x, _187.y == float4(20.0f, 20.0f, 9.0f, 20.0f).y, _187.z == float4(20.0f, 20.0f, 9.0f, 20.0f).z, _187.w == float4(20.0f, 20.0f, 9.0f, 20.0f).w))) && all(bool4(_188.x == float4(20.0f, 20.0f, 20.0f, 9.0f).x, _188.y == float4(20.0f, 20.0f, 20.0f, 9.0f).y, _188.z == float4(20.0f, 20.0f, 20.0f, 9.0f).z, _188.w == float4(20.0f, 20.0f, 20.0f, 9.0f).w));
135    }
136    else
137    {
138        _208 = false;
139    }
140    ok = _208;
141    return _208;
142}
143
144bool test_comma_b()
145{
146    float2x2 x = float2x2(float2(1.0f, 2.0f), float2(3.0f, 4.0f));
147    float2x2 y = float2x2(float2(1.0f, 2.0f), float2(3.0f, 4.0f));
148    return all(bool2(float2(1.0f, 2.0f).x == float2(1.0f, 2.0f).x, float2(1.0f, 2.0f).y == float2(1.0f, 2.0f).y)) && all(bool2(float2(3.0f, 4.0f).x == float2(3.0f, 4.0f).x, float2(3.0f, 4.0f).y == float2(3.0f, 4.0f).y));
149}
150
151float4 main(float2 _218)
152{
153    bool _RESERVED_IDENTIFIER_FIXUP_0_ok = true;
154    float2x2 _RESERVED_IDENTIFIER_FIXUP_1_m1 = float2x2(float2(1.0f, 2.0f), float2(3.0f, 4.0f));
155    bool _229 = false;
156    if (true)
157    {
158        _229 = all(bool2(float2(1.0f, 2.0f).x == float2(1.0f, 2.0f).x, float2(1.0f, 2.0f).y == float2(1.0f, 2.0f).y)) && all(bool2(float2(3.0f, 4.0f).x == float2(3.0f, 4.0f).x, float2(3.0f, 4.0f).y == float2(3.0f, 4.0f).y));
159    }
160    else
161    {
162        _229 = false;
163    }
164    _RESERVED_IDENTIFIER_FIXUP_0_ok = _229;
165    float2x2 _RESERVED_IDENTIFIER_FIXUP_2_m3 = float2x2(float2(1.0f, 2.0f), float2(3.0f, 4.0f));
166    bool _238 = false;
167    if (_229)
168    {
169        _238 = all(bool2(float2(1.0f, 2.0f).x == float2(1.0f, 2.0f).x, float2(1.0f, 2.0f).y == float2(1.0f, 2.0f).y)) && all(bool2(float2(3.0f, 4.0f).x == float2(3.0f, 4.0f).x, float2(3.0f, 4.0f).y == float2(3.0f, 4.0f).y));
170    }
171    else
172    {
173        _238 = false;
174    }
175    _RESERVED_IDENTIFIER_FIXUP_0_ok = _238;
176    float2x2 _RESERVED_IDENTIFIER_FIXUP_3_m4 = float2x2(float2(6.0f, 0.0f), float2(0.0f, 6.0f));
177    float2x2 _240 = mul(float2x2(float2(6.0f, 0.0f), float2(0.0f, 6.0f)), float2x2(float2(1.0f, 2.0f), float2(3.0f, 4.0f)));
178    _RESERVED_IDENTIFIER_FIXUP_2_m3 = _240;
179    bool _250 = false;
180    if (_238)
181    {
182        float2 _243 = _240[0];
183        float2 _246 = _240[1];
184        _250 = all(bool2(_243.x == float2(6.0f, 12.0f).x, _243.y == float2(6.0f, 12.0f).y)) && all(bool2(_246.x == float2(18.0f, 24.0f).x, _246.y == float2(18.0f, 24.0f).y));
185    }
186    else
187    {
188        _250 = false;
189    }
190    _RESERVED_IDENTIFIER_FIXUP_0_ok = _250;
191    float2 _253 = _RESERVED_IDENTIFIER_FIXUP_1_m1[1];
192    float2 _255 = float2(_253.y, 0.0f);
193    float2 _256 = float2(0.0f, _253.y);
194    float2x2 _RESERVED_IDENTIFIER_FIXUP_4_m5 = float2x2(_255, _256);
195    bool _265 = false;
196    if (_250)
197    {
198        _265 = all(bool2(_255.x == float2(4.0f, 0.0f).x, _255.y == float2(4.0f, 0.0f).y)) && all(bool2(_256.x == float2(0.0f, 4.0f).x, _256.y == float2(0.0f, 4.0f).y));
199    }
200    else
201    {
202        _265 = false;
203    }
204    _RESERVED_IDENTIFIER_FIXUP_0_ok = _265;
205    float2 _266 = float2(1.0f, 2.0f) + _255;
206    float2 _267 = float2(3.0f, 4.0f) + _256;
207    _RESERVED_IDENTIFIER_FIXUP_1_m1 = float2x2(_266, _267);
208    bool _276 = false;
209    if (_265)
210    {
211        _276 = all(bool2(_266.x == float2(5.0f, 2.0f).x, _266.y == float2(5.0f, 2.0f).y)) && all(bool2(_267.x == float2(3.0f, 8.0f).x, _267.y == float2(3.0f, 8.0f).y));
212    }
213    else
214    {
215        _276 = false;
216    }
217    _RESERVED_IDENTIFIER_FIXUP_0_ok = _276;
218    float4x4 _RESERVED_IDENTIFIER_FIXUP_7_m10 = float4x4(float4(11.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 11.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 11.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 11.0f));
219    float4x4 _RESERVED_IDENTIFIER_FIXUP_8_m11 = float4x4(20.0f.xxxx, 20.0f.xxxx, 20.0f.xxxx, 20.0f.xxxx);
220    float4 _279 = 20.0f.xxxx - float4(11.0f, 0.0f, 0.0f, 0.0f);
221    float4 _280 = 20.0f.xxxx - float4(0.0f, 11.0f, 0.0f, 0.0f);
222    float4 _281 = 20.0f.xxxx - float4(0.0f, 0.0f, 11.0f, 0.0f);
223    float4 _282 = 20.0f.xxxx - float4(0.0f, 0.0f, 0.0f, 11.0f);
224    _RESERVED_IDENTIFIER_FIXUP_8_m11 = float4x4(_279, _280, _281, _282);
225    bool _297 = false;
226    if (_276)
227    {
228        _297 = ((all(bool4(_279.x == float4(9.0f, 20.0f, 20.0f, 20.0f).x, _279.y == float4(9.0f, 20.0f, 20.0f, 20.0f).y, _279.z == float4(9.0f, 20.0f, 20.0f, 20.0f).z, _279.w == float4(9.0f, 20.0f, 20.0f, 20.0f).w)) && all(bool4(_280.x == float4(20.0f, 9.0f, 20.0f, 20.0f).x, _280.y == float4(20.0f, 9.0f, 20.0f, 20.0f).y, _280.z == float4(20.0f, 9.0f, 20.0f, 20.0f).z, _280.w == float4(20.0f, 9.0f, 20.0f, 20.0f).w))) && all(bool4(_281.x == float4(20.0f, 20.0f, 9.0f, 20.0f).x, _281.y == float4(20.0f, 20.0f, 9.0f, 20.0f).y, _281.z == float4(20.0f, 20.0f, 9.0f, 20.0f).z, _281.w == float4(20.0f, 20.0f, 9.0f, 20.0f).w))) && all(bool4(_282.x == float4(20.0f, 20.0f, 20.0f, 9.0f).x, _282.y == float4(20.0f, 20.0f, 20.0f, 9.0f).y, _282.z == float4(20.0f, 20.0f, 20.0f, 9.0f).z, _282.w == float4(20.0f, 20.0f, 20.0f, 9.0f).w));
229    }
230    else
231    {
232        _297 = false;
233    }
234    _RESERVED_IDENTIFIER_FIXUP_0_ok = _297;
235    bool _301 = false;
236    if (_297)
237    {
238        _301 = test_half_b();
239    }
240    else
241    {
242        _301 = false;
243    }
244    bool _305 = false;
245    if (_301)
246    {
247        _305 = test_comma_b();
248    }
249    else
250    {
251        _305 = false;
252    }
253    float4 _306 = 0.0f.xxxx;
254    if (_305)
255    {
256        _306 = _9_colorGreen;
257    }
258    else
259    {
260        _306 = _9_colorRed;
261    }
262    return _306;
263}
264
265void frag_main()
266{
267    float2 _19 = 0.0f.xx;
268    sk_FragColor = main(_19);
269}
270
271SPIRV_Cross_Output main()
272{
273    frag_main();
274    SPIRV_Cross_Output stage_output;
275    stage_output.sk_FragColor = sk_FragColor;
276    return stage_output;
277}
278