diff options
Diffstat (limited to 'sysdeps/x86_64/fpu/multiarch/s_sin.c')
-rw-r--r-- | sysdeps/x86_64/fpu/multiarch/s_sin.c | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/sysdeps/x86_64/fpu/multiarch/s_sin.c b/sysdeps/x86_64/fpu/multiarch/s_sin.c index a7c35dc858..1ba9dbc50c 100644 --- a/sysdeps/x86_64/fpu/multiarch/s_sin.c +++ b/sysdeps/x86_64/fpu/multiarch/s_sin.c @@ -1,17 +1,26 @@ -#ifdef HAVE_FMA4_SUPPORT +#if defined HAVE_FMA4_SUPPORT || defined HAVE_AVX_SUPPORT # include <init-arch.h> # include <math.h> # undef NAN extern double __cos_sse2 (double); -extern double __cos_fma4 (double); extern double __sin_sse2 (double); +extern double __cos_avx (double); +extern double __sin_avx (double); +# ifdef HAVE_FMA4_SUPPORT +extern double __cos_fma4 (double); extern double __sin_fma4 (double); +# else +# undef HAS_FMA4 +# define HAS_FMA4 0 +# define __cos_fma4 ((void *) 0) +# define __sin_fma4 ((void *) 0) +# endif -libm_ifunc (__cos, HAS_FMA4 ? __cos_fma4 : __cos_sse2); +libm_ifunc (__cos, HAS_FMA4 ? __cos_fma4 : HAS_AVX ? __cos_avx : __cos_sse2); weak_alias (__cos, cos) -libm_ifunc (__sin, HAS_FMA4 ? __sin_fma4 : __sin_sse2); +libm_ifunc (__sin, HAS_FMA4 ? __sin_fma4 : HAS_AVX ? __sin_avx : __sin_sse2); weak_alias (__sin, sin) # define __cos __cos_sse2 |