xref: /aosp_15_r20/external/skia/tests/sksl/folding/ShortCircuitBoolFolding.glsl (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1*c8dee2aaSAndroid Build Coastguard Worker
2*c8dee2aaSAndroid Build Coastguard Workeruniform vec4 colorRed;
3*c8dee2aaSAndroid Build Coastguard Workeruniform vec4 colorGreen;
4*c8dee2aaSAndroid Build Coastguard Workeruniform float unknownInput;
5*c8dee2aaSAndroid Build Coastguard Workervec4 main() {
6*c8dee2aaSAndroid Build Coastguard Worker    bool _0_expr = unknownInput > 0.0;
7*c8dee2aaSAndroid Build Coastguard Worker    int _1_ok = 0;
8*c8dee2aaSAndroid Build Coastguard Worker    int _2_bad = 0;
9*c8dee2aaSAndroid Build Coastguard Worker    if (_0_expr) {
10*c8dee2aaSAndroid Build Coastguard Worker        ++_1_ok;
11*c8dee2aaSAndroid Build Coastguard Worker    } else {
12*c8dee2aaSAndroid Build Coastguard Worker        ++_2_bad;
13*c8dee2aaSAndroid Build Coastguard Worker    }
14*c8dee2aaSAndroid Build Coastguard Worker    {
15*c8dee2aaSAndroid Build Coastguard Worker        ++_1_ok;
16*c8dee2aaSAndroid Build Coastguard Worker    }
17*c8dee2aaSAndroid Build Coastguard Worker    if (true ^^ _0_expr) {
18*c8dee2aaSAndroid Build Coastguard Worker        ++_2_bad;
19*c8dee2aaSAndroid Build Coastguard Worker    } else {
20*c8dee2aaSAndroid Build Coastguard Worker        ++_1_ok;
21*c8dee2aaSAndroid Build Coastguard Worker    }
22*c8dee2aaSAndroid Build Coastguard Worker    if (_0_expr) {
23*c8dee2aaSAndroid Build Coastguard Worker        ++_1_ok;
24*c8dee2aaSAndroid Build Coastguard Worker    } else {
25*c8dee2aaSAndroid Build Coastguard Worker        ++_2_bad;
26*c8dee2aaSAndroid Build Coastguard Worker    }
27*c8dee2aaSAndroid Build Coastguard Worker    {
28*c8dee2aaSAndroid Build Coastguard Worker        ++_1_ok;
29*c8dee2aaSAndroid Build Coastguard Worker    }
30*c8dee2aaSAndroid Build Coastguard Worker    if (_0_expr) {
31*c8dee2aaSAndroid Build Coastguard Worker        ++_1_ok;
32*c8dee2aaSAndroid Build Coastguard Worker    } else {
33*c8dee2aaSAndroid Build Coastguard Worker        ++_2_bad;
34*c8dee2aaSAndroid Build Coastguard Worker    }
35*c8dee2aaSAndroid Build Coastguard Worker    if (_0_expr) {
36*c8dee2aaSAndroid Build Coastguard Worker        ++_1_ok;
37*c8dee2aaSAndroid Build Coastguard Worker    } else {
38*c8dee2aaSAndroid Build Coastguard Worker        ++_2_bad;
39*c8dee2aaSAndroid Build Coastguard Worker    }
40*c8dee2aaSAndroid Build Coastguard Worker    if (false == _0_expr) {
41*c8dee2aaSAndroid Build Coastguard Worker        ++_2_bad;
42*c8dee2aaSAndroid Build Coastguard Worker    } else {
43*c8dee2aaSAndroid Build Coastguard Worker        ++_1_ok;
44*c8dee2aaSAndroid Build Coastguard Worker    }
45*c8dee2aaSAndroid Build Coastguard Worker    if (true != _0_expr) {
46*c8dee2aaSAndroid Build Coastguard Worker        ++_2_bad;
47*c8dee2aaSAndroid Build Coastguard Worker    } else {
48*c8dee2aaSAndroid Build Coastguard Worker        ++_1_ok;
49*c8dee2aaSAndroid Build Coastguard Worker    }
50*c8dee2aaSAndroid Build Coastguard Worker    if (_0_expr) {
51*c8dee2aaSAndroid Build Coastguard Worker        ++_1_ok;
52*c8dee2aaSAndroid Build Coastguard Worker    } else {
53*c8dee2aaSAndroid Build Coastguard Worker        ++_2_bad;
54*c8dee2aaSAndroid Build Coastguard Worker    }
55*c8dee2aaSAndroid Build Coastguard Worker    if (_0_expr) {
56*c8dee2aaSAndroid Build Coastguard Worker        ++_1_ok;
57*c8dee2aaSAndroid Build Coastguard Worker    } else {
58*c8dee2aaSAndroid Build Coastguard Worker        ++_2_bad;
59*c8dee2aaSAndroid Build Coastguard Worker    }
60*c8dee2aaSAndroid Build Coastguard Worker    {
61*c8dee2aaSAndroid Build Coastguard Worker        ++_1_ok;
62*c8dee2aaSAndroid Build Coastguard Worker    }
63*c8dee2aaSAndroid Build Coastguard Worker    if (_0_expr ^^ true) {
64*c8dee2aaSAndroid Build Coastguard Worker        ++_2_bad;
65*c8dee2aaSAndroid Build Coastguard Worker    } else {
66*c8dee2aaSAndroid Build Coastguard Worker        ++_1_ok;
67*c8dee2aaSAndroid Build Coastguard Worker    }
68*c8dee2aaSAndroid Build Coastguard Worker    if (_0_expr) {
69*c8dee2aaSAndroid Build Coastguard Worker        ++_1_ok;
70*c8dee2aaSAndroid Build Coastguard Worker    } else {
71*c8dee2aaSAndroid Build Coastguard Worker        ++_2_bad;
72*c8dee2aaSAndroid Build Coastguard Worker    }
73*c8dee2aaSAndroid Build Coastguard Worker    {
74*c8dee2aaSAndroid Build Coastguard Worker        ++_1_ok;
75*c8dee2aaSAndroid Build Coastguard Worker    }
76*c8dee2aaSAndroid Build Coastguard Worker    if (_0_expr) {
77*c8dee2aaSAndroid Build Coastguard Worker        ++_1_ok;
78*c8dee2aaSAndroid Build Coastguard Worker    } else {
79*c8dee2aaSAndroid Build Coastguard Worker        ++_2_bad;
80*c8dee2aaSAndroid Build Coastguard Worker    }
81*c8dee2aaSAndroid Build Coastguard Worker    if (_0_expr) {
82*c8dee2aaSAndroid Build Coastguard Worker        ++_1_ok;
83*c8dee2aaSAndroid Build Coastguard Worker    } else {
84*c8dee2aaSAndroid Build Coastguard Worker        ++_2_bad;
85*c8dee2aaSAndroid Build Coastguard Worker    }
86*c8dee2aaSAndroid Build Coastguard Worker    if (_0_expr == false) {
87*c8dee2aaSAndroid Build Coastguard Worker        ++_2_bad;
88*c8dee2aaSAndroid Build Coastguard Worker    } else {
89*c8dee2aaSAndroid Build Coastguard Worker        ++_1_ok;
90*c8dee2aaSAndroid Build Coastguard Worker    }
91*c8dee2aaSAndroid Build Coastguard Worker    if (_0_expr != true) {
92*c8dee2aaSAndroid Build Coastguard Worker        ++_2_bad;
93*c8dee2aaSAndroid Build Coastguard Worker    } else {
94*c8dee2aaSAndroid Build Coastguard Worker        ++_1_ok;
95*c8dee2aaSAndroid Build Coastguard Worker    }
96*c8dee2aaSAndroid Build Coastguard Worker    if (_0_expr) {
97*c8dee2aaSAndroid Build Coastguard Worker        ++_1_ok;
98*c8dee2aaSAndroid Build Coastguard Worker    } else {
99*c8dee2aaSAndroid Build Coastguard Worker        ++_2_bad;
100*c8dee2aaSAndroid Build Coastguard Worker    }
101*c8dee2aaSAndroid Build Coastguard Worker    float _3_a = unknownInput + 2.0;
102*c8dee2aaSAndroid Build Coastguard Worker    float _4_b = unknownInput * 2.0;
103*c8dee2aaSAndroid Build Coastguard Worker    if (_3_a == _4_b) {
104*c8dee2aaSAndroid Build Coastguard Worker        ++_2_bad;
105*c8dee2aaSAndroid Build Coastguard Worker    } else {
106*c8dee2aaSAndroid Build Coastguard Worker        ++_1_ok;
107*c8dee2aaSAndroid Build Coastguard Worker    }
108*c8dee2aaSAndroid Build Coastguard Worker    bool(_3_a = _4_b) || true;
109*c8dee2aaSAndroid Build Coastguard Worker    if (_3_a == _4_b) {
110*c8dee2aaSAndroid Build Coastguard Worker        ++_1_ok;
111*c8dee2aaSAndroid Build Coastguard Worker    } else {
112*c8dee2aaSAndroid Build Coastguard Worker        ++_2_bad;
113*c8dee2aaSAndroid Build Coastguard Worker    }
114*c8dee2aaSAndroid Build Coastguard Worker    return _1_ok == 22 && _2_bad == 0 ? colorGreen : colorRed;
115*c8dee2aaSAndroid Build Coastguard Worker}
116