diff options
Diffstat (limited to 'sysdeps/x86_64/fpu/multiarch/e_exp.c')
-rw-r--r-- | sysdeps/x86_64/fpu/multiarch/e_exp.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/sysdeps/x86_64/fpu/multiarch/e_exp.c b/sysdeps/x86_64/fpu/multiarch/e_exp.c index fc1096b54c..3c650287c5 100644 --- a/sysdeps/x86_64/fpu/multiarch/e_exp.c +++ b/sysdeps/x86_64/fpu/multiarch/e_exp.c @@ -1,11 +1,20 @@ -#ifdef HAVE_FMA4_SUPPORT +#if defined HAVE_FMA4_SUPPORT || defined HAVE_AVX_SUPPORT # include <init-arch.h> # include <math_private.h> extern double __ieee754_exp_sse2 (double); +extern double __ieee754_exp_avx (double); +# ifdef HAVE_FMA4_SUPPORT extern double __ieee754_exp_fma4 (double); +# else +# undef HAS_FMA4 +# define HAS_FMA4 0 +# define __ieee754_exp_fma4 ((void *) 0) +# endif -libm_ifunc (__ieee754_exp, HAS_FMA4 ? __ieee754_exp_fma4 : __ieee754_exp_sse2); +libm_ifunc (__ieee754_exp, + HAS_FMA4 ? __ieee754_exp_fma4 + : (HAS_AVX ? __ieee754_exp_avx : __ieee754_exp_sse2)); strong_alias (__ieee754_exp, __exp_finite) # define __ieee754_exp __ieee754_exp_sse2 |