1cb93a386Sopenharmony_ciuniform half4 colorRed, colorGreen;
2cb93a386Sopenharmony_ci
3cb93a386Sopenharmony_cibool test() {
4cb93a386Sopenharmony_ci    bool a = 1 == 1 || 2 == 8;
5cb93a386Sopenharmony_ci    bool b = 1 > 1  || 2 == 8;
6cb93a386Sopenharmony_ci    bool c = 1 == 1 && 2 <= 8;
7cb93a386Sopenharmony_ci    bool d = 1 == 2 && 2 == 8;
8cb93a386Sopenharmony_ci    bool e = 1 == 1 ^^ 1 != 1;
9cb93a386Sopenharmony_ci    bool f = 1 == 1 ^^ 1 == 1;
10cb93a386Sopenharmony_ci    bool g = true == true;
11cb93a386Sopenharmony_ci    bool h = false == true;
12cb93a386Sopenharmony_ci    bool i = true == !false;
13cb93a386Sopenharmony_ci    bool j = false == !false;
14cb93a386Sopenharmony_ci
15cb93a386Sopenharmony_ci    const bool TRUE = true;
16cb93a386Sopenharmony_ci    const bool FALSE = false;
17cb93a386Sopenharmony_ci    bool k = all(bool4(1 == 1, !false, 123 > 12, TRUE));       // all are true
18cb93a386Sopenharmony_ci    bool l = all(bool3(TRUE, 1 == 2, true));                   // three out of four are true
19cb93a386Sopenharmony_ci    bool m = any(bool4(true, 1 == 2, true, TRUE));             // three out of four are true
20cb93a386Sopenharmony_ci    bool n = any(bool2(0 == 1, FALSE));                        // none are true
21cb93a386Sopenharmony_ci    bool o = any(not(bool2(0 == 1, FALSE)));                   // all true
22cb93a386Sopenharmony_ci    bool p = all(not(bool4(1 == 1, !false, 123 > 12, TRUE)));  // none are true
23cb93a386Sopenharmony_ci
24cb93a386Sopenharmony_ci    bool q = bool4(true) == bool4(true, true, true, true);
25cb93a386Sopenharmony_ci    bool r = bool4(true) == bool4(true, false, true, true);
26cb93a386Sopenharmony_ci    bool s = bool4(true, true, true, true) == bool4(true);
27cb93a386Sopenharmony_ci    bool t = bool4(true, true, true, false) == bool4(true);
28cb93a386Sopenharmony_ci
29cb93a386Sopenharmony_ci    return a && !b && c && !d && e && !f && g && !h && i && !j && k && !l && m && !n && o && !p
30cb93a386Sopenharmony_ci             && q && !r && s && !t;
31cb93a386Sopenharmony_ci}
32cb93a386Sopenharmony_ci
33cb93a386Sopenharmony_cihalf4 main(float2 coords) {
34cb93a386Sopenharmony_ci    return test() ? colorGreen : colorRed;
35cb93a386Sopenharmony_ci}
36cb93a386Sopenharmony_ci
37