PATCH: [BZ #14803] Different ULPs depending on size of long int in GCC
Joseph S. Myers
joseph@codesourcery.com
Mon Nov 5 02:42:00 GMT 2012
On Sun, 4 Nov 2012, H.J. Lu wrote:
> Hi,
>
> GCC generates encodes float-pointing constants slightly different,
> depend on size of long int. This patch uses hex float for one
> problematic 96-bit long double constant. Tested on x86-64 with x32
> GCC and x86-64 GCC. OK to install?
Did you make sure that the hex float you chose for this half-way value is
the correct one to add to pio2_lo to create an accurate approximation to
pi/2? (If neither is - if pio2_lo is actually pi/2 minus the 65-bit value
that was wrongly given for pio2_hi - then you should replace both
constants, pio2_hi by the correct result of rounding pi/2 to 64-bit, to
nearest, and pio2_lo by the correct result of rounding pi/2 - pio2_hi, to
nearest.)
Also, is pio4_hi the correct value of pio2_hi/2 after your patch? It's
probably a good idea to replace all three constants with hex float values
at the same time, to make sure they all match up properly.
--
Joseph S. Myers
joseph@codesourcery.com
More information about the Libc-alpha
mailing list