about summary refs log tree commit diff
path: root/sysdeps/x86_64/fpu/multiarch/e_log.c
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/x86_64/fpu/multiarch/e_log.c')
-rw-r--r--sysdeps/x86_64/fpu/multiarch/e_log.c14
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