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