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.24-538-gcfee7d9
- From: azanella at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 27 Dec 2016 19:44:47 -0000
- Subject: GNU C Library master sources branch master updated. glibc-2.24-538-gcfee7d9
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 cfee7d9cf403a1f801784c0d6f1d72994911d9d8 (commit)
from c32bb03c38d76cdc7147ce0441d5eac3ed576152 (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=cfee7d9cf403a1f801784c0d6f1d72994911d9d8
commit cfee7d9cf403a1f801784c0d6f1d72994911d9d8
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date: Fri Dec 16 19:13:14 2016 +0000
powerpc: Remove f{max,min}{f} assembly implementations
This patch removes the powerpc assembly implementation of fmax/fmin.
Based on benchtests, the assembly ones shows:
$ ./testrun.sh benchtests/bench-fmax
"fmax": {
"": {
"duration": 5.07586e+09,
"iterations": 2.01676e+09,
"max": 1350.39,
"min": 2.073,
"mean": 2.51684
},
"qNaN": {
"duration": 5.09315e+09,
"iterations": 8.4568e+08,
"max": 2788,
"min": 5.806,
"mean": 6.02255
},
"sNaN": {
"duration": 5.09073e+09,
"iterations": 8.42316e+08,
"max": 4215.84,
"min": 5.737,
"mean": 6.04373
}
And
$ ./testrun.sh benchtests/bench-fmin
"fmin": {
"": {
"duration": 5.07711e+09,
"iterations": 2.02982e+09,
"max": 497.094,
"min": 2.073,
"mean": 2.50126
},
"qNaN": {
"duration": 5.09134e+09,
"iterations": 8.46968e+08,
"max": 2255.14,
"min": 5.807,
"mean": 6.01125
},
"sNaN": {
"duration": 5.09122e+09,
"iterations": 8.4746e+08,
"max": 1969.38,
"min": 5.729,
"mean": 6.00763
}
}
The default implementation (math/s_f{max.min}_template.c) shows slight better
latency for all cases:
$ ./testrun.sh benchtests/bench-fmax
"fmax": {
"": {
"duration": 5.07044e+09,
"iterations": 2.38695e+09,
"max": 2048.58,
"min": 2.073,
"mean": 2.12423
},
"qNaN": {
"duration": 5.09004e+09,
"iterations": 9.45428e+08,
"max": 3306.93,
"min": 5.138,
"mean": 5.38385
},
"sNaN": {
"duration": 5.08458e+09,
"iterations": 1.15959e+09,
"max": 972.008,
"min": 3.321,
"mean": 4.3848
}
}
And:
$ ./testrun.sh benchtests/bench-fmin
"fmin": {
"": {
"duration": 5.06817e+09,
"iterations": 2.3913e+09,
"max": 1177.9,
"min": 2.073,
"mean": 2.11942
},
"qNaN": {
"duration": 5.08857e+09,
"iterations": 9.45656e+08,
"max": 2658.83,
"min": 5.09,
"mean": 5.38099
},
"sNaN": {
"duration": 5.08093e+09,
"iterations": 1.16725e+09,
"max": 1030.74,
"min": 3.323,
"mean": 4.3529
}
}
Both were run with GCC 5.4 (ubuntu 16 default installation) using default
compiler flags on POWER8E 3.4GHz (powerpc64le-linux-gnu).
diff --git a/ChangeLog b/ChangeLog
index 5252a64..9791f66 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2016-12-27 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * sysdeps/powerpc/fpu/s_fmaxf.S: Remove file.
+ * sysdeps/powerpc/fpu/s_fminf.S: Likewise.
+ * sysdeps/powerpc/fpu/s_fmax.S: Likewise.
+ * sysdeps/powerpc/fpu/s_fmin.S: Likewise.
+ * sysdeps/powerpc/powerpc32/fpu/s_fmax.S: Likewise.
+ * sysdeps/powerpc/powerpc32/fpu/s_fmin.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/s_fmax.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/s_fmin.S: Likewise.
+
2016-12-27 Gabriel F. T. Gomes <gftg@linux.vnet.ibm.com>
* manual/arith.texi (FP Comparison Functions): Fix typo in iseqsig.
diff --git a/sysdeps/powerpc/fpu/s_fmax.S b/sysdeps/powerpc/fpu/s_fmax.S
deleted file mode 100644
index e6405c0..0000000
--- a/sysdeps/powerpc/fpu/s_fmax.S
+++ /dev/null
@@ -1,77 +0,0 @@
-/* Floating-point maximum. PowerPC version.
- Copyright (C) 1997-2016 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 <sysdep.h>
-
-ENTRY(__fmax)
-/* double [f1] fmax (double [f1] x, double [f2] y); */
- fcmpu cr0,fp1,fp2
- blt cr0,0f /* if x < y, neither x nor y can be NaN... */
- bnulr+ cr0
-/* x and y are unordered, so one of x or y must be a NaN... */
- fcmpu cr1,fp2,fp2
- bun cr1,1f
-/* x is a NaN; y is not. Test if x is signaling. */
-#ifdef __powerpc64__
- stfd fp1,-8(r1)
- lwz r3,-8+HIWORD(r1)
-#else
- stwu r1,-16(r1)
- cfi_adjust_cfa_offset (16)
- stfd fp1,8(r1)
- lwz r3,8+HIWORD(r1)
- addi r1,r1,16
- cfi_adjust_cfa_offset (-16)
-#endif
- andis. r3,r3,8
- bne cr0,0f
- b 2f
-1: /* y is a NaN; x may or may not be. */
- fcmpu cr1,fp1,fp1
- bun cr1,2f
-/* y is a NaN; x is not. Test if y is signaling. */
-#ifdef __powerpc64__
- stfd fp2,-8(r1)
- lwz r3,-8+HIWORD(r1)
-#else
- stwu r1,-16(r1)
- cfi_adjust_cfa_offset (16)
- stfd fp2,8(r1)
- lwz r3,8+HIWORD(r1)
- addi r1,r1,16
- cfi_adjust_cfa_offset (-16)
-#endif
- andis. r3,r3,8
- bnelr cr0
-2: /* x and y are NaNs, or one is a signaling NaN. */
- fadd fp1,fp1,fp2
- blr
-0: fmr fp1,fp2
- blr
-END(__fmax)
-
-weak_alias (__fmax,fmax)
-
-/* It turns out that it's safe to use this code even for single-precision. */
-strong_alias(__fmax,__fmaxf)
-weak_alias (__fmax,fmaxf)
-
-#ifdef NO_LONG_DOUBLE
-weak_alias (__fmax,__fmaxl)
-weak_alias (__fmax,fmaxl)
-#endif
diff --git a/sysdeps/powerpc/fpu/s_fmaxf.S b/sysdeps/powerpc/fpu/s_fmaxf.S
deleted file mode 100644
index 3c2d62b..0000000
--- a/sysdeps/powerpc/fpu/s_fmaxf.S
+++ /dev/null
@@ -1 +0,0 @@
-/* __fmaxf is in s_fmax.c */
diff --git a/sysdeps/powerpc/fpu/s_fmin.S b/sysdeps/powerpc/fpu/s_fmin.S
deleted file mode 100644
index 9ae77fe..0000000
--- a/sysdeps/powerpc/fpu/s_fmin.S
+++ /dev/null
@@ -1,77 +0,0 @@
-/* Floating-point minimum. PowerPC version.
- Copyright (C) 1997-2016 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 <sysdep.h>
-
-ENTRY(__fmin)
-/* double [f1] fmin (double [f1] x, double [f2] y); */
- fcmpu cr0,fp1,fp2
- bgt cr0,0f /* if x > y, neither x nor y can be NaN... */
- bnulr+ cr0
-/* x and y are unordered, so one of x or y must be a NaN... */
- fcmpu cr1,fp2,fp2
- bun cr1,1f
-/* x is a NaN; y is not. Test if x is signaling. */
-#ifdef __powerpc64__
- stfd fp1,-8(r1)
- lwz r3,-8+HIWORD(r1)
-#else
- stwu r1,-16(r1)
- cfi_adjust_cfa_offset (16)
- stfd fp1,8(r1)
- lwz r3,8+HIWORD(r1)
- addi r1,r1,16
- cfi_adjust_cfa_offset (-16)
-#endif
- andis. r3,r3,8
- bne cr0,0f
- b 2f
-1: /* y is a NaN; x may or may not be. */
- fcmpu cr1,fp1,fp1
- bun cr1,2f
-/* y is a NaN; x is not. Test if y is signaling. */
-#ifdef __powerpc64__
- stfd fp2,-8(r1)
- lwz r3,-8+HIWORD(r1)
-#else
- stwu r1,-16(r1)
- cfi_adjust_cfa_offset (16)
- stfd fp2,8(r1)
- lwz r3,8+HIWORD(r1)
- addi r1,r1,16
- cfi_adjust_cfa_offset (-16)
-#endif
- andis. r3,r3,8
- bnelr cr0
-2: /* x and y are NaNs, or one is a signaling NaN. */
- fadd fp1,fp1,fp2
- blr
-0: fmr fp1,fp2
- blr
-END(__fmin)
-
-weak_alias (__fmin,fmin)
-
-/* It turns out that it's safe to use this code even for single-precision. */
-strong_alias(__fmin,__fminf)
-weak_alias (__fmin,fminf)
-
-#ifdef NO_LONG_DOUBLE
-weak_alias (__fmin,__fminl)
-weak_alias (__fmin,fminl)
-#endif
diff --git a/sysdeps/powerpc/fpu/s_fminf.S b/sysdeps/powerpc/fpu/s_fminf.S
deleted file mode 100644
index 10ab7fe..0000000
--- a/sysdeps/powerpc/fpu/s_fminf.S
+++ /dev/null
@@ -1 +0,0 @@
-/* __fminf is in s_fmin.c */
diff --git a/sysdeps/powerpc/powerpc32/fpu/s_fmax.S b/sysdeps/powerpc/powerpc32/fpu/s_fmax.S
deleted file mode 100644
index 6973576..0000000
--- a/sysdeps/powerpc/powerpc32/fpu/s_fmax.S
+++ /dev/null
@@ -1,5 +0,0 @@
-#include <math_ldbl_opt.h>
-#include <sysdeps/powerpc/fpu/s_fmax.S>
-#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1)
-compat_symbol (libm, __fmax, fmaxl, GLIBC_2_1)
-#endif
diff --git a/sysdeps/powerpc/powerpc32/fpu/s_fmin.S b/sysdeps/powerpc/powerpc32/fpu/s_fmin.S
deleted file mode 100644
index 6d4a0a9..0000000
--- a/sysdeps/powerpc/powerpc32/fpu/s_fmin.S
+++ /dev/null
@@ -1,5 +0,0 @@
-#include <math_ldbl_opt.h>
-#include <sysdeps/powerpc/fpu/s_fmin.S>
-#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1)
-compat_symbol (libm, __fmin, fminl, GLIBC_2_1)
-#endif
diff --git a/sysdeps/powerpc/powerpc64/fpu/s_fmax.S b/sysdeps/powerpc/powerpc64/fpu/s_fmax.S
deleted file mode 100644
index 6973576..0000000
--- a/sysdeps/powerpc/powerpc64/fpu/s_fmax.S
+++ /dev/null
@@ -1,5 +0,0 @@
-#include <math_ldbl_opt.h>
-#include <sysdeps/powerpc/fpu/s_fmax.S>
-#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1)
-compat_symbol (libm, __fmax, fmaxl, GLIBC_2_1)
-#endif
diff --git a/sysdeps/powerpc/powerpc64/fpu/s_fmin.S b/sysdeps/powerpc/powerpc64/fpu/s_fmin.S
deleted file mode 100644
index 6d4a0a9..0000000
--- a/sysdeps/powerpc/powerpc64/fpu/s_fmin.S
+++ /dev/null
@@ -1,5 +0,0 @@
-#include <math_ldbl_opt.h>
-#include <sysdeps/powerpc/fpu/s_fmin.S>
-#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1)
-compat_symbol (libm, __fmin, fminl, GLIBC_2_1)
-#endif
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 11 +++++
sysdeps/powerpc/fpu/s_fmax.S | 77 --------------------------------
sysdeps/powerpc/fpu/s_fmaxf.S | 1 -
sysdeps/powerpc/fpu/s_fmin.S | 77 --------------------------------
sysdeps/powerpc/fpu/s_fminf.S | 1 -
sysdeps/powerpc/powerpc32/fpu/s_fmax.S | 5 --
sysdeps/powerpc/powerpc32/fpu/s_fmin.S | 5 --
sysdeps/powerpc/powerpc64/fpu/s_fmax.S | 5 --
sysdeps/powerpc/powerpc64/fpu/s_fmin.S | 5 --
9 files changed, 11 insertions(+), 176 deletions(-)
delete mode 100644 sysdeps/powerpc/fpu/s_fmax.S
delete mode 100644 sysdeps/powerpc/fpu/s_fmaxf.S
delete mode 100644 sysdeps/powerpc/fpu/s_fmin.S
delete mode 100644 sysdeps/powerpc/fpu/s_fminf.S
delete mode 100644 sysdeps/powerpc/powerpc32/fpu/s_fmax.S
delete mode 100644 sysdeps/powerpc/powerpc32/fpu/s_fmin.S
delete mode 100644 sysdeps/powerpc/powerpc64/fpu/s_fmax.S
delete mode 100644 sysdeps/powerpc/powerpc64/fpu/s_fmin.S
hooks/post-receive
--
GNU C Library master sources