This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH] Use -frounding-math for math testsuite
From: Richard Guenther <rguenther@suse.de>
Date: Mon, 7 May 2012 10:55:30 +0200 (CEST)
> On Sat, 5 May 2012, Joseph S. Myers wrote:
>
>> On Wed, 2 May 2012, Richard Guenther wrote:
>>
>> > There is also -fsignalling-nans which is off by default, too. Not sure
>> > if that makes a difference though, but GCC for example folds x + 0.0 to
>> > x with the default setting.
>>
>> I don't see it doing that folding, but if it did it would be a bug, since
>> -fsigned-zeros is the default and -0.0 + 0.0 is +0.0 except in
>> round-downwards mode.
>
> In fold_real_zero_addition_p - yes, it's also conditional on
> -fno-signed-zeros.
Unfortunately, this change causes all kinds of math test failures on sparc.
For example, see math/test-double.out below.
I think we should revert this until we can sort it out, especially since
I anticipate that it will take quite some time to do so.
--------------------
testing double (without inline functions)
Failure: Test: gamma (0) == inf plus division by zero exception
Result:
is: 1.61395818209599432208e-314 0x0.00000c2b5b2f00000000p-1022
should be: inf inf
Failure: gamma (-3) == inf plus division by zero exception: Exception "Divide by zero" not set
Failure: Test: gamma (-3) == inf plus division by zero exception
Result:
is: 3.00000000000000000000e+00 0x1.80000000000000000000p+1
should be: inf inf
Failure: Test: gamma (-0.5) == log(2*sqrt(pi))
Result:
is: 5.00000135795793831939e-01 0x1.0000048e7a1bd0000000p-1
should be: 1.26551212348464536817e+00 0x1.43f89a3f0edd60000000p+0
difference: 7.65511987688851536227e-01 0x1.87f12fefa39ef0000000p-1
ulp : 3447559502503159.5000
max.ulp : 0.0000
Failure: Test: gamma (-0.5) sets signgam to -1
Result:
is: 1
should be: -1
Maximal error of `gamma'
is : 3447559502503160 ulp
accepted: 0 ulp
Failure: Test: lgamma (0) == inf plus division by zero exception
Result:
is: 0.00000000000000000000e+00 0x0.00000000000000000000p+0
should be: inf inf
Failure: Test: lgamma (-0) == inf plus division by zero exception
Result:
is: -0.00000000000000000000e+00 -0x0.00000000000000000000p+0
should be: inf inf
Failure: lgamma (-3) == inf plus division by zero exception: Exception "Divide by zero" not set
Failure: Test: lgamma (-3) == inf plus division by zero exception
Result:
is: 3.00000000000000000000e+00 0x1.80000000000000000000p+1
should be: inf inf
Failure: Test: errno for lgamma(-integer) == ERANGE
Result:
is: 0
should be: 34
Failure: lgamma (-max_value) == inf plus division by zero exception: Exception "Invalid operation" set
Failure: Test: lgamma (-max_value) == inf plus division by zero exception
Result:
is: nan nan
should be: inf inf
Failure: lgamma (max_value) == inf plus overflow exception: Exception "Invalid operation" set
Failure: Test: lgamma (max_value) == inf plus overflow exception
Result:
is: nan nan
should be: inf inf
Failure: Test: lgamma (-0.5) == log(2*sqrt(pi))
Result:
is: 5.00000135795793831939e-01 0x1.0000048e7a1bd0000000p-1
should be: 1.26551212348464536817e+00 0x1.43f89a3f0edd60000000p+0
difference: 7.65511987688851536227e-01 0x1.87f12fefa39ef0000000p-1
ulp : 3447559502503159.5000
max.ulp : 0.0000
Failure: Test: lgamma (-0.5) sets signgam to -1
Result:
is: 1
should be: -1
Maximal error of `lgamma'
is : 3447559502503160 ulp
accepted: 1 ulp
Failure: tgamma (max_value) == inf plus overflow exception: Exception "Invalid operation" set
Failure: Test: tgamma (max_value) == inf plus overflow exception
Result:
is: nan nan
should be: inf inf
Failure: Test: tgamma (-2) == NaN plus invalid exception
Result:
is: -2.00000000000000000000e+00 -0x1.00000000000000000000p+1
should be: nan nan
Failure: Test: tgamma (-0.5) == -2 sqrt (pi)
Result:
is: 1.64872127070012819416e+00 0x1.a61298e1e069c0000000p+0
should be: -3.54490770181103220793e+00 -0x1.c5bf891b4ef6b0000000p+1
difference: 5.19362897251115995800e+00 0x1.4c646ac61f95c0000000p+2
ulp : 11695012752650936.0000
max.ulp : 1.0000
Maximal error of `tgamma'
is : 11695012752650936 ulp
accepted: 1 ulp
Test suite completed:
4048 test cases plus 3587 tests for exception flags executed.
23 errors occurred.