diff options
author | Ulrich Drepper <drepper@gmail.com> | 2012-01-26 09:45:54 -0500 |
---|---|---|
committer | Ulrich Drepper <drepper@gmail.com> | 2012-01-26 09:45:54 -0500 |
commit | 08cf777f9e7f6d826658a99c7d77a359f73a45bf (patch) | |
tree | 89cdc5e4339c060b4e0ccaab79a2924c4989ab9c /sysdeps/x86_64/fpu | |
parent | afc5ed09cbce5d6fd48b3a8c5ec427b31f996880 (diff) | |
download | glibc-08cf777f9e7f6d826658a99c7d77a359f73a45bf.tar.gz glibc-08cf777f9e7f6d826658a99c7d77a359f73a45bf.tar.xz glibc-08cf777f9e7f6d826658a99c7d77a359f73a45bf.zip |
Really fix AVX tests
There is no problem with strcmp, it doesn't use the YMM registers. The math routines might since gcc perhaps generates such code. Introduce bit_YMM_USBALE and use it in the math routines.
Diffstat (limited to 'sysdeps/x86_64/fpu')
-rw-r--r-- | sysdeps/x86_64/fpu/multiarch/e_atan2.c | 2 | ||||
-rw-r--r-- | sysdeps/x86_64/fpu/multiarch/e_exp.c | 2 | ||||
-rw-r--r-- | sysdeps/x86_64/fpu/multiarch/e_log.c | 2 | ||||
-rw-r--r-- | sysdeps/x86_64/fpu/multiarch/s_atan.c | 3 | ||||
-rw-r--r-- | sysdeps/x86_64/fpu/multiarch/s_sin.c | 6 | ||||
-rw-r--r-- | sysdeps/x86_64/fpu/multiarch/s_tan.c | 3 |
6 files changed, 11 insertions, 7 deletions
diff --git a/sysdeps/x86_64/fpu/multiarch/e_atan2.c b/sysdeps/x86_64/fpu/multiarch/e_atan2.c index 6867c6e64e..3a615fc9d1 100644 --- a/sysdeps/x86_64/fpu/multiarch/e_atan2.c +++ b/sysdeps/x86_64/fpu/multiarch/e_atan2.c @@ -14,7 +14,7 @@ extern double __ieee754_atan2_fma4 (double, double); libm_ifunc (__ieee754_atan2, HAS_FMA4 ? __ieee754_atan2_fma4 - : (HAS_AVX ? __ieee754_atan2_avx : __ieee754_atan2_sse2)); + : (HAS_YMM_USABLE ? __ieee754_atan2_avx : __ieee754_atan2_sse2)); strong_alias (__ieee754_atan2, __atan2_finite) # define __ieee754_atan2 __ieee754_atan2_sse2 diff --git a/sysdeps/x86_64/fpu/multiarch/e_exp.c b/sysdeps/x86_64/fpu/multiarch/e_exp.c index 3c650287c5..7b2320a223 100644 --- a/sysdeps/x86_64/fpu/multiarch/e_exp.c +++ b/sysdeps/x86_64/fpu/multiarch/e_exp.c @@ -14,7 +14,7 @@ extern double __ieee754_exp_fma4 (double); libm_ifunc (__ieee754_exp, HAS_FMA4 ? __ieee754_exp_fma4 - : (HAS_AVX ? __ieee754_exp_avx : __ieee754_exp_sse2)); + : (HAS_YMM_USABLE ? __ieee754_exp_avx : __ieee754_exp_sse2)); strong_alias (__ieee754_exp, __exp_finite) # define __ieee754_exp __ieee754_exp_sse2 diff --git a/sysdeps/x86_64/fpu/multiarch/e_log.c b/sysdeps/x86_64/fpu/multiarch/e_log.c index 3b468d0f46..ab277d67fe 100644 --- a/sysdeps/x86_64/fpu/multiarch/e_log.c +++ b/sysdeps/x86_64/fpu/multiarch/e_log.c @@ -14,7 +14,7 @@ extern double __ieee754_log_fma4 (double); libm_ifunc (__ieee754_log, HAS_FMA4 ? __ieee754_log_fma4 - : (HAS_AVX ? __ieee754_log_avx + : (HAS_YMM_USABLE ? __ieee754_log_avx : __ieee754_log_sse2)); strong_alias (__ieee754_log, __log_finite) diff --git a/sysdeps/x86_64/fpu/multiarch/s_atan.c b/sysdeps/x86_64/fpu/multiarch/s_atan.c index 3160201c17..78c7e099cb 100644 --- a/sysdeps/x86_64/fpu/multiarch/s_atan.c +++ b/sysdeps/x86_64/fpu/multiarch/s_atan.c @@ -12,7 +12,8 @@ extern double __atan_fma4 (double); # define __atan_fma4 ((void *) 0) # endif -libm_ifunc (atan, HAS_FMA4 ? __atan_fma4 : HAS_AVX ? __atan_avx : __atan_sse2); +libm_ifunc (atan, (HAS_FMA4 ? __atan_fma4 : + HAS_YMM_USABLE ? __atan_avx : __atan_sse2)); # define atan __atan_sse2 #endif diff --git a/sysdeps/x86_64/fpu/multiarch/s_sin.c b/sysdeps/x86_64/fpu/multiarch/s_sin.c index 1ba9dbc50c..417acd0683 100644 --- a/sysdeps/x86_64/fpu/multiarch/s_sin.c +++ b/sysdeps/x86_64/fpu/multiarch/s_sin.c @@ -17,10 +17,12 @@ extern double __sin_fma4 (double); # define __sin_fma4 ((void *) 0) # endif -libm_ifunc (__cos, HAS_FMA4 ? __cos_fma4 : HAS_AVX ? __cos_avx : __cos_sse2); +libm_ifunc (__cos, (HAS_FMA4 ? __cos_fma4 : + HAS_YMM_USABLE ? __cos_avx : __cos_sse2)); weak_alias (__cos, cos) -libm_ifunc (__sin, HAS_FMA4 ? __sin_fma4 : HAS_AVX ? __sin_avx : __sin_sse2); +libm_ifunc (__sin, (HAS_FMA4 ? __sin_fma4 : + HAS_YMM_USABLE ? __sin_avx : __sin_sse2)); weak_alias (__sin, sin) # define __cos __cos_sse2 diff --git a/sysdeps/x86_64/fpu/multiarch/s_tan.c b/sysdeps/x86_64/fpu/multiarch/s_tan.c index 8f6601e17c..3047155cec 100644 --- a/sysdeps/x86_64/fpu/multiarch/s_tan.c +++ b/sysdeps/x86_64/fpu/multiarch/s_tan.c @@ -12,7 +12,8 @@ extern double __tan_fma4 (double); # define __tan_fma4 ((void *) 0) # endif -libm_ifunc (tan, HAS_FMA4 ? __tan_fma4 : HAS_AVX ? __tan_avx : __tan_sse2); +libm_ifunc (tan, (HAS_FMA4 ? __tan_fma4 : + HAS_YMM_USABLE ? __tan_avx : __tan_sse2)); # define tan __tan_sse2 #endif |