This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GNU C Library master sources branch master updated. glibc-2.19-447-ge13bccd


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, master has been updated
       via  e13bccd3de53227dd4d6ece08873e9bcdd76b08f (commit)
      from  4406c41c1d6088abf01c216e49700cd3f8f01fcc (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=e13bccd3de53227dd4d6ece08873e9bcdd76b08f

commit e13bccd3de53227dd4d6ece08873e9bcdd76b08f
Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com>
Date:   Tue May 20 16:07:49 2014 -0500

    PowerPC: Fix copysignf optimization macro
    
    This patch fixes the __copysignf optimized macro meant to internal libm
    usage when used with constant value.  Without the explicit cast to
    float, if it is used with const double value (for instance, on
    s_casinhf.c) double constants will be used and it may lead to precision
    issues in some algorithms.
    
    It fixes the following failures on PPC64/POWER7:
    
    Failure: Test: Real part of: cacos_downward (inf + 0 i)
    Result:
     is:          1.19209289550781250000e-07   0x1.00000000000000000000p-23
     should be:   0.00000000000000000000e+00   0x0.00000000000000000000p+0
    Failure: Test: Real part of: cacos_downward (inf - 0 i)
    Result:
     is:          1.19209289550781250000e-07   0x1.00000000000000000000p-23
     should be:   0.00000000000000000000e+00   0x0.00000000000000000000p+0
    Failure: Test: Real part of: cacos_downward (inf + 0.5 i)
    Result:
     is:          1.19209289550781250000e-07   0x1.00000000000000000000p-23
     should be:   0.00000000000000000000e+00   0x0.00000000000000000000p+0
    Failure: Test: Real part of: cacos_downward (inf - 0.5 i)
    Result:
     is:          1.19209289550781250000e-07   0x1.00000000000000000000p-23
     should be:   0.00000000000000000000e+00   0x0.00000000000000000000p+0
    Failure: Test: Real part of: cacos_towardzero (inf + 0 i)
    Result:
     is:          1.19209289550781250000e-07   0x1.00000000000000000000p-23
     should be:   0.00000000000000000000e+00   0x0.00000000000000000000p+0
    Failure: Test: Real part of: cacos_towardzero (inf - 0 i)
    Result:
     is:          1.19209289550781250000e-07   0x1.00000000000000000000p-23
     should be:   0.00000000000000000000e+00   0x0.00000000000000000000p+0
    Failure: Test: Real part of: cacos_towardzero (inf + 0.5 i)
    Result:
     is:          1.19209289550781250000e-07   0x1.00000000000000000000p-23
     should be:   0.00000000000000000000e+00   0x0.00000000000000000000p+0
    Failure: Test: Real part of: cacos_towardzero (inf - 0.5 i)
    Result:
     is:          1.19209289550781250000e-07   0x1.00000000000000000000p-23
     should be:   0.00000000000000000000e+00   0x0.00000000000000000000p+0

diff --git a/ChangeLog b/ChangeLog
index e87fc22..a6b2d94 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2014-05-20  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>
+
+	* sysdeps/powerpc/fpu/math_private.h [__copysignf]: Fix copysign macro
+	optimization when used with float constants.
+
 2014-05-20  Aurelien Jarno  <aurelien@aurel32.net>
 
 	[BZ #16915]
diff --git a/sysdeps/powerpc/fpu/math_private.h b/sysdeps/powerpc/fpu/math_private.h
index dde153d..1ec4881 100644
--- a/sysdeps/powerpc/fpu/math_private.h
+++ b/sysdeps/powerpc/fpu/math_private.h
@@ -166,11 +166,13 @@ __ieee754_sqrtf (float __x)
 # ifndef __copysignf
 #  define __copysignf(x, y)		\
     ({ float __z;			\
+       float __x = x;			\
+       float __y = y;			\
      __asm __volatile (			\
 	"	fcpsgn %0,%1,%2\n"	\
 	"	frsp %0,%0\n"		\
 		: "=f" (__z)		\
-		: "f" (y), "f" (x));	\
+		: "f" (__y), "f" (__x));\
      __z; })
 # endif
 

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                          |    5 +++++
 sysdeps/powerpc/fpu/math_private.h |    4 +++-
 2 files changed, 8 insertions(+), 1 deletions(-)


hooks/post-receive
-- 
GNU C Library master sources


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]