On Wed, May 13, 2009 at 1:51 PM, Duncan Sands
<duncan.sa...@math.u-psud.fr> wrote:
> Hi,
>
>> Sorry, I missed to mention that I used an additional option -mpc64 for
>> 32-bit GCC4.4.  It is not possible to generate SPECFP2000 expected
>> results  by GCC4.4 without this option. LLVM does not support this
>> option.  And this option can significantly improve the performance.  So
>> 32-bit comparison of SPECFP2000 should be taken with a grain of salt.
>
> what does -mpc64 do exactly?  The gcc docs say:
>  `-mpc64' rounds the the significands of results of floating-point operations 
> to 53 bits (double precision)
> Does this mean that a rounding operation is performed after each fp
> operation, or that optimizations are permitted that don't result in
> accurate extended double precision values as long as they are correct
> to 53 bits, or something else?
>
> The LLVM code generators have an option called -limit-float-precision:
>  -limit-float-precision=<uint>       - Generate low-precision inline 
> sequences for some float libcalls
> I'm not sure what it does exactly, but perhaps it is similar to -mpc64?

-mpc64 sets the x87 floating point control register to not use the 80bit
extended precision.  This causes some x87 floating point operations
to operate faster and there are no issues with the extra roundings you
get when storing an 80bit precision register to a 64bit memory location.

Does LLVM support x87 arithmetic at all or does it default to SSE
arithmetic in 32bits?  I guess using SSE math for both would be a more
fair comparison?

Richard.

Reply via email to