This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: AArch64 patches for glibc master.
- From: Marcus Shawcroft <marcus dot shawcroft at linaro dot org>
- To: "Joseph S. Myers" <joseph at codesourcery dot com>
- Cc: "Carlos O'Donell" <carlos at redhat dot com>, GNU C Library <libc-alpha at sourceware dot org>
- Date: Wed, 11 Dec 2013 23:26:11 +0000
- Subject: Re: AArch64 patches for glibc master.
- Authentication-results: sourceware.org; auth=none
- References: <52A60A93 dot 1050402 at redhat dot com> <Pine dot LNX dot 4 dot 64 dot 1312091852010 dot 17984 at digraph dot polyomino dot org dot uk>
Hi,
On 9 December 2013 18:56, Joseph S. Myers <joseph@codesourcery.com> wrote:
> * You're adding ulps for sqrt, which should always be exact.
This issue appears to be that sysdeps/ieee754/dbl-64/e_sqrt.c is
compiled without -ffp-contract=off and the compiler takes the
opportunity to use an fnmsub (negated fused multiply-subtract).
Inspection of sysdeps/ieee754/dbl-64/Makefile suggests that we assume
-ffp-contract=fast and target specific source files with
-ffp-contract=off rather than taking the conservative approach of
defaulting to -ffp-contract=off and calling out individual files with
-ffp-contract=fast.
Extending the existing mechanism to pass -ffp-contract=off for
e_sqrt.c is trivial, but is this the right approach, I'm not sure how
to go about proving that we don't have similar issues lurking latent
elsewhere in ieee754/* which may surface when a future version of gcc
figures out how to make more extensive use of fused multiply
instructions.
Cheers
/Marcus