This is the mail archive of the
glibc-cvs@sourceware.org
mailing list for the glibc project.
GNU C Library master sources branch master updated. glibc-2.26.9000-967-gac817e0
- From: hjl at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 12 Dec 2017 23:33:18 -0000
- Subject: GNU C Library master sources branch master updated. glibc-2.26.9000-967-gac817e0
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 ac817e083b37a5c25d05cde8bde302d7a93ffc5e (commit)
from eb4285768bb0608e2c3381d0a5214cae83b1f282 (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=ac817e083b37a5c25d05cde8bde302d7a93ffc5e
commit ac817e083b37a5c25d05cde8bde302d7a93ffc5e
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Tue Dec 12 15:32:58 2017 -0800
x86-64: Add cosf with FMA
On Skylake, bench-cosf reports performance improvement:
Before After Improvement
max 135.362 94.552 43%
min 8.532 7.688 11%
mean 17.1446 11.8128 45%
* sysdeps/x86_64/fpu/multiarch/Makefile (libm-sysdep_routines):
Add s_cosf-sse2 and s_cosf-fma.
(CFLAGS-s_cosf-fma.c): New.
* sysdeps/x86_64/fpu/multiarch/s_cosf-fma.c: New file.
* sysdeps/x86_64/fpu/multiarch/s_cosf-sse2.c: Likewise.
* sysdeps/x86_64/fpu/multiarch/s_cosf.c: Likewise.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
diff --git a/ChangeLog b/ChangeLog
index 817f0d3..2ceae53 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2017-12-12 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/x86_64/fpu/multiarch/Makefile (libm-sysdep_routines):
+ Add s_cosf-sse2 and s_cosf-fma.
+ (CFLAGS-s_cosf-fma.c): New.
+ * sysdeps/x86_64/fpu/multiarch/s_cosf-fma.c: New file.
+ * sysdeps/x86_64/fpu/multiarch/s_cosf-sse2.c: Likewise.
+ * sysdeps/x86_64/fpu/multiarch/s_cosf.c: Likewise.
+
2017-12-12 Steve Ellcey <sellcey@cavium.com>
* nscd/nscd.h (init_traced_file): Change strncpy to memcpy.
diff --git a/NEWS b/NEWS
index c6d859c..2dd0c16 100644
--- a/NEWS
+++ b/NEWS
@@ -9,8 +9,9 @@ Version 2.27
Major new features:
-* Optimized x86-64 asin, atan2, exp, expf, log, pow, atan, sin, sinf and
- tan with FMA, contributed by Arjan van de Ven and H.J. Lu from Intel.
+* Optimized x86-64 asin, atan2, exp, expf, log, pow, atan, sin, cosf,
+ sinf and tan with FMA, contributed by Arjan van de Ven and H.J. Lu
+ from Intel.
* Optimized x86-64 trunc and truncf for processors with SSE4.1.
diff --git a/sysdeps/x86_64/fpu/multiarch/Makefile b/sysdeps/x86_64/fpu/multiarch/Makefile
index cab84bf..0825340 100644
--- a/sysdeps/x86_64/fpu/multiarch/Makefile
+++ b/sysdeps/x86_64/fpu/multiarch/Makefile
@@ -37,10 +37,10 @@ CFLAGS-slowpow-fma.c = -mfma -mavx2
CFLAGS-s_sin-fma.c = -mfma -mavx2
CFLAGS-s_tan-fma.c = -mfma -mavx2
-libm-sysdep_routines += s_sinf-sse2
+libm-sysdep_routines += s_sinf-sse2 s_cosf-sse2
libm-sysdep_routines += e_exp2f-fma e_expf-fma e_log2f-fma e_logf-fma \
- e_powf-fma s_sinf-fma
+ e_powf-fma s_sinf-fma s_cosf-fma
CFLAGS-e_exp2f-fma.c = -mfma -mavx2
CFLAGS-e_expf-fma.c = -mfma -mavx2
@@ -48,6 +48,7 @@ CFLAGS-e_log2f-fma.c = -mfma -mavx2
CFLAGS-e_logf-fma.c = -mfma -mavx2
CFLAGS-e_powf-fma.c = -mfma -mavx2
CFLAGS-s_sinf-fma.c = -mfma -mavx2
+CFLAGS-s_cosf-fma.c = -mfma -mavx2
libm-sysdep_routines += e_exp-fma4 e_log-fma4 e_pow-fma4 s_atan-fma4 \
e_asin-fma4 e_atan2-fma4 s_sin-fma4 s_tan-fma4 \
diff --git a/sysdeps/x86_64/fpu/multiarch/s_cosf-fma.c b/sysdeps/x86_64/fpu/multiarch/s_cosf-fma.c
new file mode 100644
index 0000000..5f9191a
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/s_cosf-fma.c
@@ -0,0 +1,2 @@
+#define COSF __cosf_fma
+#include <sysdeps/ieee754/flt-32/s_cosf.c>
diff --git a/sysdeps/x86_64/fpu/multiarch/s_cosf-sse2.c b/sysdeps/x86_64/fpu/multiarch/s_cosf-sse2.c
new file mode 100644
index 0000000..87cf42a
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/s_cosf-sse2.c
@@ -0,0 +1,2 @@
+#define COSF __cosf_sse2
+#include <sysdeps/ieee754/flt-32/s_cosf.c>
diff --git a/sysdeps/x86_64/fpu/multiarch/s_cosf.c b/sysdeps/x86_64/fpu/multiarch/s_cosf.c
new file mode 100644
index 0000000..356c3b6
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/s_cosf.c
@@ -0,0 +1,28 @@
+/* Multiple versions of cosf.
+ Copyright (C) 2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <libm-alias-float.h>
+
+extern float __redirect_cosf (float);
+
+#define SYMBOL_NAME cosf
+#include "ifunc-fma.h"
+
+libc_ifunc_redirected (__redirect_cosf, __cosf, IFUNC_SELECTOR ());
+
+libm_alias_float (__cos, cos)
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 9 +++++++++
NEWS | 5 +++--
sysdeps/x86_64/fpu/multiarch/Makefile | 5 +++--
sysdeps/x86_64/fpu/multiarch/s_cosf-fma.c | 2 ++
sysdeps/x86_64/fpu/multiarch/s_cosf-sse2.c | 2 ++
sysdeps/x86_64/fpu/multiarch/s_cosf.c | 28 ++++++++++++++++++++++++++++
6 files changed, 47 insertions(+), 4 deletions(-)
create mode 100644 sysdeps/x86_64/fpu/multiarch/s_cosf-fma.c
create mode 100644 sysdeps/x86_64/fpu/multiarch/s_cosf-sse2.c
create mode 100644 sysdeps/x86_64/fpu/multiarch/s_cosf.c
hooks/post-receive
--
GNU C Library master sources