about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2018-12-19 21:48:03 +0000
committerJoseph Myers <joseph@codesourcery.com>2018-12-19 21:48:03 +0000
commit515f463f52b8e4f048e6818d0db2dd2ae45e5f36 (patch)
tree08be542f3d7a5b594e85e507cc6809e2de9f319f
parent1616d034b61622836d3a36af53dcfca7624c844e (diff)
downloadglibc-515f463f52b8e4f048e6818d0db2dd2ae45e5f36.tar.gz
glibc-515f463f52b8e4f048e6818d0db2dd2ae45e5f36.tar.xz
glibc-515f463f52b8e4f048e6818d0db2dd2ae45e5f36.zip
Remove x86 mathinline.h sinh, cosh, tanh inlines.
Continuing the removal of bits/mathinline.h inlines that would better
be done by the compiler, this patch removes x86 inlines for sinh, cosh
and tanh functions (inlines only previously present for fast-math,
non-SSE 32-bit x86).  I've filed
<https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88556> for adding such
inlines as an optimization in GCC.

I believe the only remaining part of the x86 bits/mathinline.h that
does anything useful with current compilers after this patch is the
__LIBC_INTERNAL_MATH_INLINES inline of __ieee754_atan2l; I intend to
remove the whole header and move that inline to a sysdeps
math_private.h header in a subsequent patch.

Tested for x86_64 and x86.

	* sysdeps/x86/fpu/bits/mathinline.h (sinh): Remove inline
	definition.
	(cosh): Likewise.
	(tanh): Likewise.
-rw-r--r--ChangeLog7
-rw-r--r--sysdeps/x86/fpu/bits/mathinline.h16
2 files changed, 7 insertions, 16 deletions
diff --git a/ChangeLog b/ChangeLog
index b03f945567..bf414bc3f4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2018-12-19  Joseph Myers  <joseph@codesourcery.com>
+
+	* sysdeps/x86/fpu/bits/mathinline.h (sinh): Remove inline
+	definition.
+	(cosh): Likewise.
+	(tanh): Likewise.
+
 2018-12-19  Tulio Magno Quites Machado Filho  <tuliom@linux.ibm.com>
 
 	* elf/dl-sysdep.c (auxvars): Add AT_L1I_CACHESIZE,
diff --git a/sysdeps/x86/fpu/bits/mathinline.h b/sysdeps/x86/fpu/bits/mathinline.h
index 785fa2ca13..95ab9f5b82 100644
--- a/sysdeps/x86/fpu/bits/mathinline.h
+++ b/sysdeps/x86/fpu/bits/mathinline.h
@@ -263,22 +263,6 @@ __inline_mathcode_ (long double, __sgn1l, __x, \
   return __n.__xld)
 
 
-#  ifdef __FAST_MATH__
-/* The argument range of the inline version of sinhl is slightly reduced.  */
-__inline_mathcodeNP (sinh, __x, \
-  register long double __exm1 = __expm1l (__fabsl (__x));		      \
-  return 0.5 * (__exm1 / (__exm1 + 1.0) + __exm1) * __sgn1l (__x))
-
-__inline_mathcodeNP (cosh, __x, \
-  register long double __ex = __expl (__x);				      \
-  return 0.5 * (__ex + 1.0 / __ex))
-
-__inline_mathcodeNP (tanh, __x, \
-  register long double __exm1 = __expm1l (-__fabsl (__x + __x));	      \
-  return __exm1 / (__exm1 + 2.0) * __sgn1l (-__x))
-#  endif
-
-
 /* Optimized versions for some non-standardized functions.  */
 #  ifdef __USE_ISOC99