mirror of
https://sourceware.org/git/glibc.git
synced 2025-12-20 01:12:17 +08:00
math: Remove the SVID error handling from coshf
It improves latency for about 3-10% and throughput for about 5-15%. Tested on x86_64-linux-gnu and i686-linux-gnu. Reviewed-by: Wilco Dijkstra <Wilco.Dijkstra@arm.com>
This commit is contained in:
@@ -692,6 +692,7 @@ libm {
|
||||
acoshf;
|
||||
asinf;
|
||||
atanhf;
|
||||
coshf;
|
||||
log10f;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,10 +20,11 @@
|
||||
#include <math_private.h>
|
||||
#include <math-svid-compat.h>
|
||||
#include <libm-alias-float.h>
|
||||
#include <shlib-compat.h>
|
||||
|
||||
#if LIBM_SVID_COMPAT
|
||||
#if LIBM_SVID_COMPAT && SHLIB_COMPAT (libm, GLIBC_2_0, GLIBC_2_43)
|
||||
float
|
||||
__coshf (float x)
|
||||
__cosh_compatf (float x)
|
||||
{
|
||||
float z = __ieee754_coshf (x);
|
||||
if (__builtin_expect (!isfinite (z), 0) && isfinite (x)
|
||||
@@ -32,5 +33,10 @@ __coshf (float x)
|
||||
|
||||
return z;
|
||||
}
|
||||
libm_alias_float (__cosh, cosh)
|
||||
# ifdef NO_COMPAT_NEEDED
|
||||
strong_alias (__cosh_compatf, __coshf)
|
||||
libm_alias_float (__cosh_compat, cosh)
|
||||
# else
|
||||
compat_symbol (libm, __cosh_compatf, coshf, GLIBC_2_0);
|
||||
# endif
|
||||
#endif
|
||||
|
||||
@@ -27,11 +27,13 @@ SOFTWARE.
|
||||
#include <stdint.h>
|
||||
#include <math.h>
|
||||
#include <libm-alias-finite.h>
|
||||
#include <libm-alias-float.h>
|
||||
#include <math-svid-compat.h>
|
||||
#include "math_config.h"
|
||||
#include "e_sincoshf_data.h"
|
||||
|
||||
float
|
||||
__ieee754_coshf (float x)
|
||||
__coshf (float x)
|
||||
{
|
||||
const double iln2 = 0x1.71547652b82fep+5;
|
||||
double z = x;
|
||||
@@ -92,4 +94,11 @@ __ieee754_coshf (float x)
|
||||
}
|
||||
return ub;
|
||||
}
|
||||
strong_alias (__coshf, __ieee754_coshf)
|
||||
#if LIBM_SVID_COMPAT
|
||||
versioned_symbol (libm, __coshf, coshf, GLIBC_2_43);
|
||||
libm_alias_float_other (__cosh, cosh)
|
||||
#else
|
||||
libm_alias_float (__cosh, cosh)
|
||||
#endif
|
||||
libm_alias_finite (__ieee754_coshf, __coshf)
|
||||
|
||||
1
sysdeps/ieee754/flt-32/w_coshf.c
Normal file
1
sysdeps/ieee754/flt-32/w_coshf.c
Normal file
@@ -0,0 +1 @@
|
||||
/* Not needed. */
|
||||
8
sysdeps/m68k/m680x0/fpu/w_coshf_compat.c
Normal file
8
sysdeps/m68k/m680x0/fpu/w_coshf_compat.c
Normal file
@@ -0,0 +1,8 @@
|
||||
/* m68k provides an optimized __ieee754_coshhf. */
|
||||
#ifdef SHARED
|
||||
# define NO_COMPAT_NEEDED 1
|
||||
# include <math/w_coshf_compat.c>
|
||||
#else
|
||||
# include <math-type-macros-float.h>
|
||||
# include <w_cosh_template.c>
|
||||
#endif
|
||||
@@ -1321,6 +1321,7 @@ GLIBC_2.43 acosf F
|
||||
GLIBC_2.43 acoshf F
|
||||
GLIBC_2.43 asinf F
|
||||
GLIBC_2.43 atanhf F
|
||||
GLIBC_2.43 coshf F
|
||||
GLIBC_2.43 fmod F
|
||||
GLIBC_2.43 fmodf F
|
||||
GLIBC_2.43 log10f F
|
||||
|
||||
@@ -1289,4 +1289,5 @@ GLIBC_2.43 acosf F
|
||||
GLIBC_2.43 acoshf F
|
||||
GLIBC_2.43 asinf F
|
||||
GLIBC_2.43 atanhf F
|
||||
GLIBC_2.43 coshf F
|
||||
GLIBC_2.43 log10f F
|
||||
|
||||
@@ -1448,4 +1448,5 @@ GLIBC_2.43 acosf F
|
||||
GLIBC_2.43 acoshf F
|
||||
GLIBC_2.43 asinf F
|
||||
GLIBC_2.43 atanhf F
|
||||
GLIBC_2.43 coshf F
|
||||
GLIBC_2.43 log10f F
|
||||
|
||||
@@ -954,4 +954,5 @@ GLIBC_2.43 acosf F
|
||||
GLIBC_2.43 acoshf F
|
||||
GLIBC_2.43 asinf F
|
||||
GLIBC_2.43 atanhf F
|
||||
GLIBC_2.43 coshf F
|
||||
GLIBC_2.43 log10f F
|
||||
|
||||
@@ -954,4 +954,5 @@ GLIBC_2.43 acosf F
|
||||
GLIBC_2.43 acoshf F
|
||||
GLIBC_2.43 asinf F
|
||||
GLIBC_2.43 atanhf F
|
||||
GLIBC_2.43 coshf F
|
||||
GLIBC_2.43 log10f F
|
||||
|
||||
@@ -954,4 +954,5 @@ GLIBC_2.43 acosf F
|
||||
GLIBC_2.43 acoshf F
|
||||
GLIBC_2.43 asinf F
|
||||
GLIBC_2.43 atanhf F
|
||||
GLIBC_2.43 coshf F
|
||||
GLIBC_2.43 log10f F
|
||||
|
||||
@@ -1328,6 +1328,7 @@ GLIBC_2.43 acosf F
|
||||
GLIBC_2.43 acoshf F
|
||||
GLIBC_2.43 asinf F
|
||||
GLIBC_2.43 atanhf F
|
||||
GLIBC_2.43 coshf F
|
||||
GLIBC_2.43 fmod F
|
||||
GLIBC_2.43 fmodf F
|
||||
GLIBC_2.43 log10f F
|
||||
|
||||
@@ -954,4 +954,5 @@ GLIBC_2.43 acosf F
|
||||
GLIBC_2.43 acoshf F
|
||||
GLIBC_2.43 asinf F
|
||||
GLIBC_2.43 atanhf F
|
||||
GLIBC_2.43 coshf F
|
||||
GLIBC_2.43 log10f F
|
||||
|
||||
@@ -954,4 +954,5 @@ GLIBC_2.43 acosf F
|
||||
GLIBC_2.43 acoshf F
|
||||
GLIBC_2.43 asinf F
|
||||
GLIBC_2.43 atanhf F
|
||||
GLIBC_2.43 coshf F
|
||||
GLIBC_2.43 log10f F
|
||||
|
||||
@@ -954,4 +954,5 @@ GLIBC_2.43 acosf F
|
||||
GLIBC_2.43 acoshf F
|
||||
GLIBC_2.43 asinf F
|
||||
GLIBC_2.43 atanhf F
|
||||
GLIBC_2.43 coshf F
|
||||
GLIBC_2.43 log10f F
|
||||
|
||||
@@ -954,4 +954,5 @@ GLIBC_2.43 acosf F
|
||||
GLIBC_2.43 acoshf F
|
||||
GLIBC_2.43 asinf F
|
||||
GLIBC_2.43 atanhf F
|
||||
GLIBC_2.43 coshf F
|
||||
GLIBC_2.43 log10f F
|
||||
|
||||
@@ -1289,4 +1289,5 @@ GLIBC_2.43 acosf F
|
||||
GLIBC_2.43 acoshf F
|
||||
GLIBC_2.43 asinf F
|
||||
GLIBC_2.43 atanhf F
|
||||
GLIBC_2.43 coshf F
|
||||
GLIBC_2.43 log10f F
|
||||
|
||||
@@ -1101,4 +1101,5 @@ GLIBC_2.43 acosf F
|
||||
GLIBC_2.43 acoshf F
|
||||
GLIBC_2.43 asinf F
|
||||
GLIBC_2.43 atanhf F
|
||||
GLIBC_2.43 coshf F
|
||||
GLIBC_2.43 log10f F
|
||||
|
||||
@@ -1100,4 +1100,5 @@ GLIBC_2.43 acosf F
|
||||
GLIBC_2.43 acoshf F
|
||||
GLIBC_2.43 asinf F
|
||||
GLIBC_2.43 atanhf F
|
||||
GLIBC_2.43 coshf F
|
||||
GLIBC_2.43 log10f F
|
||||
|
||||
@@ -1094,4 +1094,5 @@ GLIBC_2.43 acosf F
|
||||
GLIBC_2.43 acoshf F
|
||||
GLIBC_2.43 asinf F
|
||||
GLIBC_2.43 atanhf F
|
||||
GLIBC_2.43 coshf F
|
||||
GLIBC_2.43 log10f F
|
||||
|
||||
@@ -1478,4 +1478,5 @@ GLIBC_2.43 acosf F
|
||||
GLIBC_2.43 acoshf F
|
||||
GLIBC_2.43 asinf F
|
||||
GLIBC_2.43 atanhf F
|
||||
GLIBC_2.43 coshf F
|
||||
GLIBC_2.43 log10f F
|
||||
|
||||
@@ -1392,4 +1392,5 @@ GLIBC_2.43 acosf F
|
||||
GLIBC_2.43 acoshf F
|
||||
GLIBC_2.43 asinf F
|
||||
GLIBC_2.43 atanhf F
|
||||
GLIBC_2.43 coshf F
|
||||
GLIBC_2.43 log10f F
|
||||
|
||||
@@ -1392,4 +1392,5 @@ GLIBC_2.43 acosf F
|
||||
GLIBC_2.43 acoshf F
|
||||
GLIBC_2.43 asinf F
|
||||
GLIBC_2.43 atanhf F
|
||||
GLIBC_2.43 coshf F
|
||||
GLIBC_2.43 log10f F
|
||||
|
||||
@@ -954,4 +954,5 @@ GLIBC_2.43 acosf F
|
||||
GLIBC_2.43 acoshf F
|
||||
GLIBC_2.43 asinf F
|
||||
GLIBC_2.43 atanhf F
|
||||
GLIBC_2.43 coshf F
|
||||
GLIBC_2.43 log10f F
|
||||
|
||||
@@ -954,4 +954,5 @@ GLIBC_2.43 acosf F
|
||||
GLIBC_2.43 acoshf F
|
||||
GLIBC_2.43 asinf F
|
||||
GLIBC_2.43 atanhf F
|
||||
GLIBC_2.43 coshf F
|
||||
GLIBC_2.43 log10f F
|
||||
|
||||
@@ -1399,4 +1399,5 @@ GLIBC_2.43 acosf F
|
||||
GLIBC_2.43 acoshf F
|
||||
GLIBC_2.43 asinf F
|
||||
GLIBC_2.43 atanhf F
|
||||
GLIBC_2.43 coshf F
|
||||
GLIBC_2.43 log10f F
|
||||
|
||||
@@ -1289,4 +1289,5 @@ GLIBC_2.43 acosf F
|
||||
GLIBC_2.43 acoshf F
|
||||
GLIBC_2.43 asinf F
|
||||
GLIBC_2.43 atanhf F
|
||||
GLIBC_2.43 coshf F
|
||||
GLIBC_2.43 log10f F
|
||||
|
||||
@@ -1322,4 +1322,5 @@ GLIBC_2.43 acosf F
|
||||
GLIBC_2.43 acoshf F
|
||||
GLIBC_2.43 asinf F
|
||||
GLIBC_2.43 atanhf F
|
||||
GLIBC_2.43 coshf F
|
||||
GLIBC_2.43 log10f F
|
||||
|
||||
@@ -1322,4 +1322,5 @@ GLIBC_2.43 acosf F
|
||||
GLIBC_2.43 acoshf F
|
||||
GLIBC_2.43 asinf F
|
||||
GLIBC_2.43 atanhf F
|
||||
GLIBC_2.43 coshf F
|
||||
GLIBC_2.43 log10f F
|
||||
|
||||
Reference in New Issue
Block a user