xref: /aosp_15_r20/external/skia/tests/sksl/shared/MatrixScalarMath.hlsl (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1cbuffer _UniformBuffer : register(b0, space0)
2{
3    float4 _9_colorGreen : packoffset(c0);
4    float4 _9_colorRed : packoffset(c1);
5    float4 _9_testInputs : packoffset(c2);
6};
7
8
9static float4 sk_FragColor;
10
11struct SPIRV_Cross_Output
12{
13    float4 sk_FragColor : SV_Target0;
14};
15
16bool test_bifffff22(int _29, float _30, float _31, float _32, float _33, float2x2 _34)
17{
18    float one = _9_colorRed.x;
19    float2 _51 = float2(_30 * _9_colorRed.x, _31 * _9_colorRed.x);
20    float2 _52 = float2(_32 * _9_colorRed.x, _33 * _9_colorRed.x);
21    float2x2 m2 = float2x2(_51, _52);
22    switch (_29)
23    {
24        case 1:
25        {
26            m2 = float2x2(1.0f.xx + _51, 1.0f.xx + _52);
27            break;
28        }
29        case 2:
30        {
31            m2 = float2x2(m2[0] - 1.0f.xx, m2[1] - 1.0f.xx);
32            break;
33        }
34        case 3:
35        {
36            m2 = m2 * 2.0f;
37            break;
38        }
39        case 4:
40        {
41            m2 = m2 * 0.5f;
42            break;
43        }
44    }
45    bool _96 = false;
46    if (m2[0].x == _34[0].x)
47    {
48        _96 = m2[0].y == _34[0].y;
49    }
50    else
51    {
52        _96 = false;
53    }
54    bool _106 = false;
55    if (_96)
56    {
57        _106 = m2[1].x == _34[1].x;
58    }
59    else
60    {
61        _106 = false;
62    }
63    bool _116 = false;
64    if (_106)
65    {
66        _116 = m2[1].y == _34[1].y;
67    }
68    else
69    {
70        _116 = false;
71    }
72    return _116;
73}
74
75bool divisionTest_b()
76{
77    float _124 = _9_colorRed.x * 10.0f;
78    float ten = _124;
79    float2 _126 = _124.xx;
80    float2x2 _127 = float2x2(_126, _126);
81    float2x2 mat = _127;
82    float2x2 _134 = _127 * (1.0f / _9_testInputs.x);
83    float2x2 div = _134;
84    float2x2 _139 = _127 * (1.0f / _9_testInputs.x);
85    mat = _139;
86    float4 _142 = abs(float4(_134[0].x, _134[0].y, _134[1].x, _134[1].y) + 8.0f.xxxx);
87    bool _165 = false;
88    if (all(bool4(_142.x < 0.00999999977648258209228515625f.xxxx.x, _142.y < 0.00999999977648258209228515625f.xxxx.y, _142.z < 0.00999999977648258209228515625f.xxxx.z, _142.w < 0.00999999977648258209228515625f.xxxx.w)))
89    {
90        float4 _158 = abs(float4(_139[0].x, _139[0].y, _139[1].x, _139[1].y) + 8.0f.xxxx);
91        _165 = all(bool4(_158.x < 0.00999999977648258209228515625f.xxxx.x, _158.y < 0.00999999977648258209228515625f.xxxx.y, _158.z < 0.00999999977648258209228515625f.xxxx.z, _158.w < 0.00999999977648258209228515625f.xxxx.w));
92    }
93    else
94    {
95        _165 = false;
96    }
97    return _165;
98}
99
100float4 main(float2 _167)
101{
102    float f1 = _9_colorGreen.y;
103    float _177 = 2.0f * _9_colorGreen.y;
104    float f2 = _177;
105    float _183 = 3.0f * _9_colorGreen.y;
106    float f3 = _183;
107    float _189 = 4.0f * _9_colorGreen.y;
108    float f4 = _189;
109    float2x2 _RESERVED_IDENTIFIER_FIXUP_0_expected = float2x2(float2(_9_colorGreen.y + 1.0f, _177 + 1.0f), float2(_183 + 1.0f, _189 + 1.0f));
110    float _RESERVED_IDENTIFIER_FIXUP_1_one = _9_colorRed.x;
111    float2 _207 = float2(_9_colorGreen.y * _9_colorRed.x, _177 * _9_colorRed.x);
112    float2 _208 = float2(_183 * _9_colorRed.x, _189 * _9_colorRed.x);
113    float2x2 _RESERVED_IDENTIFIER_FIXUP_2_m2 = float2x2(_207, _208);
114    _RESERVED_IDENTIFIER_FIXUP_2_m2 = float2x2(1.0f.xx + _207, 1.0f.xx + _208);
115    bool _229 = false;
116    if (_RESERVED_IDENTIFIER_FIXUP_2_m2[0].x == _RESERVED_IDENTIFIER_FIXUP_0_expected[0].x)
117    {
118        _229 = _RESERVED_IDENTIFIER_FIXUP_2_m2[0].y == _RESERVED_IDENTIFIER_FIXUP_0_expected[0].y;
119    }
120    else
121    {
122        _229 = false;
123    }
124    bool _239 = false;
125    if (_229)
126    {
127        _239 = _RESERVED_IDENTIFIER_FIXUP_2_m2[1].x == _RESERVED_IDENTIFIER_FIXUP_0_expected[1].x;
128    }
129    else
130    {
131        _239 = false;
132    }
133    bool _249 = false;
134    if (_239)
135    {
136        _249 = _RESERVED_IDENTIFIER_FIXUP_2_m2[1].y == _RESERVED_IDENTIFIER_FIXUP_0_expected[1].y;
137    }
138    else
139    {
140        _249 = false;
141    }
142    bool _266 = false;
143    if (_249)
144    {
145        int _252 = 2;
146        float _253 = _9_colorGreen.y;
147        float _254 = _177;
148        float _255 = _183;
149        float _256 = _189;
150        float2x2 _264 = float2x2(float2(_9_colorGreen.y - 1.0f, _177 - 1.0f), float2(_183 - 1.0f, _189 - 1.0f));
151        _266 = test_bifffff22(_252, _253, _254, _255, _256, _264);
152    }
153    else
154    {
155        _266 = false;
156    }
157    bool _284 = false;
158    if (_266)
159    {
160        int _270 = 3;
161        float _271 = _9_colorGreen.y;
162        float _272 = _177;
163        float _273 = _183;
164        float _274 = _189;
165        float2x2 _282 = float2x2(float2(_9_colorGreen.y * 2.0f, _177 * 2.0f), float2(_183 * 2.0f, _189 * 2.0f));
166        _284 = test_bifffff22(_270, _271, _272, _273, _274, _282);
167    }
168    else
169    {
170        _284 = false;
171    }
172    bool _302 = false;
173    if (_284)
174    {
175        int _288 = 4;
176        float _289 = _9_colorGreen.y;
177        float _290 = _177;
178        float _291 = _183;
179        float _292 = _189;
180        float2x2 _300 = float2x2(float2(_9_colorGreen.y * 0.5f, _177 * 0.5f), float2(_183 * 0.5f, _189 * 0.5f));
181        _302 = test_bifffff22(_288, _289, _290, _291, _292, _300);
182    }
183    else
184    {
185        _302 = false;
186    }
187    bool _306 = false;
188    if (_302)
189    {
190        _306 = divisionTest_b();
191    }
192    else
193    {
194        _306 = false;
195    }
196    float4 _307 = 0.0f.xxxx;
197    if (_306)
198    {
199        _307 = _9_colorGreen;
200    }
201    else
202    {
203        _307 = _9_colorRed;
204    }
205    return _307;
206}
207
208void frag_main()
209{
210    float2 _19 = 0.0f.xx;
211    sk_FragColor = main(_19);
212}
213
214SPIRV_Cross_Output main()
215{
216    frag_main();
217    SPIRV_Cross_Output stage_output;
218    stage_output.sk_FragColor = sk_FragColor;
219    return stage_output;
220}
221