PowerPC: Fix copysignf optimization macro
This patch fixes the __copysignf optimized macro meant to internal libm
usage when used with constant value. Without the explicit cast to
float, if it is used with const double value (for instance, on
s_casinhf.c) double constants will be used and it may lead to precision
issues in some algorithms.
It fixes the following failures on PPC64/POWER7:
Failure: Test: Real part of: cacos_downward (inf + 0 i)
Result:
is: 1.
19209289550781250000e-07 0x1.00000000000000000000p-23
should be: 0.
00000000000000000000e+00 0x0.00000000000000000000p+0
Failure: Test: Real part of: cacos_downward (inf - 0 i)
Result:
is: 1.
19209289550781250000e-07 0x1.00000000000000000000p-23
should be: 0.
00000000000000000000e+00 0x0.00000000000000000000p+0
Failure: Test: Real part of: cacos_downward (inf + 0.5 i)
Result:
is: 1.
19209289550781250000e-07 0x1.00000000000000000000p-23
should be: 0.
00000000000000000000e+00 0x0.00000000000000000000p+0
Failure: Test: Real part of: cacos_downward (inf - 0.5 i)
Result:
is: 1.
19209289550781250000e-07 0x1.00000000000000000000p-23
should be: 0.
00000000000000000000e+00 0x0.00000000000000000000p+0
Failure: Test: Real part of: cacos_towardzero (inf + 0 i)
Result:
is: 1.
19209289550781250000e-07 0x1.00000000000000000000p-23
should be: 0.
00000000000000000000e+00 0x0.00000000000000000000p+0
Failure: Test: Real part of: cacos_towardzero (inf - 0 i)
Result:
is: 1.
19209289550781250000e-07 0x1.00000000000000000000p-23
should be: 0.
00000000000000000000e+00 0x0.00000000000000000000p+0
Failure: Test: Real part of: cacos_towardzero (inf + 0.5 i)
Result:
is: 1.
19209289550781250000e-07 0x1.00000000000000000000p-23
should be: 0.
00000000000000000000e+00 0x0.00000000000000000000p+0
Failure: Test: Real part of: cacos_towardzero (inf - 0.5 i)
Result:
is: 1.
19209289550781250000e-07 0x1.00000000000000000000p-23
should be: 0.
00000000000000000000e+00 0x0.00000000000000000000p+0