xref: /aosp_15_r20/external/skia/tests/sksl/shared/UnaryPositiveNegative.hlsl (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1*c8dee2aaSAndroid Build Coastguard Workercbuffer _UniformBuffer : register(b0, space0)
2*c8dee2aaSAndroid Build Coastguard Worker{
3*c8dee2aaSAndroid Build Coastguard Worker    float4 _16_colorWhite : packoffset(c0);
4*c8dee2aaSAndroid Build Coastguard Worker    float4 _16_colorGreen : packoffset(c1);
5*c8dee2aaSAndroid Build Coastguard Worker    float4 _16_colorRed : packoffset(c2);
6*c8dee2aaSAndroid Build Coastguard Worker    row_major float2x2 _16_testMatrix2x2 : packoffset(c3);
7*c8dee2aaSAndroid Build Coastguard Worker    row_major float3x3 _16_testMatrix3x3 : packoffset(c5);
8*c8dee2aaSAndroid Build Coastguard Worker    row_major float4x4 _16_testMatrix4x4 : packoffset(c8);
9*c8dee2aaSAndroid Build Coastguard Worker};
10*c8dee2aaSAndroid Build Coastguard Worker
11*c8dee2aaSAndroid Build Coastguard Worker
12*c8dee2aaSAndroid Build Coastguard Workerstatic float4 sk_FragColor;
13*c8dee2aaSAndroid Build Coastguard Worker
14*c8dee2aaSAndroid Build Coastguard Workerstruct SPIRV_Cross_Output
15*c8dee2aaSAndroid Build Coastguard Worker{
16*c8dee2aaSAndroid Build Coastguard Worker    float4 sk_FragColor : SV_Target0;
17*c8dee2aaSAndroid Build Coastguard Worker};
18*c8dee2aaSAndroid Build Coastguard Worker
19*c8dee2aaSAndroid Build Coastguard Workerbool test_iscalar_b()
20*c8dee2aaSAndroid Build Coastguard Worker{
21*c8dee2aaSAndroid Build Coastguard Worker    int _44 = int(_16_colorWhite.x);
22*c8dee2aaSAndroid Build Coastguard Worker    int x = _44;
23*c8dee2aaSAndroid Build Coastguard Worker    int _45 = -_44;
24*c8dee2aaSAndroid Build Coastguard Worker    x = _45;
25*c8dee2aaSAndroid Build Coastguard Worker    return _45 == (-1);
26*c8dee2aaSAndroid Build Coastguard Worker}
27*c8dee2aaSAndroid Build Coastguard Worker
28*c8dee2aaSAndroid Build Coastguard Workerbool test_fvec_b()
29*c8dee2aaSAndroid Build Coastguard Worker{
30*c8dee2aaSAndroid Build Coastguard Worker    float2 x = _16_colorWhite.xy;
31*c8dee2aaSAndroid Build Coastguard Worker    float2 _53 = -_16_colorWhite.xy;
32*c8dee2aaSAndroid Build Coastguard Worker    x = _53;
33*c8dee2aaSAndroid Build Coastguard Worker    return all(bool2(_53.x == (-1.0f).xx.x, _53.y == (-1.0f).xx.y));
34*c8dee2aaSAndroid Build Coastguard Worker}
35*c8dee2aaSAndroid Build Coastguard Worker
36*c8dee2aaSAndroid Build Coastguard Workerbool test_ivec_b()
37*c8dee2aaSAndroid Build Coastguard Worker{
38*c8dee2aaSAndroid Build Coastguard Worker    int2 _67 = int(_16_colorWhite.x).xx;
39*c8dee2aaSAndroid Build Coastguard Worker    int2 x = _67;
40*c8dee2aaSAndroid Build Coastguard Worker    int2 _68 = -_67;
41*c8dee2aaSAndroid Build Coastguard Worker    x = _68;
42*c8dee2aaSAndroid Build Coastguard Worker    return all(bool2(_68.x == int2(-1, -1).x, _68.y == int2(-1, -1).y));
43*c8dee2aaSAndroid Build Coastguard Worker}
44*c8dee2aaSAndroid Build Coastguard Worker
45*c8dee2aaSAndroid Build Coastguard Workerbool test_mat2_b()
46*c8dee2aaSAndroid Build Coastguard Worker{
47*c8dee2aaSAndroid Build Coastguard Worker    float2x2 negated = float2x2(float2(-1.0f, -2.0f), float2(-3.0f, -4.0f));
48*c8dee2aaSAndroid Build Coastguard Worker    float2x2 x = _16_testMatrix2x2;
49*c8dee2aaSAndroid Build Coastguard Worker    float2 _87 = -_16_testMatrix2x2[0];
50*c8dee2aaSAndroid Build Coastguard Worker    float2 _89 = -_16_testMatrix2x2[1];
51*c8dee2aaSAndroid Build Coastguard Worker    x = float2x2(_87, _89);
52*c8dee2aaSAndroid Build Coastguard Worker    return all(bool2(_87.x == float2(-1.0f, -2.0f).x, _87.y == float2(-1.0f, -2.0f).y)) && all(bool2(_89.x == float2(-3.0f, -4.0f).x, _89.y == float2(-3.0f, -4.0f).y));
53*c8dee2aaSAndroid Build Coastguard Worker}
54*c8dee2aaSAndroid Build Coastguard Worker
55*c8dee2aaSAndroid Build Coastguard Workerbool test_mat3_b()
56*c8dee2aaSAndroid Build Coastguard Worker{
57*c8dee2aaSAndroid Build Coastguard Worker    float3x3 negated = float3x3(float3(-1.0f, -2.0f, -3.0f), float3(-4.0f, -5.0f, -6.0f), float3(-7.0f, -8.0f, -9.0f));
58*c8dee2aaSAndroid Build Coastguard Worker    float3x3 x = _16_testMatrix3x3;
59*c8dee2aaSAndroid Build Coastguard Worker    float3 _114 = -_16_testMatrix3x3[0];
60*c8dee2aaSAndroid Build Coastguard Worker    float3 _116 = -_16_testMatrix3x3[1];
61*c8dee2aaSAndroid Build Coastguard Worker    float3 _118 = -_16_testMatrix3x3[2];
62*c8dee2aaSAndroid Build Coastguard Worker    x = float3x3(_114, _116, _118);
63*c8dee2aaSAndroid Build Coastguard Worker    return (all(bool3(_114.x == float3(-1.0f, -2.0f, -3.0f).x, _114.y == float3(-1.0f, -2.0f, -3.0f).y, _114.z == float3(-1.0f, -2.0f, -3.0f).z)) && all(bool3(_116.x == float3(-4.0f, -5.0f, -6.0f).x, _116.y == float3(-4.0f, -5.0f, -6.0f).y, _116.z == float3(-4.0f, -5.0f, -6.0f).z))) && all(bool3(_118.x == float3(-7.0f, -8.0f, -9.0f).x, _118.y == float3(-7.0f, -8.0f, -9.0f).y, _118.z == float3(-7.0f, -8.0f, -9.0f).z));
64*c8dee2aaSAndroid Build Coastguard Worker}
65*c8dee2aaSAndroid Build Coastguard Worker
66*c8dee2aaSAndroid Build Coastguard Workerbool test_mat4_b()
67*c8dee2aaSAndroid Build Coastguard Worker{
68*c8dee2aaSAndroid Build Coastguard Worker    float4x4 negated = float4x4(float4(-1.0f, -2.0f, -3.0f, -4.0f), float4(-5.0f, -6.0f, -7.0f, -8.0f), float4(-9.0f, -10.0f, -11.0f, -12.0f), float4(-13.0f, -14.0f, -15.0f, -16.0f));
69*c8dee2aaSAndroid Build Coastguard Worker    float4x4 x = _16_testMatrix4x4;
70*c8dee2aaSAndroid Build Coastguard Worker    float4 _150 = -_16_testMatrix4x4[0];
71*c8dee2aaSAndroid Build Coastguard Worker    float4 _152 = -_16_testMatrix4x4[1];
72*c8dee2aaSAndroid Build Coastguard Worker    float4 _154 = -_16_testMatrix4x4[2];
73*c8dee2aaSAndroid Build Coastguard Worker    float4 _156 = -_16_testMatrix4x4[3];
74*c8dee2aaSAndroid Build Coastguard Worker    x = float4x4(_150, _152, _154, _156);
75*c8dee2aaSAndroid Build Coastguard Worker    return ((all(bool4(_150.x == float4(-1.0f, -2.0f, -3.0f, -4.0f).x, _150.y == float4(-1.0f, -2.0f, -3.0f, -4.0f).y, _150.z == float4(-1.0f, -2.0f, -3.0f, -4.0f).z, _150.w == float4(-1.0f, -2.0f, -3.0f, -4.0f).w)) && all(bool4(_152.x == float4(-5.0f, -6.0f, -7.0f, -8.0f).x, _152.y == float4(-5.0f, -6.0f, -7.0f, -8.0f).y, _152.z == float4(-5.0f, -6.0f, -7.0f, -8.0f).z, _152.w == float4(-5.0f, -6.0f, -7.0f, -8.0f).w))) && all(bool4(_154.x == float4(-9.0f, -10.0f, -11.0f, -12.0f).x, _154.y == float4(-9.0f, -10.0f, -11.0f, -12.0f).y, _154.z == float4(-9.0f, -10.0f, -11.0f, -12.0f).z, _154.w == float4(-9.0f, -10.0f, -11.0f, -12.0f).w))) && all(bool4(_156.x == float4(-13.0f, -14.0f, -15.0f, -16.0f).x, _156.y == float4(-13.0f, -14.0f, -15.0f, -16.0f).y, _156.z == float4(-13.0f, -14.0f, -15.0f, -16.0f).z, _156.w == float4(-13.0f, -14.0f, -15.0f, -16.0f).w));
76*c8dee2aaSAndroid Build Coastguard Worker}
77*c8dee2aaSAndroid Build Coastguard Worker
78*c8dee2aaSAndroid Build Coastguard Workerbool test_hmat2_b()
79*c8dee2aaSAndroid Build Coastguard Worker{
80*c8dee2aaSAndroid Build Coastguard Worker    float2x2 negated = float2x2(float2(-1.0f, -2.0f), float2(-3.0f, -4.0f));
81*c8dee2aaSAndroid Build Coastguard Worker    float2x2 x = _16_testMatrix2x2;
82*c8dee2aaSAndroid Build Coastguard Worker    float2 _176 = -_16_testMatrix2x2[0];
83*c8dee2aaSAndroid Build Coastguard Worker    float2 _178 = -_16_testMatrix2x2[1];
84*c8dee2aaSAndroid Build Coastguard Worker    x = float2x2(_176, _178);
85*c8dee2aaSAndroid Build Coastguard Worker    return all(bool2(_176.x == float2(-1.0f, -2.0f).x, _176.y == float2(-1.0f, -2.0f).y)) && all(bool2(_178.x == float2(-3.0f, -4.0f).x, _178.y == float2(-3.0f, -4.0f).y));
86*c8dee2aaSAndroid Build Coastguard Worker}
87*c8dee2aaSAndroid Build Coastguard Worker
88*c8dee2aaSAndroid Build Coastguard Workerbool test_hmat3_b()
89*c8dee2aaSAndroid Build Coastguard Worker{
90*c8dee2aaSAndroid Build Coastguard Worker    float3x3 negated = float3x3(float3(-1.0f, -2.0f, -3.0f), float3(-4.0f, -5.0f, -6.0f), float3(-7.0f, -8.0f, -9.0f));
91*c8dee2aaSAndroid Build Coastguard Worker    float3x3 x = _16_testMatrix3x3;
92*c8dee2aaSAndroid Build Coastguard Worker    float3 _191 = -_16_testMatrix3x3[0];
93*c8dee2aaSAndroid Build Coastguard Worker    float3 _193 = -_16_testMatrix3x3[1];
94*c8dee2aaSAndroid Build Coastguard Worker    float3 _195 = -_16_testMatrix3x3[2];
95*c8dee2aaSAndroid Build Coastguard Worker    x = float3x3(_191, _193, _195);
96*c8dee2aaSAndroid Build Coastguard Worker    return (all(bool3(_191.x == float3(-1.0f, -2.0f, -3.0f).x, _191.y == float3(-1.0f, -2.0f, -3.0f).y, _191.z == float3(-1.0f, -2.0f, -3.0f).z)) && all(bool3(_193.x == float3(-4.0f, -5.0f, -6.0f).x, _193.y == float3(-4.0f, -5.0f, -6.0f).y, _193.z == float3(-4.0f, -5.0f, -6.0f).z))) && all(bool3(_195.x == float3(-7.0f, -8.0f, -9.0f).x, _195.y == float3(-7.0f, -8.0f, -9.0f).y, _195.z == float3(-7.0f, -8.0f, -9.0f).z));
97*c8dee2aaSAndroid Build Coastguard Worker}
98*c8dee2aaSAndroid Build Coastguard Worker
99*c8dee2aaSAndroid Build Coastguard Workerbool test_hmat4_b()
100*c8dee2aaSAndroid Build Coastguard Worker{
101*c8dee2aaSAndroid Build Coastguard Worker    float4x4 negated = float4x4(float4(-1.0f, -2.0f, -3.0f, -4.0f), float4(-5.0f, -6.0f, -7.0f, -8.0f), float4(-9.0f, -10.0f, -11.0f, -12.0f), float4(-13.0f, -14.0f, -15.0f, -16.0f));
102*c8dee2aaSAndroid Build Coastguard Worker    float4x4 x = _16_testMatrix4x4;
103*c8dee2aaSAndroid Build Coastguard Worker    float4 _211 = -_16_testMatrix4x4[0];
104*c8dee2aaSAndroid Build Coastguard Worker    float4 _213 = -_16_testMatrix4x4[1];
105*c8dee2aaSAndroid Build Coastguard Worker    float4 _215 = -_16_testMatrix4x4[2];
106*c8dee2aaSAndroid Build Coastguard Worker    float4 _217 = -_16_testMatrix4x4[3];
107*c8dee2aaSAndroid Build Coastguard Worker    x = float4x4(_211, _213, _215, _217);
108*c8dee2aaSAndroid Build Coastguard Worker    return ((all(bool4(_211.x == float4(-1.0f, -2.0f, -3.0f, -4.0f).x, _211.y == float4(-1.0f, -2.0f, -3.0f, -4.0f).y, _211.z == float4(-1.0f, -2.0f, -3.0f, -4.0f).z, _211.w == float4(-1.0f, -2.0f, -3.0f, -4.0f).w)) && all(bool4(_213.x == float4(-5.0f, -6.0f, -7.0f, -8.0f).x, _213.y == float4(-5.0f, -6.0f, -7.0f, -8.0f).y, _213.z == float4(-5.0f, -6.0f, -7.0f, -8.0f).z, _213.w == float4(-5.0f, -6.0f, -7.0f, -8.0f).w))) && all(bool4(_215.x == float4(-9.0f, -10.0f, -11.0f, -12.0f).x, _215.y == float4(-9.0f, -10.0f, -11.0f, -12.0f).y, _215.z == float4(-9.0f, -10.0f, -11.0f, -12.0f).z, _215.w == float4(-9.0f, -10.0f, -11.0f, -12.0f).w))) && all(bool4(_217.x == float4(-13.0f, -14.0f, -15.0f, -16.0f).x, _217.y == float4(-13.0f, -14.0f, -15.0f, -16.0f).y, _217.z == float4(-13.0f, -14.0f, -15.0f, -16.0f).z, _217.w == float4(-13.0f, -14.0f, -15.0f, -16.0f).w));
109*c8dee2aaSAndroid Build Coastguard Worker}
110*c8dee2aaSAndroid Build Coastguard Worker
111*c8dee2aaSAndroid Build Coastguard Workerfloat4 main(float2 _231)
112*c8dee2aaSAndroid Build Coastguard Worker{
113*c8dee2aaSAndroid Build Coastguard Worker    float _RESERVED_IDENTIFIER_FIXUP_0_x = _16_colorWhite.x;
114*c8dee2aaSAndroid Build Coastguard Worker    float _238 = -_16_colorWhite.x;
115*c8dee2aaSAndroid Build Coastguard Worker    _RESERVED_IDENTIFIER_FIXUP_0_x = _238;
116*c8dee2aaSAndroid Build Coastguard Worker    bool _244 = false;
117*c8dee2aaSAndroid Build Coastguard Worker    if (_238 == (-1.0f))
118*c8dee2aaSAndroid Build Coastguard Worker    {
119*c8dee2aaSAndroid Build Coastguard Worker        _244 = test_iscalar_b();
120*c8dee2aaSAndroid Build Coastguard Worker    }
121*c8dee2aaSAndroid Build Coastguard Worker    else
122*c8dee2aaSAndroid Build Coastguard Worker    {
123*c8dee2aaSAndroid Build Coastguard Worker        _244 = false;
124*c8dee2aaSAndroid Build Coastguard Worker    }
125*c8dee2aaSAndroid Build Coastguard Worker    bool _248 = false;
126*c8dee2aaSAndroid Build Coastguard Worker    if (_244)
127*c8dee2aaSAndroid Build Coastguard Worker    {
128*c8dee2aaSAndroid Build Coastguard Worker        _248 = test_fvec_b();
129*c8dee2aaSAndroid Build Coastguard Worker    }
130*c8dee2aaSAndroid Build Coastguard Worker    else
131*c8dee2aaSAndroid Build Coastguard Worker    {
132*c8dee2aaSAndroid Build Coastguard Worker        _248 = false;
133*c8dee2aaSAndroid Build Coastguard Worker    }
134*c8dee2aaSAndroid Build Coastguard Worker    bool _252 = false;
135*c8dee2aaSAndroid Build Coastguard Worker    if (_248)
136*c8dee2aaSAndroid Build Coastguard Worker    {
137*c8dee2aaSAndroid Build Coastguard Worker        _252 = test_ivec_b();
138*c8dee2aaSAndroid Build Coastguard Worker    }
139*c8dee2aaSAndroid Build Coastguard Worker    else
140*c8dee2aaSAndroid Build Coastguard Worker    {
141*c8dee2aaSAndroid Build Coastguard Worker        _252 = false;
142*c8dee2aaSAndroid Build Coastguard Worker    }
143*c8dee2aaSAndroid Build Coastguard Worker    bool _256 = false;
144*c8dee2aaSAndroid Build Coastguard Worker    if (_252)
145*c8dee2aaSAndroid Build Coastguard Worker    {
146*c8dee2aaSAndroid Build Coastguard Worker        _256 = test_mat2_b();
147*c8dee2aaSAndroid Build Coastguard Worker    }
148*c8dee2aaSAndroid Build Coastguard Worker    else
149*c8dee2aaSAndroid Build Coastguard Worker    {
150*c8dee2aaSAndroid Build Coastguard Worker        _256 = false;
151*c8dee2aaSAndroid Build Coastguard Worker    }
152*c8dee2aaSAndroid Build Coastguard Worker    bool _260 = false;
153*c8dee2aaSAndroid Build Coastguard Worker    if (_256)
154*c8dee2aaSAndroid Build Coastguard Worker    {
155*c8dee2aaSAndroid Build Coastguard Worker        _260 = test_mat3_b();
156*c8dee2aaSAndroid Build Coastguard Worker    }
157*c8dee2aaSAndroid Build Coastguard Worker    else
158*c8dee2aaSAndroid Build Coastguard Worker    {
159*c8dee2aaSAndroid Build Coastguard Worker        _260 = false;
160*c8dee2aaSAndroid Build Coastguard Worker    }
161*c8dee2aaSAndroid Build Coastguard Worker    bool _264 = false;
162*c8dee2aaSAndroid Build Coastguard Worker    if (_260)
163*c8dee2aaSAndroid Build Coastguard Worker    {
164*c8dee2aaSAndroid Build Coastguard Worker        _264 = test_mat4_b();
165*c8dee2aaSAndroid Build Coastguard Worker    }
166*c8dee2aaSAndroid Build Coastguard Worker    else
167*c8dee2aaSAndroid Build Coastguard Worker    {
168*c8dee2aaSAndroid Build Coastguard Worker        _264 = false;
169*c8dee2aaSAndroid Build Coastguard Worker    }
170*c8dee2aaSAndroid Build Coastguard Worker    bool _268 = false;
171*c8dee2aaSAndroid Build Coastguard Worker    if (_264)
172*c8dee2aaSAndroid Build Coastguard Worker    {
173*c8dee2aaSAndroid Build Coastguard Worker        _268 = test_hmat2_b();
174*c8dee2aaSAndroid Build Coastguard Worker    }
175*c8dee2aaSAndroid Build Coastguard Worker    else
176*c8dee2aaSAndroid Build Coastguard Worker    {
177*c8dee2aaSAndroid Build Coastguard Worker        _268 = false;
178*c8dee2aaSAndroid Build Coastguard Worker    }
179*c8dee2aaSAndroid Build Coastguard Worker    bool _272 = false;
180*c8dee2aaSAndroid Build Coastguard Worker    if (_268)
181*c8dee2aaSAndroid Build Coastguard Worker    {
182*c8dee2aaSAndroid Build Coastguard Worker        _272 = test_hmat3_b();
183*c8dee2aaSAndroid Build Coastguard Worker    }
184*c8dee2aaSAndroid Build Coastguard Worker    else
185*c8dee2aaSAndroid Build Coastguard Worker    {
186*c8dee2aaSAndroid Build Coastguard Worker        _272 = false;
187*c8dee2aaSAndroid Build Coastguard Worker    }
188*c8dee2aaSAndroid Build Coastguard Worker    bool _276 = false;
189*c8dee2aaSAndroid Build Coastguard Worker    if (_272)
190*c8dee2aaSAndroid Build Coastguard Worker    {
191*c8dee2aaSAndroid Build Coastguard Worker        _276 = test_hmat4_b();
192*c8dee2aaSAndroid Build Coastguard Worker    }
193*c8dee2aaSAndroid Build Coastguard Worker    else
194*c8dee2aaSAndroid Build Coastguard Worker    {
195*c8dee2aaSAndroid Build Coastguard Worker        _276 = false;
196*c8dee2aaSAndroid Build Coastguard Worker    }
197*c8dee2aaSAndroid Build Coastguard Worker    float4 _277 = 0.0f.xxxx;
198*c8dee2aaSAndroid Build Coastguard Worker    if (_276)
199*c8dee2aaSAndroid Build Coastguard Worker    {
200*c8dee2aaSAndroid Build Coastguard Worker        _277 = _16_colorGreen;
201*c8dee2aaSAndroid Build Coastguard Worker    }
202*c8dee2aaSAndroid Build Coastguard Worker    else
203*c8dee2aaSAndroid Build Coastguard Worker    {
204*c8dee2aaSAndroid Build Coastguard Worker        _277 = _16_colorRed;
205*c8dee2aaSAndroid Build Coastguard Worker    }
206*c8dee2aaSAndroid Build Coastguard Worker    return _277;
207*c8dee2aaSAndroid Build Coastguard Worker}
208*c8dee2aaSAndroid Build Coastguard Worker
209*c8dee2aaSAndroid Build Coastguard Workervoid frag_main()
210*c8dee2aaSAndroid Build Coastguard Worker{
211*c8dee2aaSAndroid Build Coastguard Worker    float2 _30 = 0.0f.xx;
212*c8dee2aaSAndroid Build Coastguard Worker    sk_FragColor = main(_30);
213*c8dee2aaSAndroid Build Coastguard Worker}
214*c8dee2aaSAndroid Build Coastguard Worker
215*c8dee2aaSAndroid Build Coastguard WorkerSPIRV_Cross_Output main()
216*c8dee2aaSAndroid Build Coastguard Worker{
217*c8dee2aaSAndroid Build Coastguard Worker    frag_main();
218*c8dee2aaSAndroid Build Coastguard Worker    SPIRV_Cross_Output stage_output;
219*c8dee2aaSAndroid Build Coastguard Worker    stage_output.sk_FragColor = sk_FragColor;
220*c8dee2aaSAndroid Build Coastguard Worker    return stage_output;
221*c8dee2aaSAndroid Build Coastguard Worker}
222