1ifeq ($(subdir),math)
2libm-sysdep_routines += s_floor-c s_ceil-c s_floorf-c s_ceilf-c \
3			s_rint-c s_rintf-c s_nearbyint-c s_nearbyintf-c \
4			s_roundeven-c s_roundevenf-c s_trunc-c s_truncf-c
5
6libm-sysdep_routines += s_ceil-sse4_1 s_ceilf-sse4_1 s_floor-sse4_1 \
7			s_floorf-sse4_1 s_nearbyint-sse4_1 \
8			s_nearbyintf-sse4_1 s_roundeven-sse4_1 \
9			s_roundevenf-sse4_1 s_rint-sse4_1 s_rintf-sse4_1 \
10			s_trunc-sse4_1 s_truncf-sse4_1
11
12libm-sysdep_routines += e_exp-fma e_log-fma e_pow-fma s_atan-fma \
13			e_asin-fma e_atan2-fma s_sin-fma s_tan-fma
14
15CFLAGS-e_asin-fma.c = -mfma -mavx2
16CFLAGS-e_atan2-fma.c = -mfma -mavx2
17CFLAGS-e_exp-fma.c = -mfma -mavx2
18CFLAGS-e_log-fma.c = -mfma -mavx2
19CFLAGS-e_pow-fma.c = -mfma -mavx2
20CFLAGS-s_atan-fma.c = -mfma -mavx2
21CFLAGS-s_sin-fma.c = -mfma -mavx2
22CFLAGS-s_tan-fma.c = -mfma -mavx2
23
24libm-sysdep_routines += s_sinf-sse2 s_cosf-sse2 s_sincosf-sse2
25
26libm-sysdep_routines += e_exp2f-fma e_expf-fma e_log2f-fma e_logf-fma \
27			e_powf-fma s_sinf-fma s_cosf-fma s_sincosf-fma
28
29CFLAGS-e_exp2f-fma.c = -mfma -mavx2
30CFLAGS-e_expf-fma.c = -mfma -mavx2
31CFLAGS-e_log2f-fma.c = -mfma -mavx2
32CFLAGS-e_logf-fma.c = -mfma -mavx2
33CFLAGS-e_powf-fma.c = -mfma -mavx2
34CFLAGS-s_sinf-fma.c = -mfma -mavx2
35CFLAGS-s_cosf-fma.c = -mfma -mavx2
36CFLAGS-s_sincosf-fma.c = -mfma -mavx2
37
38libm-sysdep_routines += e_exp-fma4 e_log-fma4 e_pow-fma4 s_atan-fma4 \
39			e_asin-fma4 e_atan2-fma4 s_sin-fma4 s_tan-fma4
40
41CFLAGS-e_asin-fma4.c = -mfma4
42CFLAGS-e_atan2-fma4.c = -mfma4
43CFLAGS-e_exp-fma4.c = -mfma4
44CFLAGS-e_log-fma4.c = -mfma4
45CFLAGS-e_pow-fma4.c = -mfma4
46CFLAGS-s_atan-fma4.c = -mfma4
47CFLAGS-s_sin-fma4.c = -mfma4
48CFLAGS-s_tan-fma4.c = -mfma4
49
50libm-sysdep_routines += e_exp-avx e_log-avx s_atan-avx \
51			e_atan2-avx s_sin-avx s_tan-avx
52
53CFLAGS-e_atan2-avx.c = -msse2avx -DSSE2AVX
54CFLAGS-e_exp-avx.c = -msse2avx -DSSE2AVX
55CFLAGS-e_log-avx.c = -msse2avx -DSSE2AVX
56CFLAGS-s_atan-avx.c = -msse2avx -DSSE2AVX
57CFLAGS-s_sin-avx.c = -msse2avx -DSSE2AVX
58CFLAGS-s_tan-avx.c = -msse2avx -DSSE2AVX
59endif
60
61ifeq ($(subdir),mathvec)
62libmvec-multiarch-double-func-list = \
63  2_core-sse2 \
64  2_core_sse4 \
65  4_core-sse \
66  4_core_avx2 \
67  8_core-avx2 \
68  8_core_avx512
69libmvec-multiarch-float-func-list = \
70  f4_core-sse2 \
71  f4_core_sse4 \
72  f8_core-sse \
73  f8_core_avx2 \
74  f16_core-avx2 \
75  f16_core_avx512
76
77libmvec-sysdep_routines += \
78  $(foreach l,$(libmvec-multiarch-double-func-list), \
79    $(addprefix svml_d_,$(addsuffix $(l),$(libmvec-funcs)))) \
80  $(foreach l,$(libmvec-multiarch-float-func-list), \
81    $(addprefix svml_s_,$(addsuffix $(l),$(libmvec-funcs))))
82endif
83