1cb93a386Sopenharmony_ci/*#pragma settings NoInline*/
2cb93a386Sopenharmony_ci
3cb93a386Sopenharmony_ciuniform half4 colorRed, colorGreen, colorWhite, colorBlack;
4cb93a386Sopenharmony_ci
5cb93a386Sopenharmony_civoid setToColorBlack(out half4 x) {
6cb93a386Sopenharmony_ci    x = colorBlack;
7cb93a386Sopenharmony_ci}
8cb93a386Sopenharmony_ci
9cb93a386Sopenharmony_cihalf4 main(float2 coords) {
10cb93a386Sopenharmony_ci    half4 a, b, c, d;
11cb93a386Sopenharmony_ci
12cb93a386Sopenharmony_ci    (b = colorRed), (c = colorGreen);
13cb93a386Sopenharmony_ci    a = (setToColorBlack(d), colorWhite);
14cb93a386Sopenharmony_ci
15cb93a386Sopenharmony_ci    // These uniforms only contain 1s and 0s so these multiplies should be no-ops.
16cb93a386Sopenharmony_ci    a *= a;
17cb93a386Sopenharmony_ci    b *= b;
18cb93a386Sopenharmony_ci    c *= c;
19cb93a386Sopenharmony_ci    d *= d;
20cb93a386Sopenharmony_ci
21cb93a386Sopenharmony_ci    return (a == colorWhite &&
22cb93a386Sopenharmony_ci            b == colorRed &&
23cb93a386Sopenharmony_ci            c == colorGreen &&
24cb93a386Sopenharmony_ci            d == colorBlack) ? colorGreen : colorRed;
25cb93a386Sopenharmony_ci}
26