xref: /aosp_15_r20/external/skia/tests/sksl/folding/VectorVectorFolding.glsl (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1
2uniform float unknownInput;
3uniform vec4 colorRed;
4uniform vec4 colorGreen;
5bool test_int_b() {
6    int unknown = int(unknownInput);
7    bool ok = true;
8    ok = ok && ivec4(0) / ivec4(unknown) == ivec4(0);
9    ivec4 val = ivec4(unknown);
10    val += ivec4(1);
11    val -= ivec4(1);
12    val = val + ivec4(1);
13    val = val - ivec4(1);
14    ok = ok && val == ivec4(unknown);
15    val *= ivec4(2);
16    val /= ivec4(2);
17    val = val * ivec4(2);
18    val = val / ivec4(2);
19    ok = ok && val == ivec4(unknown);
20    return ok;
21}
22vec4 main() {
23    float _0_unknown = unknownInput;
24    bool _1_ok = true;
25    _1_ok = _1_ok && vec4(0.0) / vec4(_0_unknown) == vec4(0.0);
26    vec4 _2_val = vec4(_0_unknown);
27    _2_val += vec4(1.0);
28    _2_val -= vec4(1.0);
29    _2_val = _2_val + vec4(1.0);
30    _2_val = _2_val - vec4(1.0);
31    _1_ok = _1_ok && _2_val == vec4(_0_unknown);
32    _2_val *= vec4(2.0);
33    _2_val *= vec4(0.5);
34    _2_val = _2_val * vec4(2.0);
35    _2_val = _2_val * vec4(0.5);
36    _1_ok = _1_ok && _2_val == vec4(_0_unknown);
37    return _1_ok && test_int_b() ? colorGreen : colorRed;
38}
39