xref: /aosp_15_r20/external/skia/tests/sksl/intrinsics/Frexp.glsl (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1
2out vec4 sk_FragColor;
3uniform vec4 colorGreen;
4uniform vec4 colorRed;
5bool checkIntrinsicAsFunctionArg_bf3i3(vec3 f3, ivec3 e3) {
6    return f3 == vec3(0.75) && e3 == ivec3(3);
7}
8vec4 main() {
9    vec4 value = colorGreen.yyyy * 6.0;
10    ivec4 _0_exp;
11    vec4 result;
12    bvec4 ok;
13    result.x = frexp(value.x, _0_exp.x);
14    ok.x = result.x == 0.75 && _0_exp.x == 3;
15    result.xy = frexp(value.xy, _0_exp.xy);
16    ok.y = result.y == 0.75 && _0_exp.y == 3;
17    result.xyz = frexp(value.xyz, _0_exp.xyz);
18    ok.z = result.z == 0.75 && _0_exp.z == 3;
19    result = frexp(value, _0_exp);
20    ok.w = result.w == 0.75 && _0_exp.w == 3;
21    bool funcOk = checkIntrinsicAsFunctionArg_bf3i3(frexp(value.wzy, _0_exp.zxw).yxz, _0_exp.yxz);
22    return all(ok) && funcOk ? colorGreen : colorRed;
23}
24