Fix fabs() for MIPS when used on -0.0
It would previously return negative zero for -0.0 since -0.0 does not compare less than 0. The issue was discovered when running the libc++ test suite on softfloat MIPS64. I have verified that both clang and GCC generate sensible code for the builtin. For soft float they clear the sign bit using integer operations and in hard float mode they use abs.d. Reviewed by: #mips, jhb, brooks, imp, emaste Approved by: jhb (mentor) Differential Revision: https://reviews.freebsd.org/D13135
This commit is contained in:
parent
7d6335dc2e
commit
babd7f0f92
@ -42,7 +42,6 @@ __FBSDID("$FreeBSD$");
|
||||
double
|
||||
fabs(double x)
|
||||
{
|
||||
if (x < 0)
|
||||
x = -x;
|
||||
return(x);
|
||||
|
||||
return (__builtin_fabs(x));
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user