xref: /aosp_15_r20/external/skia/tests/sksl/shared/MatricesNonsquare.hlsl (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1cbuffer _UniformBuffer : register(b0, space0)
2{
3    float4 _8_colorGreen : packoffset(c0);
4    float4 _8_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    float2x3 m23 = float2x3(float3(2.0f, 0.0f, 0.0f), float3(0.0f, 2.0f, 0.0f));
19    bool _44 = false;
20    if (true)
21    {
22        _44 = all(bool3(float3(2.0f, 0.0f, 0.0f).x == float3(2.0f, 0.0f, 0.0f).x, float3(2.0f, 0.0f, 0.0f).y == float3(2.0f, 0.0f, 0.0f).y, float3(2.0f, 0.0f, 0.0f).z == float3(2.0f, 0.0f, 0.0f).z)) && all(bool3(float3(0.0f, 2.0f, 0.0f).x == float3(0.0f, 2.0f, 0.0f).x, float3(0.0f, 2.0f, 0.0f).y == float3(0.0f, 2.0f, 0.0f).y, float3(0.0f, 2.0f, 0.0f).z == float3(0.0f, 2.0f, 0.0f).z));
23    }
24    else
25    {
26        _44 = false;
27    }
28    ok = _44;
29    float2x4 m24 = float2x4(float4(3.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 3.0f, 0.0f, 0.0f));
30    bool _60 = false;
31    if (_44)
32    {
33        _60 = all(bool4(float4(3.0f, 0.0f, 0.0f, 0.0f).x == float4(3.0f, 0.0f, 0.0f, 0.0f).x, float4(3.0f, 0.0f, 0.0f, 0.0f).y == float4(3.0f, 0.0f, 0.0f, 0.0f).y, float4(3.0f, 0.0f, 0.0f, 0.0f).z == float4(3.0f, 0.0f, 0.0f, 0.0f).z, float4(3.0f, 0.0f, 0.0f, 0.0f).w == float4(3.0f, 0.0f, 0.0f, 0.0f).w)) && all(bool4(float4(0.0f, 3.0f, 0.0f, 0.0f).x == float4(0.0f, 3.0f, 0.0f, 0.0f).x, float4(0.0f, 3.0f, 0.0f, 0.0f).y == float4(0.0f, 3.0f, 0.0f, 0.0f).y, float4(0.0f, 3.0f, 0.0f, 0.0f).z == float4(0.0f, 3.0f, 0.0f, 0.0f).z, float4(0.0f, 3.0f, 0.0f, 0.0f).w == float4(0.0f, 3.0f, 0.0f, 0.0f).w));
34    }
35    else
36    {
37        _60 = false;
38    }
39    ok = _60;
40    float3x2 m32 = float3x2(float2(4.0f, 0.0f), float2(0.0f, 4.0f), 0.0f.xx);
41    bool _79 = false;
42    if (_60)
43    {
44        _79 = (all(bool2(float2(4.0f, 0.0f).x == float2(4.0f, 0.0f).x, float2(4.0f, 0.0f).y == float2(4.0f, 0.0f).y)) && all(bool2(float2(0.0f, 4.0f).x == float2(0.0f, 4.0f).x, float2(0.0f, 4.0f).y == float2(0.0f, 4.0f).y))) && all(bool2(0.0f.xx.x == 0.0f.xx.x, 0.0f.xx.y == 0.0f.xx.y));
45    }
46    else
47    {
48        _79 = false;
49    }
50    ok = _79;
51    float3x4 m34 = float3x4(float4(5.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 5.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 5.0f, 0.0f));
52    bool _98 = false;
53    if (_79)
54    {
55        _98 = (all(bool4(float4(5.0f, 0.0f, 0.0f, 0.0f).x == float4(5.0f, 0.0f, 0.0f, 0.0f).x, float4(5.0f, 0.0f, 0.0f, 0.0f).y == float4(5.0f, 0.0f, 0.0f, 0.0f).y, float4(5.0f, 0.0f, 0.0f, 0.0f).z == float4(5.0f, 0.0f, 0.0f, 0.0f).z, float4(5.0f, 0.0f, 0.0f, 0.0f).w == float4(5.0f, 0.0f, 0.0f, 0.0f).w)) && all(bool4(float4(0.0f, 5.0f, 0.0f, 0.0f).x == float4(0.0f, 5.0f, 0.0f, 0.0f).x, float4(0.0f, 5.0f, 0.0f, 0.0f).y == float4(0.0f, 5.0f, 0.0f, 0.0f).y, float4(0.0f, 5.0f, 0.0f, 0.0f).z == float4(0.0f, 5.0f, 0.0f, 0.0f).z, float4(0.0f, 5.0f, 0.0f, 0.0f).w == float4(0.0f, 5.0f, 0.0f, 0.0f).w))) && all(bool4(float4(0.0f, 0.0f, 5.0f, 0.0f).x == float4(0.0f, 0.0f, 5.0f, 0.0f).x, float4(0.0f, 0.0f, 5.0f, 0.0f).y == float4(0.0f, 0.0f, 5.0f, 0.0f).y, float4(0.0f, 0.0f, 5.0f, 0.0f).z == float4(0.0f, 0.0f, 5.0f, 0.0f).z, float4(0.0f, 0.0f, 5.0f, 0.0f).w == float4(0.0f, 0.0f, 5.0f, 0.0f).w));
56    }
57    else
58    {
59        _98 = false;
60    }
61    ok = _98;
62    float4x2 m42 = float4x2(float2(6.0f, 0.0f), float2(0.0f, 6.0f), 0.0f.xx, 0.0f.xx);
63    bool _119 = false;
64    if (_98)
65    {
66        _119 = ((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))) && all(bool2(0.0f.xx.x == 0.0f.xx.x, 0.0f.xx.y == 0.0f.xx.y))) && all(bool2(0.0f.xx.x == 0.0f.xx.x, 0.0f.xx.y == 0.0f.xx.y));
67    }
68    else
69    {
70        _119 = false;
71    }
72    ok = _119;
73    float4x3 m43 = float4x3(float3(7.0f, 0.0f, 0.0f), float3(0.0f, 7.0f, 0.0f), float3(0.0f, 0.0f, 7.0f), 0.0f.xxx);
74    bool _142 = false;
75    if (_119)
76    {
77        _142 = ((all(bool3(float3(7.0f, 0.0f, 0.0f).x == float3(7.0f, 0.0f, 0.0f).x, float3(7.0f, 0.0f, 0.0f).y == float3(7.0f, 0.0f, 0.0f).y, float3(7.0f, 0.0f, 0.0f).z == float3(7.0f, 0.0f, 0.0f).z)) && all(bool3(float3(0.0f, 7.0f, 0.0f).x == float3(0.0f, 7.0f, 0.0f).x, float3(0.0f, 7.0f, 0.0f).y == float3(0.0f, 7.0f, 0.0f).y, float3(0.0f, 7.0f, 0.0f).z == float3(0.0f, 7.0f, 0.0f).z))) && all(bool3(float3(0.0f, 0.0f, 7.0f).x == float3(0.0f, 0.0f, 7.0f).x, float3(0.0f, 0.0f, 7.0f).y == float3(0.0f, 0.0f, 7.0f).y, float3(0.0f, 0.0f, 7.0f).z == float3(0.0f, 0.0f, 7.0f).z))) && all(bool3(0.0f.xxx.x == 0.0f.xxx.x, 0.0f.xxx.y == 0.0f.xxx.y, 0.0f.xxx.z == 0.0f.xxx.z));
78    }
79    else
80    {
81        _142 = false;
82    }
83    ok = _142;
84    float2x2 _146 = mul(float2x3(float3(2.0f, 0.0f, 0.0f), float3(0.0f, 2.0f, 0.0f)), float3x2(float2(4.0f, 0.0f), float2(0.0f, 4.0f), 0.0f.xx));
85    float2x2 m22 = _146;
86    bool _160 = false;
87    if (_142)
88    {
89        float2 _153 = _146[0];
90        float2 _156 = _146[1];
91        _160 = all(bool2(_153.x == float2(8.0f, 0.0f).x, _153.y == float2(8.0f, 0.0f).y)) && all(bool2(_156.x == float2(0.0f, 8.0f).x, _156.y == float2(0.0f, 8.0f).y));
92    }
93    else
94    {
95        _160 = false;
96    }
97    ok = _160;
98    float3x3 _164 = mul(float3x4(float4(5.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 5.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 5.0f, 0.0f)), float4x3(float3(7.0f, 0.0f, 0.0f), float3(0.0f, 7.0f, 0.0f), float3(0.0f, 0.0f, 7.0f), 0.0f.xxx));
99    float3x3 m33 = _164;
100    bool _183 = false;
101    if (_160)
102    {
103        float3 _172 = _164[0];
104        float3 _175 = _164[1];
105        float3 _179 = _164[2];
106        _183 = (all(bool3(_172.x == float3(35.0f, 0.0f, 0.0f).x, _172.y == float3(35.0f, 0.0f, 0.0f).y, _172.z == float3(35.0f, 0.0f, 0.0f).z)) && all(bool3(_175.x == float3(0.0f, 35.0f, 0.0f).x, _175.y == float3(0.0f, 35.0f, 0.0f).y, _175.z == float3(0.0f, 35.0f, 0.0f).z))) && all(bool3(_179.x == float3(0.0f, 0.0f, 35.0f).x, _179.y == float3(0.0f, 0.0f, 35.0f).y, _179.z == float3(0.0f, 0.0f, 35.0f).z));
107    }
108    else
109    {
110        _183 = false;
111    }
112    ok = _183;
113    float3 _187 = float3(2.0f, 0.0f, 0.0f) + 1.0f.xxx;
114    float3 _188 = float3(0.0f, 2.0f, 0.0f) + 1.0f.xxx;
115    m23 = float2x3(_187, _188);
116    bool _200 = false;
117    if (_183)
118    {
119        _200 = all(bool3(_187.x == float3(3.0f, 1.0f, 1.0f).x, _187.y == float3(3.0f, 1.0f, 1.0f).y, _187.z == float3(3.0f, 1.0f, 1.0f).z)) && all(bool3(_188.x == float3(1.0f, 3.0f, 1.0f).x, _188.y == float3(1.0f, 3.0f, 1.0f).y, _188.z == float3(1.0f, 3.0f, 1.0f).z));
120    }
121    else
122    {
123        _200 = false;
124    }
125    ok = _200;
126    float2 _203 = float2(4.0f, 0.0f) - 2.0f.xx;
127    float2 _204 = float2(0.0f, 4.0f) - 2.0f.xx;
128    float2 _205 = 0.0f.xx - 2.0f.xx;
129    m32 = float3x2(_203, _204, _205);
130    bool _222 = false;
131    if (_200)
132    {
133        _222 = (all(bool2(_203.x == float2(2.0f, -2.0f).x, _203.y == float2(2.0f, -2.0f).y)) && all(bool2(_204.x == float2(-2.0f, 2.0f).x, _204.y == float2(-2.0f, 2.0f).y))) && all(bool2(_205.x == (-2.0f).xx.x, _205.y == (-2.0f).xx.y));
134    }
135    else
136    {
137        _222 = false;
138    }
139    ok = _222;
140    float2x4 _224 = float2x4(float4(3.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 3.0f, 0.0f, 0.0f)) * 0.25f;
141    m24 = _224;
142    bool _238 = false;
143    if (_222)
144    {
145        float4 _231 = _224[0];
146        float4 _234 = _224[1];
147        _238 = all(bool4(_231.x == float4(0.75f, 0.0f, 0.0f, 0.0f).x, _231.y == float4(0.75f, 0.0f, 0.0f, 0.0f).y, _231.z == float4(0.75f, 0.0f, 0.0f, 0.0f).z, _231.w == float4(0.75f, 0.0f, 0.0f, 0.0f).w)) && all(bool4(_234.x == float4(0.0f, 0.75f, 0.0f, 0.0f).x, _234.y == float4(0.0f, 0.75f, 0.0f, 0.0f).y, _234.z == float4(0.0f, 0.75f, 0.0f, 0.0f).z, _234.w == float4(0.0f, 0.75f, 0.0f, 0.0f).w));
148    }
149    else
150    {
151        _238 = false;
152    }
153    ok = _238;
154    return _238;
155}
156
157float4 main(float2 _240)
158{
159    bool _RESERVED_IDENTIFIER_FIXUP_0_ok = true;
160    float2x3 _RESERVED_IDENTIFIER_FIXUP_1_m23 = float2x3(float3(2.0f, 0.0f, 0.0f), float3(0.0f, 2.0f, 0.0f));
161    bool _251 = false;
162    if (true)
163    {
164        _251 = all(bool3(float3(2.0f, 0.0f, 0.0f).x == float3(2.0f, 0.0f, 0.0f).x, float3(2.0f, 0.0f, 0.0f).y == float3(2.0f, 0.0f, 0.0f).y, float3(2.0f, 0.0f, 0.0f).z == float3(2.0f, 0.0f, 0.0f).z)) && all(bool3(float3(0.0f, 2.0f, 0.0f).x == float3(0.0f, 2.0f, 0.0f).x, float3(0.0f, 2.0f, 0.0f).y == float3(0.0f, 2.0f, 0.0f).y, float3(0.0f, 2.0f, 0.0f).z == float3(0.0f, 2.0f, 0.0f).z));
165    }
166    else
167    {
168        _251 = false;
169    }
170    _RESERVED_IDENTIFIER_FIXUP_0_ok = _251;
171    float2x4 _RESERVED_IDENTIFIER_FIXUP_2_m24 = float2x4(float4(3.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 3.0f, 0.0f, 0.0f));
172    bool _260 = false;
173    if (_251)
174    {
175        _260 = all(bool4(float4(3.0f, 0.0f, 0.0f, 0.0f).x == float4(3.0f, 0.0f, 0.0f, 0.0f).x, float4(3.0f, 0.0f, 0.0f, 0.0f).y == float4(3.0f, 0.0f, 0.0f, 0.0f).y, float4(3.0f, 0.0f, 0.0f, 0.0f).z == float4(3.0f, 0.0f, 0.0f, 0.0f).z, float4(3.0f, 0.0f, 0.0f, 0.0f).w == float4(3.0f, 0.0f, 0.0f, 0.0f).w)) && all(bool4(float4(0.0f, 3.0f, 0.0f, 0.0f).x == float4(0.0f, 3.0f, 0.0f, 0.0f).x, float4(0.0f, 3.0f, 0.0f, 0.0f).y == float4(0.0f, 3.0f, 0.0f, 0.0f).y, float4(0.0f, 3.0f, 0.0f, 0.0f).z == float4(0.0f, 3.0f, 0.0f, 0.0f).z, float4(0.0f, 3.0f, 0.0f, 0.0f).w == float4(0.0f, 3.0f, 0.0f, 0.0f).w));
176    }
177    else
178    {
179        _260 = false;
180    }
181    _RESERVED_IDENTIFIER_FIXUP_0_ok = _260;
182    float3x2 _RESERVED_IDENTIFIER_FIXUP_3_m32 = float3x2(float2(4.0f, 0.0f), float2(0.0f, 4.0f), 0.0f.xx);
183    bool _272 = false;
184    if (_260)
185    {
186        _272 = (all(bool2(float2(4.0f, 0.0f).x == float2(4.0f, 0.0f).x, float2(4.0f, 0.0f).y == float2(4.0f, 0.0f).y)) && all(bool2(float2(0.0f, 4.0f).x == float2(0.0f, 4.0f).x, float2(0.0f, 4.0f).y == float2(0.0f, 4.0f).y))) && all(bool2(0.0f.xx.x == 0.0f.xx.x, 0.0f.xx.y == 0.0f.xx.y));
187    }
188    else
189    {
190        _272 = false;
191    }
192    _RESERVED_IDENTIFIER_FIXUP_0_ok = _272;
193    float2x2 _274 = mul(float2x3(float3(2.0f, 0.0f, 0.0f), float3(0.0f, 2.0f, 0.0f)), float3x2(float2(4.0f, 0.0f), float2(0.0f, 4.0f), 0.0f.xx));
194    float2x2 _RESERVED_IDENTIFIER_FIXUP_7_m22 = _274;
195    bool _284 = false;
196    if (_272)
197    {
198        float2 _277 = _274[0];
199        float2 _280 = _274[1];
200        _284 = all(bool2(_277.x == float2(8.0f, 0.0f).x, _277.y == float2(8.0f, 0.0f).y)) && all(bool2(_280.x == float2(0.0f, 8.0f).x, _280.y == float2(0.0f, 8.0f).y));
201    }
202    else
203    {
204        _284 = false;
205    }
206    _RESERVED_IDENTIFIER_FIXUP_0_ok = _284;
207    float3 _285 = float3(2.0f, 0.0f, 0.0f) + 1.0f.xxx;
208    float3 _286 = float3(0.0f, 2.0f, 0.0f) + 1.0f.xxx;
209    _RESERVED_IDENTIFIER_FIXUP_1_m23 = float2x3(_285, _286);
210    bool _295 = false;
211    if (_284)
212    {
213        _295 = all(bool3(_285.x == float3(3.0f, 1.0f, 1.0f).x, _285.y == float3(3.0f, 1.0f, 1.0f).y, _285.z == float3(3.0f, 1.0f, 1.0f).z)) && all(bool3(_286.x == float3(1.0f, 3.0f, 1.0f).x, _286.y == float3(1.0f, 3.0f, 1.0f).y, _286.z == float3(1.0f, 3.0f, 1.0f).z));
214    }
215    else
216    {
217        _295 = false;
218    }
219    _RESERVED_IDENTIFIER_FIXUP_0_ok = _295;
220    float2 _296 = float2(4.0f, 0.0f) - 2.0f.xx;
221    float2 _297 = float2(0.0f, 4.0f) - 2.0f.xx;
222    float2 _298 = 0.0f.xx - 2.0f.xx;
223    _RESERVED_IDENTIFIER_FIXUP_3_m32 = float3x2(_296, _297, _298);
224    bool _310 = false;
225    if (_295)
226    {
227        _310 = (all(bool2(_296.x == float2(2.0f, -2.0f).x, _296.y == float2(2.0f, -2.0f).y)) && all(bool2(_297.x == float2(-2.0f, 2.0f).x, _297.y == float2(-2.0f, 2.0f).y))) && all(bool2(_298.x == (-2.0f).xx.x, _298.y == (-2.0f).xx.y));
228    }
229    else
230    {
231        _310 = false;
232    }
233    _RESERVED_IDENTIFIER_FIXUP_0_ok = _310;
234    float2x4 _311 = float2x4(float4(3.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 3.0f, 0.0f, 0.0f)) * 0.25f;
235    _RESERVED_IDENTIFIER_FIXUP_2_m24 = _311;
236    bool _321 = false;
237    if (_310)
238    {
239        float4 _314 = _311[0];
240        float4 _317 = _311[1];
241        _321 = all(bool4(_314.x == float4(0.75f, 0.0f, 0.0f, 0.0f).x, _314.y == float4(0.75f, 0.0f, 0.0f, 0.0f).y, _314.z == float4(0.75f, 0.0f, 0.0f, 0.0f).z, _314.w == float4(0.75f, 0.0f, 0.0f, 0.0f).w)) && all(bool4(_317.x == float4(0.0f, 0.75f, 0.0f, 0.0f).x, _317.y == float4(0.0f, 0.75f, 0.0f, 0.0f).y, _317.z == float4(0.0f, 0.75f, 0.0f, 0.0f).z, _317.w == float4(0.0f, 0.75f, 0.0f, 0.0f).w));
242    }
243    else
244    {
245        _321 = false;
246    }
247    _RESERVED_IDENTIFIER_FIXUP_0_ok = _321;
248    bool _325 = false;
249    if (_321)
250    {
251        _325 = test_half_b();
252    }
253    else
254    {
255        _325 = false;
256    }
257    float4 _326 = 0.0f.xxxx;
258    if (_325)
259    {
260        _326 = _8_colorGreen;
261    }
262    else
263    {
264        _326 = _8_colorRed;
265    }
266    return _326;
267}
268
269void frag_main()
270{
271    float2 _18 = 0.0f.xx;
272    sk_FragColor = main(_18);
273}
274
275SPIRV_Cross_Output main()
276{
277    frag_main();
278    SPIRV_Cross_Output stage_output;
279    stage_output.sk_FragColor = sk_FragColor;
280    return stage_output;
281}
282