aarch64: Add vector implementations of exp10 routines
[glibc.git] / sysdeps / aarch64 / fpu / Makefile
blob1f1ac2a2b8a96f23f3806343e27e127f5911b712
1 libmvec-supported-funcs = cos \
2 exp \
3 exp10 \
4 exp2 \
5 log \
6 log10 \
7 log2 \
8 sin \
9 tan
11 float-advsimd-funcs = $(libmvec-supported-funcs)
12 double-advsimd-funcs = $(libmvec-supported-funcs)
13 float-sve-funcs = $(libmvec-supported-funcs)
14 double-sve-funcs = $(libmvec-supported-funcs)
16 ifeq ($(subdir),mathvec)
17 libmvec-support = $(addsuffix f_advsimd,$(float-advsimd-funcs)) \
18 $(addsuffix _advsimd,$(double-advsimd-funcs)) \
19 $(addsuffix f_sve,$(float-sve-funcs)) \
20 $(addsuffix _sve,$(double-sve-funcs)) \
21 v_log_data \
22 v_exp_data \
23 v_log2_data \
24 v_log10_data
25 endif
27 sve-cflags = -march=armv8-a+sve
30 ifeq ($(build-mathvec),yes)
31 bench-libmvec = $(addprefix float-advsimd-,$(float-advsimd-funcs)) \
32 $(addprefix double-advsimd-,$(double-advsimd-funcs)) \
33 $(addprefix float-sve-,$(float-sve-funcs)) \
34 $(addprefix double-sve-,$(double-sve-funcs))
35 endif
37 $(objpfx)bench-float-advsimd-%.c:
38 $(PYTHON) $(..)sysdeps/aarch64/fpu/scripts/bench_libmvec_advsimd.py $(basename $(@F)) > $@
39 $(objpfx)bench-double-advsimd-%.c:
40 $(PYTHON) $(..)sysdeps/aarch64/fpu/scripts/bench_libmvec_advsimd.py $(basename $(@F)) > $@
41 $(objpfx)bench-float-sve-%.c:
42 $(PYTHON) $(..)sysdeps/aarch64/fpu/scripts/bench_libmvec_sve.py $(basename $(@F)) > $@
43 $(objpfx)bench-double-sve-%.c:
44 $(PYTHON) $(..)sysdeps/aarch64/fpu/scripts/bench_libmvec_sve.py $(basename $(@F)) > $@
46 ifeq (${STATIC-BENCHTESTS},yes)
47 libmvec-benchtests = $(common-objpfx)mathvec/libmvec.a $(common-objpfx)math/libm.a
48 else
49 libmvec-benchtests = $(libmvec) $(libm)
50 endif
52 $(addprefix $(objpfx)bench-,$(bench-libmvec)): $(libmvec-benchtests)
54 ifeq ($(build-mathvec),yes)
55 libmvec-tests += float-advsimd double-advsimd float-sve double-sve
56 endif
58 define sve-float-cflags-template
59 CFLAGS-$(1)f_sve.c += $(sve-cflags)
60 CFLAGS-bench-float-sve-$(1).c += $(sve-cflags)
61 endef
63 define sve-double-cflags-template
64 CFLAGS-$(1)_sve.c += $(sve-cflags)
65 CFLAGS-bench-double-sve-$(1).c += $(sve-cflags)
66 endef
68 $(foreach f,$(float-sve-funcs), $(eval $(call sve-float-cflags-template,$(f))))
69 $(foreach f,$(double-sve-funcs), $(eval $(call sve-double-cflags-template,$(f))))
71 CFLAGS-test-float-sve-wrappers.c = $(sve-cflags)
72 CFLAGS-test-double-sve-wrappers.c = $(sve-cflags)