The generic implementation emits libm_alias_double unconditionally, so
tanhf32x and tanhf64 bind directly to __tanh_fma.
Guard the alias with '#ifndef __tanh' and emit it from the dispatcher,
as sin. Also remove the stale __expm1 defines, unused since tanh moved
to CORE-MATH.
Checked on x86_64-linux-gnu, and with 'qemu-x86_64 -cpu Nehalem'.
Reported-by: Michael Brunnbauer <brunni@netestate.de>
return as_tanh_database (x, res);
return res;
}
+#ifndef __tanh
libm_alias_double (__tanh, tanh)
+#endif
#define __tanh __tanh_fma
-#define __expm1 __expm1_fma
-
-/* NB: __expm1 may be expanded to __expm1_fma in the following
- prototypes. */
-extern long double __expm1l (long double);
-extern long double __expm1f128 (long double);
#define SECTION __attribute__ ((section (".text.fma")))
# define SYMBOL_NAME tanh
# include "ifunc-fma.h"
-libc_ifunc_redirected (__redirect_tanh, tanh, IFUNC_SELECTOR ());
+libc_ifunc_redirected (__redirect_tanh, __tanh, IFUNC_SELECTOR ());
+libm_alias_double (__tanh, tanh)
# define __tanh __tanh_sse2
-# undef libm_alias_double
-# define libm_alias_double(a, b)
#endif
#include <sysdeps/ieee754/dbl-64/s_tanh.c>