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.26.9000-952-g9d0ffa6


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  9d0ffa60ad88799b33ab6437ba0f29b39c019462 (commit)
      from  9574c7b68ddc9f2b940d412dca87592414274b48 (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=9d0ffa60ad88799b33ab6437ba0f29b39c019462

commit 9d0ffa60ad88799b33ab6437ba0f29b39c019462
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Thu Dec 7 10:11:02 2017 -0800

    x86-64: Add sinf with FMA
    
    On Skylake, bench-sinf reports performance improvement:
    
                Before        After         Improvement
    max        153.996       100.094           54%
    min        8.546         6.852             25%
    mean       18.1223       11.802            54%
    
    	* sysdeps/x86_64/fpu/multiarch/Makefile (libm-sysdep_routines):
    	Add s_sinf-sse2 and s_sinf-fma.
    	(CFLAGS-s_sinf-fma.c): New.
    	* sysdeps/x86_64/fpu/multiarch/s_sinf-fma.c: New file.
    	* sysdeps/x86_64/fpu/multiarch/s_sinf-sse2.c: Likewise.
    	* sysdeps/x86_64/fpu/multiarch/s_sinf.c: Likewise.

diff --git a/ChangeLog b/ChangeLog
index 37b73bf..910bf67 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,14 @@
 2017-12-07  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/x86_64/fpu/multiarch/Makefile (libm-sysdep_routines):
+	Add s_sinf-sse2 and s_sinf-fma.
+	(CFLAGS-s_sinf-fma.c): New.
+	* sysdeps/x86_64/fpu/multiarch/s_sinf-fma.c: New file.
+	* sysdeps/x86_64/fpu/multiarch/s_sinf-sse2.c: Likewise.
+	* sysdeps/x86_64/fpu/multiarch/s_sinf.c: Likewise.
+
+2017-12-07  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/x86_64/fpu/s_sinf.S: Removed.
 
 2017-12-07  Joseph Myers  <joseph@codesourcery.com>
diff --git a/NEWS b/NEWS
index 3065153..25a2116 100644
--- a/NEWS
+++ b/NEWS
@@ -9,8 +9,8 @@ Version 2.27
 
 Major new features:
 
-* Optimized x86-64 asin, atan2, exp, expf, log, pow, atan, sin 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, 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 c78624b..cab84bf 100644
--- a/sysdeps/x86_64/fpu/multiarch/Makefile
+++ b/sysdeps/x86_64/fpu/multiarch/Makefile
@@ -37,14 +37,17 @@ 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 += e_exp2f-fma e_expf-fma e_log2f-fma e_logf-fma \
-			e_powf-fma
+			e_powf-fma s_sinf-fma
 
 CFLAGS-e_exp2f-fma.c = -mfma -mavx2
 CFLAGS-e_expf-fma.c = -mfma -mavx2
 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
 
 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_sinf-fma.c b/sysdeps/x86_64/fpu/multiarch/s_sinf-fma.c
new file mode 100644
index 0000000..34440eb
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/s_sinf-fma.c
@@ -0,0 +1,2 @@
+#define SINF __sinf_fma
+#include <sysdeps/ieee754/flt-32/s_sinf.c>
diff --git a/sysdeps/x86_64/fpu/multiarch/s_sinf-sse2.c b/sysdeps/x86_64/fpu/multiarch/s_sinf-sse2.c
new file mode 100644
index 0000000..74e32c9
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/s_sinf-sse2.c
@@ -0,0 +1,2 @@
+#define SINF __sinf_sse2
+#include <sysdeps/ieee754/flt-32/s_sinf.c>
diff --git a/sysdeps/x86_64/fpu/multiarch/s_sinf.c b/sysdeps/x86_64/fpu/multiarch/s_sinf.c
new file mode 100644
index 0000000..831bc6f
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/s_sinf.c
@@ -0,0 +1,28 @@
+/* Multiple versions of sinf.
+   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_sinf (float);
+
+#define SYMBOL_NAME sinf
+#include "ifunc-fma.h"
+
+libc_ifunc_redirected (__redirect_sinf, __sinf, IFUNC_SELECTOR ());
+
+libm_alias_float (__sin, sin)

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

Summary of changes:
 ChangeLog                                  |    9 +++++++++
 NEWS                                       |    4 ++--
 sysdeps/x86_64/fpu/multiarch/Makefile      |    5 ++++-
 sysdeps/x86_64/fpu/multiarch/s_sinf-fma.c  |    2 ++
 sysdeps/x86_64/fpu/multiarch/s_sinf-sse2.c |    2 ++
 sysdeps/x86_64/fpu/multiarch/s_sinf.c      |   28 ++++++++++++++++++++++++++++
 6 files changed, 47 insertions(+), 3 deletions(-)
 create mode 100644 sysdeps/x86_64/fpu/multiarch/s_sinf-fma.c
 create mode 100644 sysdeps/x86_64/fpu/multiarch/s_sinf-sse2.c
 create mode 100644 sysdeps/x86_64/fpu/multiarch/s_sinf.c


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]