glsl: Add "built-in" function to do sign(fp64)

v2: use mix.

Signed-off-by: Elie Tournier <elie.tournier@collabora.com>
This commit is contained in:
Elie Tournier 2017-08-08 14:12:35 +01:00 committed by Matt Turner
parent eac66f0248
commit c802cdde9d
1 changed files with 10 additions and 0 deletions

View File

@ -93,3 +93,13 @@ __fneg64(uint64_t __a)
a.y = mix(t, a.y, __is_nan(__a));
return packUint2x32(a);
}
uint64_t
__fsign64(uint64_t __a)
{
uvec2 a = unpackUint2x32(__a);
uvec2 retval;
retval.x = 0u;
retval.y = mix((a.y & 0x80000000u) | 0x3FF00000u, 0u, (a.y << 1 | a.x) == 0u);
return packUint2x32(retval);
}