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-624-g5d15c96


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  5d15c9697577d2c342b5ade820bfd7b84a736b23 (commit)
      from  b2f6137ea570933fb4be286574cc58b794eb5b5f (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=5d15c9697577d2c342b5ade820bfd7b84a736b23

commit 5d15c9697577d2c342b5ade820bfd7b84a736b23
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Oct 22 07:55:49 2017 -0700

    x86-64: Add exp2f with FMA
    
    For workload-spec2017.wrf, on Skylake, it improves performance by:
    
                               Before            After     Improvement
    reciprocal-throughput      13.0291          11.2225       16%
    latency                    44.5154          37.5766       18%
    
    	* sysdeps/x86_64/fpu/multiarch/Makefile (libm-sysdep_routines):
    	Add e_exp2f-fma.
    	(CFLAGS-e_exp2f-fma.c): New.
    	* sysdeps/x86_64/fpu/multiarch/e_exp2f-fma.c: New file.
    	* sysdeps/x86_64/fpu/multiarch/e_exp2f.c: Likewise.

diff --git a/ChangeLog b/ChangeLog
index 5aca573..2fa1ddc 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,13 @@
 2017-10-22  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/x86_64/fpu/multiarch/Makefile (libm-sysdep_routines):
+	Add e_exp2f-fma.
+	(CFLAGS-e_exp2f-fma.c): New.
+	* sysdeps/x86_64/fpu/multiarch/e_exp2f-fma.c: New file.
+	* sysdeps/x86_64/fpu/multiarch/e_exp2f.c: Likewise.
+
+2017-10-22  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/i386/fpu/e_exp2f_data.c: Removed.
 	* sysdeps/i386/fpu/e_expf.S: Likewise.
 	* sysdeps/i386/fpu/math_errf.c: Likewise.
diff --git a/sysdeps/x86_64/fpu/multiarch/Makefile b/sysdeps/x86_64/fpu/multiarch/Makefile
index 92e91d7..71a3b33 100644
--- a/sysdeps/x86_64/fpu/multiarch/Makefile
+++ b/sysdeps/x86_64/fpu/multiarch/Makefile
@@ -37,8 +37,9 @@ CFLAGS-slowpow-fma.c = -mfma -mavx2
 CFLAGS-s_sin-fma.c = -mfma -mavx2
 CFLAGS-s_tan-fma.c = -mfma -mavx2
 
-libm-sysdep_routines += e_expf-fma
+libm-sysdep_routines += e_exp2f-fma e_expf-fma
 
+CFLAGS-e_exp2f-fma.c = -mfma -mavx2
 CFLAGS-e_expf-fma.c = -mfma -mavx2
 
 libm-sysdep_routines += e_exp-fma4 e_log-fma4 e_pow-fma4 s_atan-fma4 \
diff --git a/sysdeps/x86_64/fpu/multiarch/e_exp2f-fma.c b/sysdeps/x86_64/fpu/multiarch/e_exp2f-fma.c
new file mode 100644
index 0000000..c915a50
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/e_exp2f-fma.c
@@ -0,0 +1,3 @@
+#define __exp2f __exp2f_fma
+
+#include <sysdeps/ieee754/flt-32/e_exp2f.c>
diff --git a/sysdeps/x86_64/fpu/multiarch/e_exp2f.c b/sysdeps/x86_64/fpu/multiarch/e_exp2f.c
new file mode 100644
index 0000000..13cfcf9
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/e_exp2f.c
@@ -0,0 +1,37 @@
+/* Multiple versions of exp2f.
+   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/>.  */
+
+extern float __redirect_exp2f (float);
+
+#define SYMBOL_NAME exp2f
+#include "ifunc-fma.h"
+
+libc_ifunc_redirected (__redirect_exp2f, __exp2f, IFUNC_SELECTOR ());
+
+#ifdef SHARED
+# include <shlib-compat.h>
+versioned_symbol (libm, __exp2f, exp2f, GLIBC_2_27);
+#else
+weak_alias (__exp2f, exp2f)
+#endif
+
+strong_alias (__exp2f, __ieee754_exp2f)
+strong_alias (__exp2f, __exp2f_finite)
+
+#define __exp2f __exp2f_sse2
+#include <sysdeps/ieee754/flt-32/e_exp2f.c>

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

Summary of changes:
 ChangeLog                                          |    8 +++++
 sysdeps/x86_64/fpu/multiarch/Makefile              |    3 +-
 sysdeps/x86_64/fpu/multiarch/e_exp2f-fma.c         |    3 ++
 .../multiarch/e_exp2f.c}                           |   28 +++++++++++--------
 4 files changed, 29 insertions(+), 13 deletions(-)
 create mode 100644 sysdeps/x86_64/fpu/multiarch/e_exp2f-fma.c
 copy sysdeps/x86_64/{multiarch/memmove-sse2-unaligned-erms.S => fpu/multiarch/e_exp2f.c} (65%)


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]