diff options
Diffstat (limited to 'sysdeps/x86_64/fpu/multiarch/Makefile')
-rw-r--r-- | sysdeps/x86_64/fpu/multiarch/Makefile | 148 |
1 files changed, 76 insertions, 72 deletions
diff --git a/sysdeps/x86_64/fpu/multiarch/Makefile b/sysdeps/x86_64/fpu/multiarch/Makefile index e1a490dd98..6ddd50240c 100644 --- a/sysdeps/x86_64/fpu/multiarch/Makefile +++ b/sysdeps/x86_64/fpu/multiarch/Makefile @@ -1,49 +1,4 @@ ifeq ($(subdir),math) -libm-sysdep_routines += \ - s_ceil-c \ - s_ceilf-c \ - s_floor-c \ - s_floorf-c \ - s_nearbyint-c \ - s_nearbyintf-c \ - s_rint-c \ - s_rintf-c \ - s_roundeven-c \ - s_roundevenf-c \ - s_trunc-c \ - s_truncf-c \ -# libm-sysdep_routines - -libm-sysdep_routines += \ - s_ceil-sse4_1 \ - s_ceilf-sse4_1 \ - s_floor-sse4_1 \ - s_floorf-sse4_1 \ - s_nearbyint-sse4_1 \ - s_nearbyintf-sse4_1 \ - s_rint-sse4_1 \ - s_rintf-sse4_1 \ - s_roundeven-sse4_1 \ - s_roundevenf-sse4_1 \ - s_trunc-sse4_1 \ - s_truncf-sse4_1 \ -# libm-sysdep_routines - -libm-sysdep_routines += \ - e_asin-fma \ - e_atan2-fma \ - e_exp-fma \ - e_log-fma \ - e_log2-fma \ - e_pow-fma \ - s_atan-fma \ - s_expm1-fma \ - s_log1p-fma \ - s_sin-fma \ - s_sincos-fma \ - s_tan-fma \ -# libm-sysdep_routines - CFLAGS-e_asin-fma.c = -mfma -mavx2 CFLAGS-e_atan2-fma.c = -mfma -mavx2 CFLAGS-e_exp-fma.c = -mfma -mavx2 @@ -57,23 +12,6 @@ CFLAGS-s_sin-fma.c = -mfma -mavx2 CFLAGS-s_tan-fma.c = -mfma -mavx2 CFLAGS-s_sincos-fma.c = -mfma -mavx2 -libm-sysdep_routines += \ - s_cosf-sse2 \ - s_sincosf-sse2 \ - s_sinf-sse2 \ -# libm-sysdep_routines - -libm-sysdep_routines += \ - e_exp2f-fma \ - e_expf-fma \ - e_log2f-fma \ - e_logf-fma \ - e_powf-fma \ - s_cosf-fma \ - s_sincosf-fma \ - s_sinf-fma \ -# libm-sysdep_routines - CFLAGS-e_exp2f-fma.c = -mfma -mavx2 CFLAGS-e_expf-fma.c = -mfma -mavx2 CFLAGS-e_log2f-fma.c = -mfma -mavx2 @@ -83,17 +21,93 @@ CFLAGS-s_sinf-fma.c = -mfma -mavx2 CFLAGS-s_cosf-fma.c = -mfma -mavx2 CFLAGS-s_sincosf-fma.c = -mfma -mavx2 +# Check if ISA level is 3 or above. +ifneq (,$(filter $(have-x86-isa-level),$(x86-isa-level-3-or-above))) libm-sysdep_routines += \ + s_ceil-avx \ + s_ceilf-avx \ + s_floor-avx \ + s_floorf-avx \ + s_nearbyint-avx \ + s_nearbyintf-avx \ + s_rint-avx \ + s_rintf-avx \ + s_roundeven-avx \ + s_roundevenf-avx \ + s_trunc-avx \ + s_truncf-avx \ +# libm-sysdep_routines +else +libm-sysdep_routines += \ + e_asin-fma \ e_asin-fma4 \ + e_atan2-avx \ + e_atan2-fma \ e_atan2-fma4 \ + e_exp-avx \ + e_exp-fma \ e_exp-fma4 \ + e_exp2f-fma \ + e_expf-fma \ + e_log-avx \ + e_log-fma \ e_log-fma4 \ + e_log2-fma \ + e_log2f-fma \ + e_logf-fma \ + e_pow-fma \ e_pow-fma4 \ + e_powf-fma \ + s_atan-avx \ + s_atan-fma \ s_atan-fma4 \ + s_ceil-sse4_1 \ + s_ceilf-sse4_1 \ + s_cosf-fma \ + s_cosf-sse2 \ + s_expm1-fma \ + s_floor-sse4_1 \ + s_floorf-sse4_1 \ + s_log1p-fma \ + s_nearbyint-sse4_1 \ + s_nearbyintf-sse4_1 \ + s_rint-sse4_1 \ + s_rintf-sse4_1 \ + s_roundeven-sse4_1 \ + s_roundevenf-sse4_1 \ + s_sin-avx \ + s_sin-fma \ s_sin-fma4 \ + s_sincos-avx \ + s_sincos-fma \ s_sincos-fma4 \ + s_sincosf-fma \ + s_sincosf-sse2 \ + s_sinf-fma \ + s_sinf-sse2 \ + s_tan-avx \ + s_tan-fma \ s_tan-fma4 \ + s_trunc-sse4_1 \ + s_truncf-sse4_1 \ # libm-sysdep_routines +ifeq ($(have-x86-isa-level),baseline) +libm-sysdep_routines += \ + s_ceil-c \ + s_ceilf-c \ + s_floor-c \ + s_floorf-c \ + s_nearbyint-c \ + s_nearbyintf-c \ + s_rint-c \ + s_rintf-c \ + s_roundeven-c \ + s_roundevenf-c \ + s_trunc-c \ + s_truncf-c \ +# libm-sysdep_routines +endif +endif CFLAGS-e_asin-fma4.c = -mfma4 CFLAGS-e_atan2-fma4.c = -mfma4 @@ -105,16 +119,6 @@ CFLAGS-s_sin-fma4.c = -mfma4 CFLAGS-s_tan-fma4.c = -mfma4 CFLAGS-s_sincos-fma4.c = -mfma4 -libm-sysdep_routines += \ - e_atan2-avx \ - e_exp-avx \ - e_log-avx \ - s_atan-avx \ - s_sin-avx \ - s_sincos-avx \ - s_tan-avx \ -# libm-sysdep_routines - CFLAGS-e_atan2-avx.c = -msse2avx -DSSE2AVX CFLAGS-e_exp-avx.c = -msse2avx -DSSE2AVX CFLAGS-e_log-avx.c = -msse2avx -DSSE2AVX |