crt: Revert to our implementation of scalbn/scalbnf and ldexp on UCRT/x86

The UCRT implementation of scalbn/scalbnf (and presumably ldexp
too, as it's an identical function) has a minor spec incompliance;
it doesn't respect the rounding mode that has been set.

For most uses of scalbn, rounding isn't at play at all; rounding
only makes a difference when scaling the floats out of range,
for deciding between staying at DBL_MAX or going to infinity,
or likewise between the smallest subnormal or going to zero.

This is observed in compiler-rt's testsuite for builtins.

Signed-off-by: Martin Storsjö <martin@martin.st>
1 file changed