paranoia on PowerPC
Joel Sherrill
joel.sherrill@oarcorp.com
Tue Jul 24 16:06:00 GMT 2007
Tim Prince wrote:
> ralf.corsepius@rtems.org wrote:
>> On Mon, 2007-07-23 at 19:00 -0700, Tim Prince wrote:
>>
>>> Should we know which version of Paranoia this is?
>>
>> It's the version having been integrated into the rtems source tree many
>> years ago:
>> http://www.rtems.org/cgi-bin/viewcvs.cgi/rtems/testsuites/samples/paranoia/paranoia.c
>>
>>
> Interesting, I wasn't aware there were multiple C versions of the
> benchmark. I spent a lot of time in the early years making the
> Fortran version work correctly on a bunch of architectures. The only
> one remaining, where paranoia was particularly buggy, was 387. Having
> to run with -ffloat-store is a symptom of bugs in paranoia. I found
> the netlib C version sufficiently different to make it hard to search
> for similar bugs. I assume the C is testing only double.
The one in RTEMS tree is from Cygnus years ago. Since RTEMS targets
embedded systems, paranoia is a good check that the FPU is initialized
OK and things are working. We don't change the code except to keep it
compiling.
>>> or guess which flaw is reported? I'd be happy to check Paranoia on
>>> a platform to which I have access, with a more interesting gcc
>>> version, but you've given little to go on.
>> cf. the thread starting at
>> http://rtems.rtems.org/pipermail/rtems-users/2007-July/018611.html
>>
> IEEE compliance implies that processors should default to settings
> which will pass those rounding tests. They catch the behavior of 387
> double when run in default 64-bit precision mode. 387 has to be set
> to 53-bit mode to pass the rounding tests, but the resulting
> inconsistencies in exponent range will produce paranoia failures
> elsewhere.
> If I recall correctly, problems paranoia had with fused multiply-add
> were due to its source code bugs. It doesn't have specific tests for
> variations in rounding behavior of fma, but bugs in the extra
> precision tests would show up. As hinted previously, you could use
> these tests to see whether a gcc option to not use fma is working.
> IA-64 has fma behavior similar to Power. Now that fma is being
> codified by IEEE, it would be interesting to have corresponding checks
> for that added.
I don't know if this would matter or not. I dug out an old RTEMS
release which used gcc 3.2.3 and gdb 5.2. They exhibited the same
behavior.
So it isn't a new issue. The question is back to whether this was a
known issue on the PowerPC. Does anyone care? Is it a problem?
Should I file a PR?
--joel
More information about the Gcc
mailing list