This is the mail archive of the
glibc-cvs@sourceware.org
mailing list for the glibc project.
GNU C Library master sources branch hjl/expf/master updated. glibc-2.26-110-g5a56ddf
- From: hjl at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 15 Aug 2017 18:46:55 -0000
- Subject: GNU C Library master sources branch hjl/expf/master updated. glibc-2.26-110-g5a56ddf
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, hjl/expf/master has been updated
via 5a56ddfab28a2e4f3a6d97f0aba9fc8c8d60ea44 (commit)
via ca8de64be31d2ff2eecd19088e3a3d7311b1f43a (commit)
via 3c4343b1df453bc39d1d9fd4e06e99666d8306d4 (commit)
from a13f5e6e34a6160607c8ce9448c618b9ae024364 (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=5a56ddfab28a2e4f3a6d97f0aba9fc8c8d60ea44
commit 5a56ddfab28a2e4f3a6d97f0aba9fc8c8d60ea44
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Tue Aug 15 11:43:31 2017 -0700
Use one more FMA in e_expf-fma.S
diff --git a/sysdeps/x86_64/fpu/multiarch/e_expf-fma.S b/sysdeps/x86_64/fpu/multiarch/e_expf-fma.S
index 5d338ea..0b99a65 100644
--- a/sysdeps/x86_64/fpu/multiarch/e_expf-fma.S
+++ b/sysdeps/x86_64/fpu/multiarch/e_expf-fma.S
@@ -161,8 +161,7 @@ L(near_under_or_overflow):
vaddsd L(DP_P0)(%rip), %xmm3, %xmm3/* DP P2*z+P0 */
vmovd %rdx, %xmm1 /* DP 2^n */
vmulsd %xmm2, %xmm4, %xmm4 /* DP (P3*z+P1)*z */
- vmulsd %xmm3, %xmm0, %xmm0 /* DP (P2*z+P0)*y */
- vaddsd %xmm4, %xmm0, %xmm0 /* DP P(y) */
+ vfmadd213sd %xmm4, %xmm3, %xmm0 /* DP (P2*z+P0)*y */
vmulsd (%rsi,%rax,8), %xmm0, %xmm0/* DP P(y)*T[j] */
vaddsd (%rsi,%rax,8), %xmm0, %xmm0/* DP T[j]*(P(y)+1) */
vmulsd %xmm1, %xmm0, %xmm0 /* DP result=2^n*(T[j]*(P(y)+1)) */
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=ca8de64be31d2ff2eecd19088e3a3d7311b1f43a
commit ca8de64be31d2ff2eecd19088e3a3d7311b1f43a
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Tue Aug 15 11:17:02 2017 -0700
Update e_expf-fma.S
diff --git a/sysdeps/x86_64/fpu/multiarch/e_expf-fma.S b/sysdeps/x86_64/fpu/multiarch/e_expf-fma.S
index e158e23..5d338ea 100644
--- a/sysdeps/x86_64/fpu/multiarch/e_expf-fma.S
+++ b/sysdeps/x86_64/fpu/multiarch/e_expf-fma.S
@@ -94,7 +94,7 @@ ENTRY(__ieee754_expf_fma)
.p2align 4
L(small_arg):
/* Here if 0<=|x|<2^(-28) */
- addss L(SP_ONE)(%rip), %xmm0 /* 1.0 + x */
+ vaddss L(SP_ONE)(%rip), %xmm0, %xmm0 /* 1.0 + x */
/* Return 1.0 with inexact raised, except for x==0 */
ret
@@ -111,7 +111,7 @@ L(special_paths):
jae L(arg_inf_or_nan)
/* Here if |x|>under/overflow bound, and x is finite */
- testq %rax, %rax /* sign of x nonzero ? */
+ testl %eax, %eax /* sign of x nonzero ? */
je L(res_overflow)
/* Here if -inf<x<underflow bound (x<0) */
@@ -146,7 +146,7 @@ L(arg_nan):
L(near_under_or_overflow):
/* Here if 125*log(2)<=|x|<under/overflow bound */
vmovq %xmm2, %rax /* bits of n*K+j with trash */
- vsubsd L(DP_RD)(%rip), %xmm2, %xmm2 /* DP t=round(x*K/log(2)) */
+ vsubsd L(DP_RD)(%rip), %xmm2, %xmm2 /* DP t=round(x*K/log(2)) */
movl %eax, %edx /* n*K+j with trash */
andl $0x3f, %eax /* bits of j */
vmulsd L(DP_NLN2K)(%rip),%xmm2, %xmm2/* DP -t*log(2)/K */
@@ -159,7 +159,7 @@ L(near_under_or_overflow):
shlq $46, %rdx /* DP 2^n */
vaddsd L(DP_P1)(%rip), %xmm4, %xmm4/* DP P3*z+P1 */
vaddsd L(DP_P0)(%rip), %xmm3, %xmm3/* DP P2*z+P0 */
- movd %rdx, %xmm1 /* DP 2^n */
+ vmovd %rdx, %xmm1 /* DP 2^n */
vmulsd %xmm2, %xmm4, %xmm4 /* DP (P3*z+P1)*z */
vmulsd %xmm3, %xmm0, %xmm0 /* DP (P2*z+P0)*y */
vaddsd %xmm4, %xmm0, %xmm0 /* DP P(y) */
@@ -288,12 +288,7 @@ L(DP_P0): /* double precision polynomial coefficient P0 */
.type L(DP_P0), @object
ASM_SIZE_DIRECTIVE(L(DP_P0))
- .p2align 2
-L(SP_KLN2): /* single precision K/log(2) */
- .long 0x42b8aa3b
- .type L(SP_KLN2), @object
- ASM_SIZE_DIRECTIVE(L(SP_KLN2))
-
+ .section .rodata.cst4,"aM",@progbits,4
.p2align 2
L(SP_RANGE): /* single precision overflow/underflow bounds */
.long 0x42b17217 /* if x>this bound, then result overflows */
@@ -301,7 +296,6 @@ L(SP_RANGE): /* single precision overflow/underflow bounds */
.type L(SP_RANGE), @object
ASM_SIZE_DIRECTIVE(L(SP_RANGE))
- .section .rodata.cst4,"aM",@progbits,4
.p2align 2
L(SP_INF_0):
.long 0x7f800000 /* single precision Inf */
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=3c4343b1df453bc39d1d9fd4e06e99666d8306d4
commit 3c4343b1df453bc39d1d9fd4e06e99666d8306d4
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Tue Aug 15 11:03:41 2017 -0700
Fix x86-64: Put L(SP_INF_0) in .rodata.cst4 section
diff --git a/sysdeps/x86_64/fpu/e_expf.S b/sysdeps/x86_64/fpu/e_expf.S
index 0d84e31..29e421b 100644
--- a/sysdeps/x86_64/fpu/e_expf.S
+++ b/sysdeps/x86_64/fpu/e_expf.S
@@ -297,6 +297,7 @@ L(DP_P0): /* double precision polynomial coefficient P0 */
.type L(DP_P0), @object
ASM_SIZE_DIRECTIVE(L(DP_P0))
+ .section .rodata.cst4,"aM",@progbits,4
.p2align 2
L(SP_RANGE): /* single precision overflow/underflow bounds */
.long 0x42b17217 /* if x>this bound, then result overflows */
@@ -304,7 +305,6 @@ L(SP_RANGE): /* single precision overflow/underflow bounds */
.type L(SP_RANGE), @object
ASM_SIZE_DIRECTIVE(L(SP_RANGE))
- .section .rodata.cst4,"aM",@progbits,4
.p2align 2
L(SP_INF_0):
.long 0x7f800000 /* single precision Inf */
-----------------------------------------------------------------------
Summary of changes:
sysdeps/x86_64/fpu/e_expf.S | 2 +-
sysdeps/x86_64/fpu/multiarch/e_expf-fma.S | 19 ++++++-------------
2 files changed, 7 insertions(+), 14 deletions(-)
hooks/post-receive
--
GNU C Library master sources