From patchwork Sun May 25 01:59:24 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Miller X-Patchwork-Id: 1134 Received: (qmail 14427 invoked by alias); 25 May 2014 01:59:35 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 14389 invoked by uid 89); 25 May 2014 01:59:30 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.8 required=5.0 tests=AWL, BAYES_00 autolearn=ham version=3.3.2 X-HELO: shards.monkeyblade.net Date: Sat, 24 May 2014 21:59:24 -0400 (EDT) Message-Id: <20140524.215924.291968172076422168.davem@davemloft.net> To: libc-alpha@sourceware.org Subject: [PATCH] Fix excessive ULP for y1_upward (0x2p+0) in test-float and test-ifloat. From: David Miller Mime-Version: 1.0 Ok for mainline? * sysdeps/ieee754/flt-32/e_j1f.c (__ieee754_y1f): Force computations to occur in round to nearest mode when |x| >= 2.0 --- ChangeLog | 5 +++++ sysdeps/ieee754/flt-32/e_j1f.c | 1 + 2 files changed, 6 insertions(+) diff --git a/ChangeLog b/ChangeLog index 271e31d..1dd5794 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2014-05-24 David S. Miller + + * sysdeps/ieee754/flt-32/e_j1f.c (__ieee754_y1f): Force computations + to occur in round to nearest mode when |x| >= 2.0 + 2014-05-23 Richard Henderson * nptl/pt-vfork.c (vfork_resolve): Rename from vfork_ifunc. diff --git a/sysdeps/ieee754/flt-32/e_j1f.c b/sysdeps/ieee754/flt-32/e_j1f.c index cb9f97f..a180968 100644 --- a/sysdeps/ieee754/flt-32/e_j1f.c +++ b/sysdeps/ieee754/flt-32/e_j1f.c @@ -107,6 +107,7 @@ __ieee754_y1f(float x) return -HUGE_VALF+x; /* -inf and overflow exception. */ if(__builtin_expect(hx<0, 0)) return zero/(zero*x); if(ix >= 0x40000000) { /* |x| >= 2.0 */ + SET_RESTORE_ROUNDF (FE_TONEAREST); __sincosf (x, &s, &c); ss = -s-c; cc = s-c;