public inbox for glibc-cvs@sourceware.org
help / color / mirror / Atom feed
From: Szabolcs Nagy <nsz@sourceware.org>
To: glibc-cvs@sourceware.org
Subject: [glibc/arm/morello/main] Ensure calculations happen with desired rounding mode in y1lf128
Date: Wed, 26 Oct 2022 15:09:11 +0000 (GMT)	[thread overview]
Message-ID: <20221026150911.730493851532@sourceware.org> (raw)

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=3e279192749cfcae4ceebb1f21a3275e677d0561

commit 3e279192749cfcae4ceebb1f21a3275e677d0561
Author: Michael Hudson-Doyle <michael.hudson@canonical.com>
Date:   Fri Aug 12 11:29:31 2022 +1200

    Ensure calculations happen with desired rounding mode in y1lf128
    
    math/test-float128-y1 fails on x86_64 and ppc64el with gcc 12 and -O3,
    because code inside a block guarded by SET_RESTORE_ROUNDL is being moved
    after the rounding mode has been restored. Use math_force_eval to
    prevent this (and insert some math_opt_barrier calls to prevent code
    from being moved before the rounding mode is set).
    
    Fixes #29463
    
    Reviewed-By: Wilco Dijkstra <Wilco.Dijkstra@arm.com>
    (cherry picked from commit 2b274fd8c9c776cf70fcdb8356e678ada522a7b0)

Diff:
---
 NEWS                             | 1 +
 sysdeps/ieee754/ldbl-128/e_j1l.c | 3 +++
 2 files changed, 4 insertions(+)

diff --git a/NEWS b/NEWS
index 63e26d7062..bea1d8a11f 100644
--- a/NEWS
+++ b/NEWS
@@ -24,6 +24,7 @@ The following bugs are resolved with this release:
   [29446] _dlopen now ignores dl_caller argument in static mode
   [29485] Linux: Terminate subprocess on late failure in tst-pidfd
   [29490] alpha: New __brk_call implementation is broken
+  [29463] math/test-float128-y1 fails on x86_64
   [29528] elf: Call __libc_early_init for reused namespaces
   [29537] libc: [2.34 regression]: Alignment issue on m68k when using
   [29539] libc: LD_TRACE_LOADED_OBJECTS changed how vDSO library are
diff --git a/sysdeps/ieee754/ldbl-128/e_j1l.c b/sysdeps/ieee754/ldbl-128/e_j1l.c
index 54c457681a..9a9c5c6f00 100644
--- a/sysdeps/ieee754/ldbl-128/e_j1l.c
+++ b/sysdeps/ieee754/ldbl-128/e_j1l.c
@@ -869,10 +869,13 @@ __ieee754_y1l (_Float128 x)
     {
       /* 0 <= x <= 2 */
       SET_RESTORE_ROUNDL (FE_TONEAREST);
+      xx = math_opt_barrier (xx);
+      x = math_opt_barrier (x);
       z = xx * xx;
       p = xx * neval (z, Y0_2N, NY0_2N) / deval (z, Y0_2D, NY0_2D);
       p = -TWOOPI / xx + p;
       p = TWOOPI * __ieee754_logl (x) * __ieee754_j1l (x) + p;
+      math_force_eval (p);
       return p;
     }

                 reply	other threads:[~2022-10-26 15:09 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20221026150911.730493851532@sourceware.org \
    --to=nsz@sourceware.org \
    --cc=glibc-cvs@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).