Port-amd64 archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Changing the default i387 precision



Joerg Sonnenberger <joerg%britannica.bec.de@localhost> writes:

> On Sat, May 04, 2013 at 08:50:29AM -0400, Greg Troxel wrote:
>> 
>> Joerg Sonnenberger <joerg%britannica.bec.de@localhost> writes:
>> 
>> > On Sat, May 04, 2013 at 07:14:00AM -0400, Greg Troxel wrote:
>> >> So are you proposing then
>> >> 
>> >>   1) Make gcc and clang use larger storage (maybe already true) and avoid
>> >>   SSE instructions for variables declared as long double?
>> >
>> > That's already the case. long double computations always use the i387.
>> > The point is that I want them to get the extended precision.
>> 
>> If what you want to do now is to change the way rounding is handled so
>> that:
>> 
>>    long double variables get the 80-bit precision
>> 
>> without
>> 
>>    making (non-long) doubles get results that don't comply with IEEE754
>>    (by using extended precision intermedate values)
>> 
>> then that sounds fine.  But I can't really tell what you want to change.
>
> ISO C99 specifies rules on when the compiler is allowed to use a higher
> precision for intermediate values and when not. That includes macros for
> deciding what types the math is done in. We get away with our hack
> mostly because underflow/overflow are rare enough that the larger
> exponent is not visible. See also -ffloat-store and
> -fexcess-precision=standard.

I still cannot follow exactly what you are proposing to change.

Attachment: pgpiwIO_LyWlc.pgp
Description: PGP signature



Home | Main Index | Thread Index | Old Index