diff options
Diffstat (limited to 'sysdeps/x86_64/fpu/multiarch/e_log.c')
-rw-r--r-- | sysdeps/x86_64/fpu/multiarch/e_log.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/sysdeps/x86_64/fpu/multiarch/e_log.c b/sysdeps/x86_64/fpu/multiarch/e_log.c index c54264609c..3b468d0f46 100644 --- a/sysdeps/x86_64/fpu/multiarch/e_log.c +++ b/sysdeps/x86_64/fpu/multiarch/e_log.c @@ -1,11 +1,21 @@ -#ifdef HAVE_FMA4_SUPPORT +#if defined HAVE_FMA4_SUPPORT || defined HAVE_AVX_SUPPORT # include <init-arch.h> # include <math_private.h> extern double __ieee754_log_sse2 (double); +extern double __ieee754_log_avx (double); +# ifdef HAVE_FMA4_SUPPORT extern double __ieee754_log_fma4 (double); +# else +# undef HAS_FMA4 +# define HAS_FMA4 0 +# define __ieee754_log_fma4 ((void *) 0) +# endif -libm_ifunc (__ieee754_log, HAS_FMA4 ? __ieee754_log_fma4 : __ieee754_log_sse2); +libm_ifunc (__ieee754_log, + HAS_FMA4 ? __ieee754_log_fma4 + : (HAS_AVX ? __ieee754_log_avx + : __ieee754_log_sse2)); strong_alias (__ieee754_log, __log_finite) # define __ieee754_log __ieee754_log_sse2 |