blob: e8805712f165d4a76a12ecd3226dddfe093e2e63 [file] [log] [blame]
uniform half4 colorGreen, colorRed;
noinline bool checkIntrinsicAsFunctionArg(float3 f3, int3 e3) {
// 6 equals 0.75 * 2^3.
return (f3 == float3(0.75) && e3 == int3(3));
}
half4 main(float2 coords) {
float4 value = colorGreen.gggg * 6;
int4 exp;
float4 result;
bool4 ok;
// 6 equals 0.75 * 2^3.
result.x = frexp(value.x, exp.x);
ok.x = (result.x == 0.75 && exp.x == 3);
result.xy = frexp(value.xy, exp.xy);
ok.y = (result.y == 0.75 && exp.y == 3);
result.xyz = frexp(value.xyz, exp.xyz);
ok.z = (result.z == 0.75 && exp.z == 3);
result.xyzw = frexp(value.xyzw, exp.xyzw);
ok.w = (result.w == 0.75 && exp.w == 3);
bool funcOk = checkIntrinsicAsFunctionArg(frexp(value.wzy, exp.zxw).yxz, exp.yxz);
return all(ok) && funcOk ? colorGreen : colorRed;
}