xref: /aosp_15_r20/external/skia/tests/sksl/intrinsics/ClampUInt.hlsl (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1*c8dee2aaSAndroid Build Coastguard Workercbuffer _UniformBuffer : register(b0, space0)
2*c8dee2aaSAndroid Build Coastguard Worker{
3*c8dee2aaSAndroid Build Coastguard Worker    float4 _7_testInputs : packoffset(c0);
4*c8dee2aaSAndroid Build Coastguard Worker    float4 _7_colorGreen : packoffset(c1);
5*c8dee2aaSAndroid Build Coastguard Worker    float4 _7_colorRed : packoffset(c2);
6*c8dee2aaSAndroid Build Coastguard Worker};
7*c8dee2aaSAndroid Build Coastguard Worker
8*c8dee2aaSAndroid Build Coastguard Worker
9*c8dee2aaSAndroid Build Coastguard Workerstatic float4 sk_FragColor;
10*c8dee2aaSAndroid Build Coastguard Worker
11*c8dee2aaSAndroid Build Coastguard Workerstruct SPIRV_Cross_Output
12*c8dee2aaSAndroid Build Coastguard Worker{
13*c8dee2aaSAndroid Build Coastguard Worker    float4 sk_FragColor : SV_Target0;
14*c8dee2aaSAndroid Build Coastguard Worker};
15*c8dee2aaSAndroid Build Coastguard Worker
16*c8dee2aaSAndroid Build Coastguard Workerfloat4 main(float2 _21)
17*c8dee2aaSAndroid Build Coastguard Worker{
18*c8dee2aaSAndroid Build Coastguard Worker    float4 _36 = (_7_testInputs * 100.0f) + 200.0f.xxxx;
19*c8dee2aaSAndroid Build Coastguard Worker    uint4 _45 = uint4(uint(_36.x), uint(_36.y), uint(_36.z), uint(_36.w));
20*c8dee2aaSAndroid Build Coastguard Worker    uint4 uintValues = _45;
21*c8dee2aaSAndroid Build Coastguard Worker    uint4 expectedA = uint4(100u, 200u, 275u, 300u);
22*c8dee2aaSAndroid Build Coastguard Worker    uint4 expectedB = uint4(100u, 200u, 250u, 425u);
23*c8dee2aaSAndroid Build Coastguard Worker    uint _59 = _45.x;
24*c8dee2aaSAndroid Build Coastguard Worker    bool _72 = false;
25*c8dee2aaSAndroid Build Coastguard Worker    if (clamp(_59, 100u, 300u) == 100u)
26*c8dee2aaSAndroid Build Coastguard Worker    {
27*c8dee2aaSAndroid Build Coastguard Worker        uint2 _63 = clamp(_45.xy, uint2(100u, 100u), uint2(300u, 300u));
28*c8dee2aaSAndroid Build Coastguard Worker        _72 = all(bool2(_63.x == uint4(100u, 200u, 275u, 300u).xy.x, _63.y == uint4(100u, 200u, 275u, 300u).xy.y));
29*c8dee2aaSAndroid Build Coastguard Worker    }
30*c8dee2aaSAndroid Build Coastguard Worker    else
31*c8dee2aaSAndroid Build Coastguard Worker    {
32*c8dee2aaSAndroid Build Coastguard Worker        _72 = false;
33*c8dee2aaSAndroid Build Coastguard Worker    }
34*c8dee2aaSAndroid Build Coastguard Worker    bool _84 = false;
35*c8dee2aaSAndroid Build Coastguard Worker    if (_72)
36*c8dee2aaSAndroid Build Coastguard Worker    {
37*c8dee2aaSAndroid Build Coastguard Worker        uint3 _75 = clamp(_45.xyz, uint3(100u, 100u, 100u), uint3(300u, 300u, 300u));
38*c8dee2aaSAndroid Build Coastguard Worker        _84 = all(bool3(_75.x == uint4(100u, 200u, 275u, 300u).xyz.x, _75.y == uint4(100u, 200u, 275u, 300u).xyz.y, _75.z == uint4(100u, 200u, 275u, 300u).xyz.z));
39*c8dee2aaSAndroid Build Coastguard Worker    }
40*c8dee2aaSAndroid Build Coastguard Worker    else
41*c8dee2aaSAndroid Build Coastguard Worker    {
42*c8dee2aaSAndroid Build Coastguard Worker        _84 = false;
43*c8dee2aaSAndroid Build Coastguard Worker    }
44*c8dee2aaSAndroid Build Coastguard Worker    bool _93 = false;
45*c8dee2aaSAndroid Build Coastguard Worker    if (_84)
46*c8dee2aaSAndroid Build Coastguard Worker    {
47*c8dee2aaSAndroid Build Coastguard Worker        uint4 _87 = clamp(_45, uint4(100u, 100u, 100u, 100u), uint4(300u, 300u, 300u, 300u));
48*c8dee2aaSAndroid Build Coastguard Worker        _93 = all(bool4(_87.x == uint4(100u, 200u, 275u, 300u).x, _87.y == uint4(100u, 200u, 275u, 300u).y, _87.z == uint4(100u, 200u, 275u, 300u).z, _87.w == uint4(100u, 200u, 275u, 300u).w));
49*c8dee2aaSAndroid Build Coastguard Worker    }
50*c8dee2aaSAndroid Build Coastguard Worker    else
51*c8dee2aaSAndroid Build Coastguard Worker    {
52*c8dee2aaSAndroid Build Coastguard Worker        _93 = false;
53*c8dee2aaSAndroid Build Coastguard Worker    }
54*c8dee2aaSAndroid Build Coastguard Worker    bool _97 = false;
55*c8dee2aaSAndroid Build Coastguard Worker    if (_93)
56*c8dee2aaSAndroid Build Coastguard Worker    {
57*c8dee2aaSAndroid Build Coastguard Worker        _97 = true;
58*c8dee2aaSAndroid Build Coastguard Worker    }
59*c8dee2aaSAndroid Build Coastguard Worker    else
60*c8dee2aaSAndroid Build Coastguard Worker    {
61*c8dee2aaSAndroid Build Coastguard Worker        _97 = false;
62*c8dee2aaSAndroid Build Coastguard Worker    }
63*c8dee2aaSAndroid Build Coastguard Worker    bool _104 = false;
64*c8dee2aaSAndroid Build Coastguard Worker    if (_97)
65*c8dee2aaSAndroid Build Coastguard Worker    {
66*c8dee2aaSAndroid Build Coastguard Worker        _104 = all(bool2(uint2(100u, 200u).x == uint4(100u, 200u, 275u, 300u).xy.x, uint2(100u, 200u).y == uint4(100u, 200u, 275u, 300u).xy.y));
67*c8dee2aaSAndroid Build Coastguard Worker    }
68*c8dee2aaSAndroid Build Coastguard Worker    else
69*c8dee2aaSAndroid Build Coastguard Worker    {
70*c8dee2aaSAndroid Build Coastguard Worker        _104 = false;
71*c8dee2aaSAndroid Build Coastguard Worker    }
72*c8dee2aaSAndroid Build Coastguard Worker    bool _111 = false;
73*c8dee2aaSAndroid Build Coastguard Worker    if (_104)
74*c8dee2aaSAndroid Build Coastguard Worker    {
75*c8dee2aaSAndroid Build Coastguard Worker        _111 = all(bool3(uint3(100u, 200u, 275u).x == uint4(100u, 200u, 275u, 300u).xyz.x, uint3(100u, 200u, 275u).y == uint4(100u, 200u, 275u, 300u).xyz.y, uint3(100u, 200u, 275u).z == uint4(100u, 200u, 275u, 300u).xyz.z));
76*c8dee2aaSAndroid Build Coastguard Worker    }
77*c8dee2aaSAndroid Build Coastguard Worker    else
78*c8dee2aaSAndroid Build Coastguard Worker    {
79*c8dee2aaSAndroid Build Coastguard Worker        _111 = false;
80*c8dee2aaSAndroid Build Coastguard Worker    }
81*c8dee2aaSAndroid Build Coastguard Worker    bool _114 = false;
82*c8dee2aaSAndroid Build Coastguard Worker    if (_111)
83*c8dee2aaSAndroid Build Coastguard Worker    {
84*c8dee2aaSAndroid Build Coastguard Worker        _114 = true;
85*c8dee2aaSAndroid Build Coastguard Worker    }
86*c8dee2aaSAndroid Build Coastguard Worker    else
87*c8dee2aaSAndroid Build Coastguard Worker    {
88*c8dee2aaSAndroid Build Coastguard Worker        _114 = false;
89*c8dee2aaSAndroid Build Coastguard Worker    }
90*c8dee2aaSAndroid Build Coastguard Worker    bool _119 = false;
91*c8dee2aaSAndroid Build Coastguard Worker    if (_114)
92*c8dee2aaSAndroid Build Coastguard Worker    {
93*c8dee2aaSAndroid Build Coastguard Worker        _119 = clamp(_59, 100u, 300u) == 100u;
94*c8dee2aaSAndroid Build Coastguard Worker    }
95*c8dee2aaSAndroid Build Coastguard Worker    else
96*c8dee2aaSAndroid Build Coastguard Worker    {
97*c8dee2aaSAndroid Build Coastguard Worker        _119 = false;
98*c8dee2aaSAndroid Build Coastguard Worker    }
99*c8dee2aaSAndroid Build Coastguard Worker    bool _131 = false;
100*c8dee2aaSAndroid Build Coastguard Worker    if (_119)
101*c8dee2aaSAndroid Build Coastguard Worker    {
102*c8dee2aaSAndroid Build Coastguard Worker        uint2 _122 = clamp(_45.xy, uint2(100u, 0u), uint2(300u, 400u));
103*c8dee2aaSAndroid Build Coastguard Worker        _131 = all(bool2(_122.x == uint4(100u, 200u, 250u, 425u).xy.x, _122.y == uint4(100u, 200u, 250u, 425u).xy.y));
104*c8dee2aaSAndroid Build Coastguard Worker    }
105*c8dee2aaSAndroid Build Coastguard Worker    else
106*c8dee2aaSAndroid Build Coastguard Worker    {
107*c8dee2aaSAndroid Build Coastguard Worker        _131 = false;
108*c8dee2aaSAndroid Build Coastguard Worker    }
109*c8dee2aaSAndroid Build Coastguard Worker    bool _141 = false;
110*c8dee2aaSAndroid Build Coastguard Worker    if (_131)
111*c8dee2aaSAndroid Build Coastguard Worker    {
112*c8dee2aaSAndroid Build Coastguard Worker        uint3 _134 = clamp(_45.xyz, uint3(100u, 0u, 0u), uint3(300u, 400u, 250u));
113*c8dee2aaSAndroid Build Coastguard Worker        _141 = all(bool3(_134.x == uint4(100u, 200u, 250u, 425u).xyz.x, _134.y == uint4(100u, 200u, 250u, 425u).xyz.y, _134.z == uint4(100u, 200u, 250u, 425u).xyz.z));
114*c8dee2aaSAndroid Build Coastguard Worker    }
115*c8dee2aaSAndroid Build Coastguard Worker    else
116*c8dee2aaSAndroid Build Coastguard Worker    {
117*c8dee2aaSAndroid Build Coastguard Worker        _141 = false;
118*c8dee2aaSAndroid Build Coastguard Worker    }
119*c8dee2aaSAndroid Build Coastguard Worker    bool _150 = false;
120*c8dee2aaSAndroid Build Coastguard Worker    if (_141)
121*c8dee2aaSAndroid Build Coastguard Worker    {
122*c8dee2aaSAndroid Build Coastguard Worker        uint4 _144 = clamp(_45, uint4(100u, 0u, 0u, 300u), uint4(300u, 400u, 250u, 500u));
123*c8dee2aaSAndroid Build Coastguard Worker        _150 = all(bool4(_144.x == uint4(100u, 200u, 250u, 425u).x, _144.y == uint4(100u, 200u, 250u, 425u).y, _144.z == uint4(100u, 200u, 250u, 425u).z, _144.w == uint4(100u, 200u, 250u, 425u).w));
124*c8dee2aaSAndroid Build Coastguard Worker    }
125*c8dee2aaSAndroid Build Coastguard Worker    else
126*c8dee2aaSAndroid Build Coastguard Worker    {
127*c8dee2aaSAndroid Build Coastguard Worker        _150 = false;
128*c8dee2aaSAndroid Build Coastguard Worker    }
129*c8dee2aaSAndroid Build Coastguard Worker    bool _153 = false;
130*c8dee2aaSAndroid Build Coastguard Worker    if (_150)
131*c8dee2aaSAndroid Build Coastguard Worker    {
132*c8dee2aaSAndroid Build Coastguard Worker        _153 = true;
133*c8dee2aaSAndroid Build Coastguard Worker    }
134*c8dee2aaSAndroid Build Coastguard Worker    else
135*c8dee2aaSAndroid Build Coastguard Worker    {
136*c8dee2aaSAndroid Build Coastguard Worker        _153 = false;
137*c8dee2aaSAndroid Build Coastguard Worker    }
138*c8dee2aaSAndroid Build Coastguard Worker    bool _159 = false;
139*c8dee2aaSAndroid Build Coastguard Worker    if (_153)
140*c8dee2aaSAndroid Build Coastguard Worker    {
141*c8dee2aaSAndroid Build Coastguard Worker        _159 = all(bool2(uint2(100u, 200u).x == uint4(100u, 200u, 250u, 425u).xy.x, uint2(100u, 200u).y == uint4(100u, 200u, 250u, 425u).xy.y));
142*c8dee2aaSAndroid Build Coastguard Worker    }
143*c8dee2aaSAndroid Build Coastguard Worker    else
144*c8dee2aaSAndroid Build Coastguard Worker    {
145*c8dee2aaSAndroid Build Coastguard Worker        _159 = false;
146*c8dee2aaSAndroid Build Coastguard Worker    }
147*c8dee2aaSAndroid Build Coastguard Worker    bool _166 = false;
148*c8dee2aaSAndroid Build Coastguard Worker    if (_159)
149*c8dee2aaSAndroid Build Coastguard Worker    {
150*c8dee2aaSAndroid Build Coastguard Worker        _166 = all(bool3(uint3(100u, 200u, 250u).x == uint4(100u, 200u, 250u, 425u).xyz.x, uint3(100u, 200u, 250u).y == uint4(100u, 200u, 250u, 425u).xyz.y, uint3(100u, 200u, 250u).z == uint4(100u, 200u, 250u, 425u).xyz.z));
151*c8dee2aaSAndroid Build Coastguard Worker    }
152*c8dee2aaSAndroid Build Coastguard Worker    else
153*c8dee2aaSAndroid Build Coastguard Worker    {
154*c8dee2aaSAndroid Build Coastguard Worker        _166 = false;
155*c8dee2aaSAndroid Build Coastguard Worker    }
156*c8dee2aaSAndroid Build Coastguard Worker    bool _169 = false;
157*c8dee2aaSAndroid Build Coastguard Worker    if (_166)
158*c8dee2aaSAndroid Build Coastguard Worker    {
159*c8dee2aaSAndroid Build Coastguard Worker        _169 = true;
160*c8dee2aaSAndroid Build Coastguard Worker    }
161*c8dee2aaSAndroid Build Coastguard Worker    else
162*c8dee2aaSAndroid Build Coastguard Worker    {
163*c8dee2aaSAndroid Build Coastguard Worker        _169 = false;
164*c8dee2aaSAndroid Build Coastguard Worker    }
165*c8dee2aaSAndroid Build Coastguard Worker    float4 _170 = 0.0f.xxxx;
166*c8dee2aaSAndroid Build Coastguard Worker    if (_169)
167*c8dee2aaSAndroid Build Coastguard Worker    {
168*c8dee2aaSAndroid Build Coastguard Worker        _170 = _7_colorGreen;
169*c8dee2aaSAndroid Build Coastguard Worker    }
170*c8dee2aaSAndroid Build Coastguard Worker    else
171*c8dee2aaSAndroid Build Coastguard Worker    {
172*c8dee2aaSAndroid Build Coastguard Worker        _170 = _7_colorRed;
173*c8dee2aaSAndroid Build Coastguard Worker    }
174*c8dee2aaSAndroid Build Coastguard Worker    return _170;
175*c8dee2aaSAndroid Build Coastguard Worker}
176*c8dee2aaSAndroid Build Coastguard Worker
177*c8dee2aaSAndroid Build Coastguard Workervoid frag_main()
178*c8dee2aaSAndroid Build Coastguard Worker{
179*c8dee2aaSAndroid Build Coastguard Worker    float2 _17 = 0.0f.xx;
180*c8dee2aaSAndroid Build Coastguard Worker    sk_FragColor = main(_17);
181*c8dee2aaSAndroid Build Coastguard Worker}
182*c8dee2aaSAndroid Build Coastguard Worker
183*c8dee2aaSAndroid Build Coastguard WorkerSPIRV_Cross_Output main()
184*c8dee2aaSAndroid Build Coastguard Worker{
185*c8dee2aaSAndroid Build Coastguard Worker    frag_main();
186*c8dee2aaSAndroid Build Coastguard Worker    SPIRV_Cross_Output stage_output;
187*c8dee2aaSAndroid Build Coastguard Worker    stage_output.sk_FragColor = sk_FragColor;
188*c8dee2aaSAndroid Build Coastguard Worker    return stage_output;
189*c8dee2aaSAndroid Build Coastguard Worker}
190