xref: /aosp_15_r20/external/skia/tests/sksl/shared/MatrixOpEqualsES3.hlsl (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1cbuffer _UniformBuffer : register(b0, space0)
2{
3    float4 _8_colorRed : packoffset(c0);
4    float4 _8_colorGreen : 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_matrix_op_matrix_half_b()
16{
17    bool ok = true;
18    float3x2 splat_4 = float3x2(4.0f.xx, 4.0f.xx, 4.0f.xx);
19    float3x2 m = float3x2(float2(2.0f, 0.0f), float2(0.0f, 2.0f), 0.0f.xx);
20    float2 _38 = float2(2.0f, 0.0f) + 4.0f.xx;
21    float2 _39 = float2(0.0f, 2.0f) + 4.0f.xx;
22    float2 _40 = 0.0f.xx + 4.0f.xx;
23    m = float3x2(_38, _39, _40);
24    bool _58 = false;
25    if (true)
26    {
27        _58 = (all(bool2(_38.x == float2(6.0f, 4.0f).x, _38.y == float2(6.0f, 4.0f).y)) && all(bool2(_39.x == float2(4.0f, 6.0f).x, _39.y == float2(4.0f, 6.0f).y))) && all(bool2(_40.x == 4.0f.xx.x, _40.y == 4.0f.xx.y));
28    }
29    else
30    {
31        _58 = false;
32    }
33    ok = _58;
34    m = float3x2(float2(2.0f, 0.0f), float2(0.0f, 2.0f), 0.0f.xx);
35    float2 _59 = float2(2.0f, 0.0f) - 4.0f.xx;
36    float2 _60 = float2(0.0f, 2.0f) - 4.0f.xx;
37    float2 _61 = 0.0f.xx - 4.0f.xx;
38    m = float3x2(_59, _60, _61);
39    bool _79 = false;
40    if (_58)
41    {
42        _79 = (all(bool2(_59.x == float2(-2.0f, -4.0f).x, _59.y == float2(-2.0f, -4.0f).y)) && all(bool2(_60.x == float2(-4.0f, -2.0f).x, _60.y == float2(-4.0f, -2.0f).y))) && all(bool2(_61.x == (-4.0f).xx.x, _61.y == (-4.0f).xx.y));
43    }
44    else
45    {
46        _79 = false;
47    }
48    ok = _79;
49    m = float3x2(float2(2.0f, 0.0f), float2(0.0f, 2.0f), 0.0f.xx);
50    float2 _80 = float2(2.0f, 0.0f) / 4.0f.xx;
51    float2 _81 = float2(0.0f, 2.0f) / 4.0f.xx;
52    float2 _82 = 0.0f.xx / 4.0f.xx;
53    m = float3x2(_80, _81, _82);
54    bool _98 = false;
55    if (_79)
56    {
57        _98 = (all(bool2(_80.x == float2(0.5f, 0.0f).x, _80.y == float2(0.5f, 0.0f).y)) && all(bool2(_81.x == float2(0.0f, 0.5f).x, _81.y == float2(0.0f, 0.5f).y))) && all(bool2(_82.x == 0.0f.xx.x, _82.y == 0.0f.xx.y));
58    }
59    else
60    {
61        _98 = false;
62    }
63    ok = _98;
64    float2x3 splat_4_1 = float2x3(4.0f.xxx, 4.0f.xxx);
65    float2x3 m_1 = float2x3(4.0f.xxx, 4.0f.xxx);
66    float3 _109 = 4.0f.xxx + float3(2.0f, 0.0f, 0.0f);
67    float3 _110 = 4.0f.xxx + float3(0.0f, 2.0f, 0.0f);
68    m_1 = float2x3(_109, _110);
69    bool _123 = false;
70    if (_98)
71    {
72        _123 = all(bool3(_109.x == float3(6.0f, 4.0f, 4.0f).x, _109.y == float3(6.0f, 4.0f, 4.0f).y, _109.z == float3(6.0f, 4.0f, 4.0f).z)) && all(bool3(_110.x == float3(4.0f, 6.0f, 4.0f).x, _110.y == float3(4.0f, 6.0f, 4.0f).y, _110.z == float3(4.0f, 6.0f, 4.0f).z));
73    }
74    else
75    {
76        _123 = false;
77    }
78    ok = _123;
79    m_1 = float2x3(4.0f.xxx, 4.0f.xxx);
80    float3 _124 = 4.0f.xxx - float3(2.0f, 0.0f, 0.0f);
81    float3 _125 = 4.0f.xxx - float3(0.0f, 2.0f, 0.0f);
82    m_1 = float2x3(_124, _125);
83    bool _137 = false;
84    if (_123)
85    {
86        _137 = all(bool3(_124.x == float3(2.0f, 4.0f, 4.0f).x, _124.y == float3(2.0f, 4.0f, 4.0f).y, _124.z == float3(2.0f, 4.0f, 4.0f).z)) && all(bool3(_125.x == float3(4.0f, 2.0f, 4.0f).x, _125.y == float3(4.0f, 2.0f, 4.0f).y, _125.z == float3(4.0f, 2.0f, 4.0f).z));
87    }
88    else
89    {
90        _137 = false;
91    }
92    ok = _137;
93    m_1 = float2x3(4.0f.xxx, 4.0f.xxx);
94    float3 _140 = 4.0f.xxx / 2.0f.xxx;
95    float3 _141 = 4.0f.xxx / 2.0f.xxx;
96    m_1 = float2x3(_140, _141);
97    bool _150 = false;
98    if (_137)
99    {
100        _150 = all(bool3(_140.x == 2.0f.xxx.x, _140.y == 2.0f.xxx.y, _140.z == 2.0f.xxx.z)) && all(bool3(_141.x == 2.0f.xxx.x, _141.y == 2.0f.xxx.y, _141.z == 2.0f.xxx.z));
101    }
102    else
103    {
104        _150 = false;
105    }
106    ok = _150;
107    float4x3 m_2 = float4x3(float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f), float3(7.0f, 8.0f, 9.0f), float3(10.0f, 11.0f, 12.0f));
108    float3 _177 = float3(1.0f, 2.0f, 3.0f) + float3(16.0f, 15.0f, 14.0f);
109    float3 _178 = float3(4.0f, 5.0f, 6.0f) + float3(13.0f, 12.0f, 11.0f);
110    float3 _179 = float3(7.0f, 8.0f, 9.0f) + float3(10.0f, 9.0f, 8.0f);
111    float3 _180 = float3(10.0f, 11.0f, 12.0f) + float3(7.0f, 6.0f, 5.0f);
112    m_2 = float4x3(_177, _178, _179, _180);
113    bool _198 = false;
114    if (_150)
115    {
116        _198 = ((all(bool3(_177.x == 17.0f.xxx.x, _177.y == 17.0f.xxx.y, _177.z == 17.0f.xxx.z)) && all(bool3(_178.x == 17.0f.xxx.x, _178.y == 17.0f.xxx.y, _178.z == 17.0f.xxx.z))) && all(bool3(_179.x == 17.0f.xxx.x, _179.y == 17.0f.xxx.y, _179.z == 17.0f.xxx.z))) && all(bool3(_180.x == 17.0f.xxx.x, _180.y == 17.0f.xxx.y, _180.z == 17.0f.xxx.z));
117    }
118    else
119    {
120        _198 = false;
121    }
122    ok = _198;
123    float4x2 m_3 = float4x2(float2(10.0f, 20.0f), float2(30.0f, 40.0f), float2(50.0f, 60.0f), float2(70.0f, 80.0f));
124    float2 _219 = float2(10.0f, 20.0f) - float2(1.0f, 2.0f);
125    float2 _220 = float2(30.0f, 40.0f) - float2(3.0f, 4.0f);
126    float2 _221 = float2(50.0f, 60.0f) - float2(5.0f, 6.0f);
127    float2 _222 = float2(70.0f, 80.0f) - float2(7.0f, 8.0f);
128    m_3 = float4x2(_219, _220, _221, _222);
129    bool _249 = false;
130    if (_198)
131    {
132        _249 = ((all(bool2(_219.x == float2(9.0f, 18.0f).x, _219.y == float2(9.0f, 18.0f).y)) && all(bool2(_220.x == float2(27.0f, 36.0f).x, _220.y == float2(27.0f, 36.0f).y))) && all(bool2(_221.x == float2(45.0f, 54.0f).x, _221.y == float2(45.0f, 54.0f).y))) && all(bool2(_222.x == float2(63.0f, 72.0f).x, _222.y == float2(63.0f, 72.0f).y));
133    }
134    else
135    {
136        _249 = false;
137    }
138    ok = _249;
139    float2x4 m_4 = float2x4(float4(10.0f, 20.0f, 30.0f, 40.0f), float4(10.0f, 20.0f, 30.0f, 40.0f));
140    float4 _258 = float4(10.0f, 20.0f, 30.0f, 40.0f) / 10.0f.xxxx;
141    float4 _259 = float4(10.0f, 20.0f, 30.0f, 40.0f) / 5.0f.xxxx;
142    m_4 = float2x4(_258, _259);
143    bool _272 = false;
144    if (_249)
145    {
146        _272 = all(bool4(_258.x == float4(1.0f, 2.0f, 3.0f, 4.0f).x, _258.y == float4(1.0f, 2.0f, 3.0f, 4.0f).y, _258.z == float4(1.0f, 2.0f, 3.0f, 4.0f).z, _258.w == float4(1.0f, 2.0f, 3.0f, 4.0f).w)) && all(bool4(_259.x == float4(2.0f, 4.0f, 6.0f, 8.0f).x, _259.y == float4(2.0f, 4.0f, 6.0f, 8.0f).y, _259.z == float4(2.0f, 4.0f, 6.0f, 8.0f).z, _259.w == float4(2.0f, 4.0f, 6.0f, 8.0f).w));
147    }
148    else
149    {
150        _272 = false;
151    }
152    ok = _272;
153    float2x3 m_5 = float2x3(float3(7.0f, 9.0f, 11.0f), float3(8.0f, 10.0f, 12.0f));
154    float2x3 _281 = mul(float2x2(float2(1.0f, 4.0f), float2(2.0f, 5.0f)), float2x3(float3(7.0f, 9.0f, 11.0f), float3(8.0f, 10.0f, 12.0f)));
155    m_5 = _281;
156    bool _299 = false;
157    if (_272)
158    {
159        float3 _292 = _281[0];
160        float3 _295 = _281[1];
161        _299 = all(bool3(_292.x == float3(39.0f, 49.0f, 59.0f).x, _292.y == float3(39.0f, 49.0f, 59.0f).y, _292.z == float3(39.0f, 49.0f, 59.0f).z)) && all(bool3(_295.x == float3(54.0f, 68.0f, 82.0f).x, _295.y == float3(54.0f, 68.0f, 82.0f).y, _295.z == float3(54.0f, 68.0f, 82.0f).z));
162    }
163    else
164    {
165        _299 = false;
166    }
167    ok = _299;
168    return _299;
169}
170
171float4 main(float2 _301)
172{
173    bool _RESERVED_IDENTIFIER_FIXUP_0_ok = true;
174    float3x2 _RESERVED_IDENTIFIER_FIXUP_1_splat_4 = float3x2(4.0f.xx, 4.0f.xx, 4.0f.xx);
175    float3x2 _RESERVED_IDENTIFIER_FIXUP_2_m = float3x2(float2(2.0f, 0.0f), float2(0.0f, 2.0f), 0.0f.xx);
176    float2 _306 = float2(2.0f, 0.0f) + 4.0f.xx;
177    float2 _307 = float2(0.0f, 2.0f) + 4.0f.xx;
178    float2 _308 = 0.0f.xx + 4.0f.xx;
179    _RESERVED_IDENTIFIER_FIXUP_2_m = float3x2(_306, _307, _308);
180    bool _320 = false;
181    if (true)
182    {
183        _320 = (all(bool2(_306.x == float2(6.0f, 4.0f).x, _306.y == float2(6.0f, 4.0f).y)) && all(bool2(_307.x == float2(4.0f, 6.0f).x, _307.y == float2(4.0f, 6.0f).y))) && all(bool2(_308.x == 4.0f.xx.x, _308.y == 4.0f.xx.y));
184    }
185    else
186    {
187        _320 = false;
188    }
189    _RESERVED_IDENTIFIER_FIXUP_0_ok = _320;
190    _RESERVED_IDENTIFIER_FIXUP_2_m = float3x2(float2(2.0f, 0.0f), float2(0.0f, 2.0f), 0.0f.xx);
191    float2 _321 = float2(2.0f, 0.0f) - 4.0f.xx;
192    float2 _322 = float2(0.0f, 2.0f) - 4.0f.xx;
193    float2 _323 = 0.0f.xx - 4.0f.xx;
194    _RESERVED_IDENTIFIER_FIXUP_2_m = float3x2(_321, _322, _323);
195    bool _335 = false;
196    if (_320)
197    {
198        _335 = (all(bool2(_321.x == float2(-2.0f, -4.0f).x, _321.y == float2(-2.0f, -4.0f).y)) && all(bool2(_322.x == float2(-4.0f, -2.0f).x, _322.y == float2(-4.0f, -2.0f).y))) && all(bool2(_323.x == (-4.0f).xx.x, _323.y == (-4.0f).xx.y));
199    }
200    else
201    {
202        _335 = false;
203    }
204    _RESERVED_IDENTIFIER_FIXUP_0_ok = _335;
205    _RESERVED_IDENTIFIER_FIXUP_2_m = float3x2(float2(2.0f, 0.0f), float2(0.0f, 2.0f), 0.0f.xx);
206    float2 _336 = float2(2.0f, 0.0f) / 4.0f.xx;
207    float2 _337 = float2(0.0f, 2.0f) / 4.0f.xx;
208    float2 _338 = 0.0f.xx / 4.0f.xx;
209    _RESERVED_IDENTIFIER_FIXUP_2_m = float3x2(_336, _337, _338);
210    bool _350 = false;
211    if (_335)
212    {
213        _350 = (all(bool2(_336.x == float2(0.5f, 0.0f).x, _336.y == float2(0.5f, 0.0f).y)) && all(bool2(_337.x == float2(0.0f, 0.5f).x, _337.y == float2(0.0f, 0.5f).y))) && all(bool2(_338.x == 0.0f.xx.x, _338.y == 0.0f.xx.y));
214    }
215    else
216    {
217        _350 = false;
218    }
219    _RESERVED_IDENTIFIER_FIXUP_0_ok = _350;
220    float2x3 _RESERVED_IDENTIFIER_FIXUP_3_splat_4 = float2x3(4.0f.xxx, 4.0f.xxx);
221    float2x3 _RESERVED_IDENTIFIER_FIXUP_4_m = float2x3(4.0f.xxx, 4.0f.xxx);
222    float3 _353 = 4.0f.xxx + float3(2.0f, 0.0f, 0.0f);
223    float3 _354 = 4.0f.xxx + float3(0.0f, 2.0f, 0.0f);
224    _RESERVED_IDENTIFIER_FIXUP_4_m = float2x3(_353, _354);
225    bool _363 = false;
226    if (_350)
227    {
228        _363 = all(bool3(_353.x == float3(6.0f, 4.0f, 4.0f).x, _353.y == float3(6.0f, 4.0f, 4.0f).y, _353.z == float3(6.0f, 4.0f, 4.0f).z)) && all(bool3(_354.x == float3(4.0f, 6.0f, 4.0f).x, _354.y == float3(4.0f, 6.0f, 4.0f).y, _354.z == float3(4.0f, 6.0f, 4.0f).z));
229    }
230    else
231    {
232        _363 = false;
233    }
234    _RESERVED_IDENTIFIER_FIXUP_0_ok = _363;
235    _RESERVED_IDENTIFIER_FIXUP_4_m = float2x3(4.0f.xxx, 4.0f.xxx);
236    float3 _364 = 4.0f.xxx - float3(2.0f, 0.0f, 0.0f);
237    float3 _365 = 4.0f.xxx - float3(0.0f, 2.0f, 0.0f);
238    _RESERVED_IDENTIFIER_FIXUP_4_m = float2x3(_364, _365);
239    bool _374 = false;
240    if (_363)
241    {
242        _374 = all(bool3(_364.x == float3(2.0f, 4.0f, 4.0f).x, _364.y == float3(2.0f, 4.0f, 4.0f).y, _364.z == float3(2.0f, 4.0f, 4.0f).z)) && all(bool3(_365.x == float3(4.0f, 2.0f, 4.0f).x, _365.y == float3(4.0f, 2.0f, 4.0f).y, _365.z == float3(4.0f, 2.0f, 4.0f).z));
243    }
244    else
245    {
246        _374 = false;
247    }
248    _RESERVED_IDENTIFIER_FIXUP_0_ok = _374;
249    _RESERVED_IDENTIFIER_FIXUP_4_m = float2x3(4.0f.xxx, 4.0f.xxx);
250    float3 _375 = 4.0f.xxx / 2.0f.xxx;
251    float3 _376 = 4.0f.xxx / 2.0f.xxx;
252    _RESERVED_IDENTIFIER_FIXUP_4_m = float2x3(_375, _376);
253    bool _385 = false;
254    if (_374)
255    {
256        _385 = all(bool3(_375.x == 2.0f.xxx.x, _375.y == 2.0f.xxx.y, _375.z == 2.0f.xxx.z)) && all(bool3(_376.x == 2.0f.xxx.x, _376.y == 2.0f.xxx.y, _376.z == 2.0f.xxx.z));
257    }
258    else
259    {
260        _385 = false;
261    }
262    _RESERVED_IDENTIFIER_FIXUP_0_ok = _385;
263    float4x3 _RESERVED_IDENTIFIER_FIXUP_5_m = float4x3(float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f), float3(7.0f, 8.0f, 9.0f), float3(10.0f, 11.0f, 12.0f));
264    float3 _387 = float3(1.0f, 2.0f, 3.0f) + float3(16.0f, 15.0f, 14.0f);
265    float3 _388 = float3(4.0f, 5.0f, 6.0f) + float3(13.0f, 12.0f, 11.0f);
266    float3 _389 = float3(7.0f, 8.0f, 9.0f) + float3(10.0f, 9.0f, 8.0f);
267    float3 _390 = float3(10.0f, 11.0f, 12.0f) + float3(7.0f, 6.0f, 5.0f);
268    _RESERVED_IDENTIFIER_FIXUP_5_m = float4x3(_387, _388, _389, _390);
269    bool _405 = false;
270    if (_385)
271    {
272        _405 = ((all(bool3(_387.x == 17.0f.xxx.x, _387.y == 17.0f.xxx.y, _387.z == 17.0f.xxx.z)) && all(bool3(_388.x == 17.0f.xxx.x, _388.y == 17.0f.xxx.y, _388.z == 17.0f.xxx.z))) && all(bool3(_389.x == 17.0f.xxx.x, _389.y == 17.0f.xxx.y, _389.z == 17.0f.xxx.z))) && all(bool3(_390.x == 17.0f.xxx.x, _390.y == 17.0f.xxx.y, _390.z == 17.0f.xxx.z));
273    }
274    else
275    {
276        _405 = false;
277    }
278    _RESERVED_IDENTIFIER_FIXUP_0_ok = _405;
279    float4x2 _RESERVED_IDENTIFIER_FIXUP_6_m = float4x2(float2(10.0f, 20.0f), float2(30.0f, 40.0f), float2(50.0f, 60.0f), float2(70.0f, 80.0f));
280    float2 _407 = float2(10.0f, 20.0f) - float2(1.0f, 2.0f);
281    float2 _408 = float2(30.0f, 40.0f) - float2(3.0f, 4.0f);
282    float2 _409 = float2(50.0f, 60.0f) - float2(5.0f, 6.0f);
283    float2 _410 = float2(70.0f, 80.0f) - float2(7.0f, 8.0f);
284    _RESERVED_IDENTIFIER_FIXUP_6_m = float4x2(_407, _408, _409, _410);
285    bool _425 = false;
286    if (_405)
287    {
288        _425 = ((all(bool2(_407.x == float2(9.0f, 18.0f).x, _407.y == float2(9.0f, 18.0f).y)) && all(bool2(_408.x == float2(27.0f, 36.0f).x, _408.y == float2(27.0f, 36.0f).y))) && all(bool2(_409.x == float2(45.0f, 54.0f).x, _409.y == float2(45.0f, 54.0f).y))) && all(bool2(_410.x == float2(63.0f, 72.0f).x, _410.y == float2(63.0f, 72.0f).y));
289    }
290    else
291    {
292        _425 = false;
293    }
294    _RESERVED_IDENTIFIER_FIXUP_0_ok = _425;
295    float2x4 _RESERVED_IDENTIFIER_FIXUP_7_m = float2x4(float4(10.0f, 20.0f, 30.0f, 40.0f), float4(10.0f, 20.0f, 30.0f, 40.0f));
296    float4 _427 = float4(10.0f, 20.0f, 30.0f, 40.0f) / 10.0f.xxxx;
297    float4 _428 = float4(10.0f, 20.0f, 30.0f, 40.0f) / 5.0f.xxxx;
298    _RESERVED_IDENTIFIER_FIXUP_7_m = float2x4(_427, _428);
299    bool _437 = false;
300    if (_425)
301    {
302        _437 = all(bool4(_427.x == float4(1.0f, 2.0f, 3.0f, 4.0f).x, _427.y == float4(1.0f, 2.0f, 3.0f, 4.0f).y, _427.z == float4(1.0f, 2.0f, 3.0f, 4.0f).z, _427.w == float4(1.0f, 2.0f, 3.0f, 4.0f).w)) && all(bool4(_428.x == float4(2.0f, 4.0f, 6.0f, 8.0f).x, _428.y == float4(2.0f, 4.0f, 6.0f, 8.0f).y, _428.z == float4(2.0f, 4.0f, 6.0f, 8.0f).z, _428.w == float4(2.0f, 4.0f, 6.0f, 8.0f).w));
303    }
304    else
305    {
306        _437 = false;
307    }
308    _RESERVED_IDENTIFIER_FIXUP_0_ok = _437;
309    float2x3 _RESERVED_IDENTIFIER_FIXUP_8_m = float2x3(float3(7.0f, 9.0f, 11.0f), float3(8.0f, 10.0f, 12.0f));
310    float2x3 _439 = mul(float2x2(float2(1.0f, 4.0f), float2(2.0f, 5.0f)), float2x3(float3(7.0f, 9.0f, 11.0f), float3(8.0f, 10.0f, 12.0f)));
311    _RESERVED_IDENTIFIER_FIXUP_8_m = _439;
312    bool _449 = false;
313    if (_437)
314    {
315        float3 _442 = _439[0];
316        float3 _445 = _439[1];
317        _449 = all(bool3(_442.x == float3(39.0f, 49.0f, 59.0f).x, _442.y == float3(39.0f, 49.0f, 59.0f).y, _442.z == float3(39.0f, 49.0f, 59.0f).z)) && all(bool3(_445.x == float3(54.0f, 68.0f, 82.0f).x, _445.y == float3(54.0f, 68.0f, 82.0f).y, _445.z == float3(54.0f, 68.0f, 82.0f).z));
318    }
319    else
320    {
321        _449 = false;
322    }
323    _RESERVED_IDENTIFIER_FIXUP_0_ok = _449;
324    bool _453 = false;
325    if (_449)
326    {
327        _453 = test_matrix_op_matrix_half_b();
328    }
329    else
330    {
331        _453 = false;
332    }
333    float4 _454 = 0.0f.xxxx;
334    if (_453)
335    {
336        _454 = _8_colorGreen;
337    }
338    else
339    {
340        _454 = _8_colorRed;
341    }
342    return _454;
343}
344
345void frag_main()
346{
347    float2 _18 = 0.0f.xx;
348    sk_FragColor = main(_18);
349}
350
351SPIRV_Cross_Output main()
352{
353    frag_main();
354    SPIRV_Cross_Output stage_output;
355    stage_output.sk_FragColor = sk_FragColor;
356    return stage_output;
357}
358