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-629-g80bb593


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  80bb5935632faf8a8e94daf976340e549be9d4c5 (commit)
       via  5c7adbd8eded546eb6e17a82f5ab3b35def47f38 (commit)
      from  0ccc7153ccd8fbecefb0793a65cd5a85cdb099fc (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=80bb5935632faf8a8e94daf976340e549be9d4c5

commit 80bb5935632faf8a8e94daf976340e549be9d4c5
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Oct 22 08:07:48 2017 -0700

    x86-64: Add powf with FMA
    
    For workload-spec2017.wrf, on Skylake, it improves performance by:
    
                               Before            After     Improvement
    reciprocal-throughput      35.4713          27.3842       29%
    latency                    82.4537          66.3175       24%
    
    	* sysdeps/x86_64/fpu/multiarch/Makefile (libm-sysdep_routines):
    	Add e_powf-fma.
    	(CFLAGS-e_powf-fma.c): New.
    	* sysdeps/x86_64/fpu/multiarch/e_powf-fma.c: New file.
    	* sysdeps/x86_64/fpu/multiarch/e_powf.c: Likewise.

diff --git a/ChangeLog b/ChangeLog
index 7e904db..28df1d2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,14 @@
 2017-10-22  H.J. Lu  <hongjiu.lu@intel.com>
 
 	* sysdeps/x86_64/fpu/multiarch/Makefile (libm-sysdep_routines):
+	Add e_powf-fma.
+	(CFLAGS-e_powf-fma.c): New.
+	* sysdeps/x86_64/fpu/multiarch/e_powf-fma.c: New file.
+	* sysdeps/x86_64/fpu/multiarch/e_powf.c: Likewise.
+
+2017-10-22  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* sysdeps/x86_64/fpu/multiarch/Makefile (libm-sysdep_routines):
 	Add e_log2f-fma.
 	(CFLAGS-e_log2f-fma.c): New.
 	* sysdeps/x86_64/fpu/multiarch/e_log2f-fma.c: New file.
diff --git a/sysdeps/x86_64/fpu/multiarch/Makefile b/sysdeps/x86_64/fpu/multiarch/Makefile
index 5338a6b..c78624b 100644
--- a/sysdeps/x86_64/fpu/multiarch/Makefile
+++ b/sysdeps/x86_64/fpu/multiarch/Makefile
@@ -37,12 +37,14 @@ CFLAGS-slowpow-fma.c = -mfma -mavx2
 CFLAGS-s_sin-fma.c = -mfma -mavx2
 CFLAGS-s_tan-fma.c = -mfma -mavx2
 
-libm-sysdep_routines += e_exp2f-fma e_expf-fma e_log2f-fma e_logf-fma
+libm-sysdep_routines += e_exp2f-fma e_expf-fma e_log2f-fma e_logf-fma \
+			e_powf-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
 
 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/e_powf-fma.c b/sysdeps/x86_64/fpu/multiarch/e_powf-fma.c
new file mode 100644
index 0000000..fdf5dcc
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/e_powf-fma.c
@@ -0,0 +1,3 @@
+#define __powf __powf_fma
+
+#include <sysdeps/ieee754/flt-32/e_powf.c>
diff --git a/sysdeps/x86_64/fpu/multiarch/e_powf.c b/sysdeps/x86_64/fpu/multiarch/e_powf.c
new file mode 100644
index 0000000..c110dba
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/e_powf.c
@@ -0,0 +1,43 @@
+/* Multiple versions of powf.
+   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/>.  */
+
+#define powf __redirect_powf
+#define __DECL_SIMD___redirect_powf
+#include <math.h>
+#undef powf
+
+#define SYMBOL_NAME powf
+#include "ifunc-fma.h"
+
+libc_ifunc_redirected (__redirect_powf, __powf, IFUNC_SELECTOR ());
+
+#ifdef SHARED
+__hidden_ver1 (__powf, __GI___powf, __redirect_powf)
+  __attribute__ ((visibility ("hidden")));
+
+# include <shlib-compat.h>
+versioned_symbol (libm, __powf, powf, GLIBC_2_27);
+#else
+weak_alias (__powf, powf)
+#endif
+
+strong_alias (__powf, __ieee754_powf)
+strong_alias (__powf, __powf_finite)
+
+#define __powf __powf_sse2
+#include <sysdeps/ieee754/flt-32/e_powf.c>

http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=5c7adbd8eded546eb6e17a82f5ab3b35def47f38

commit 5c7adbd8eded546eb6e17a82f5ab3b35def47f38
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Oct 22 08:06:46 2017 -0700

    x86-64: Add log2f with FMA
    
    For workload-spec2017.wrf, on Skylake, it improves performance by:
    
                               Before            After     Improvement
    reciprocal-throughput      16.5937          14.0789       17%
    latency                    41.7755          35.3586       18%
    
    	* sysdeps/x86_64/fpu/multiarch/Makefile (libm-sysdep_routines):
    	Add e_log2f-fma.
    	(CFLAGS-e_log2f-fma.c): New.
    	* sysdeps/x86_64/fpu/multiarch/e_log2f-fma.c: New file.
    	* sysdeps/x86_64/fpu/multiarch/e_log2f.c: Likewise.

diff --git a/ChangeLog b/ChangeLog
index 603cdae..7e904db 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,14 @@
 2017-10-22  H.J. Lu  <hongjiu.lu@intel.com>
 
 	* sysdeps/x86_64/fpu/multiarch/Makefile (libm-sysdep_routines):
+	Add e_log2f-fma.
+	(CFLAGS-e_log2f-fma.c): New.
+	* sysdeps/x86_64/fpu/multiarch/e_log2f-fma.c: New file.
+	* sysdeps/x86_64/fpu/multiarch/e_log2f.c: Likewise.
+
+2017-10-22  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* sysdeps/x86_64/fpu/multiarch/Makefile (libm-sysdep_routines):
 	Add e_logf-fma.
 	(CFLAGS-e_logf-fma.c): New.
 	* sysdeps/x86_64/fpu/multiarch/e_logf-fma.c: New file.
diff --git a/sysdeps/x86_64/fpu/multiarch/Makefile b/sysdeps/x86_64/fpu/multiarch/Makefile
index 97d886a..5338a6b 100644
--- a/sysdeps/x86_64/fpu/multiarch/Makefile
+++ b/sysdeps/x86_64/fpu/multiarch/Makefile
@@ -37,10 +37,11 @@ CFLAGS-slowpow-fma.c = -mfma -mavx2
 CFLAGS-s_sin-fma.c = -mfma -mavx2
 CFLAGS-s_tan-fma.c = -mfma -mavx2
 
-libm-sysdep_routines += e_exp2f-fma e_expf-fma e_logf-fma
+libm-sysdep_routines += e_exp2f-fma e_expf-fma e_log2f-fma e_logf-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
 
 libm-sysdep_routines += e_exp-fma4 e_log-fma4 e_pow-fma4 s_atan-fma4 \
diff --git a/sysdeps/x86_64/fpu/multiarch/e_log2f-fma.c b/sysdeps/x86_64/fpu/multiarch/e_log2f-fma.c
new file mode 100644
index 0000000..8a76b83
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/e_log2f-fma.c
@@ -0,0 +1,3 @@
+#define __log2f __log2f_fma
+
+#include <sysdeps/ieee754/flt-32/e_log2f.c>
diff --git a/sysdeps/x86_64/fpu/multiarch/e_log2f.c b/sysdeps/x86_64/fpu/multiarch/e_log2f.c
new file mode 100644
index 0000000..be12c45
--- /dev/null
+++ b/sysdeps/x86_64/fpu/multiarch/e_log2f.c
@@ -0,0 +1,40 @@
+/* Multiple versions of log2f.
+   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_log2f (float);
+
+#define SYMBOL_NAME log2f
+#include "ifunc-fma.h"
+
+libc_ifunc_redirected (__redirect_log2f, __log2f, IFUNC_SELECTOR ());
+
+#ifdef SHARED
+__hidden_ver1 (__log2f, __GI___log2f, __redirect_log2f)
+  __attribute__ ((visibility ("hidden")));
+
+# include <shlib-compat.h>
+versioned_symbol (libm, __log2f, log2f, GLIBC_2_27);
+#else
+weak_alias (__log2f, log2f)
+#endif
+
+strong_alias (__log2f, __ieee754_log2f)
+strong_alias (__log2f, __log2f_finite)
+
+#define __log2f __log2f_sse2
+#include <sysdeps/ieee754/flt-32/e_log2f.c>

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

Summary of changes:
 ChangeLog                                  |   16 ++++++++++
 sysdeps/x86_64/fpu/multiarch/Makefile      |    5 ++-
 sysdeps/x86_64/fpu/multiarch/e_log2f-fma.c |    3 ++
 sysdeps/x86_64/fpu/multiarch/e_log2f.c     |   40 ++++++++++++++++++++++++++
 sysdeps/x86_64/fpu/multiarch/e_powf-fma.c  |    3 ++
 sysdeps/x86_64/fpu/multiarch/e_powf.c      |   43 ++++++++++++++++++++++++++++
 6 files changed, 109 insertions(+), 1 deletions(-)
 create mode 100644 sysdeps/x86_64/fpu/multiarch/e_log2f-fma.c
 create mode 100644 sysdeps/x86_64/fpu/multiarch/e_log2f.c
 create mode 100644 sysdeps/x86_64/fpu/multiarch/e_powf-fma.c
 create mode 100644 sysdeps/x86_64/fpu/multiarch/e_powf.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]