]> git.ipfire.org Git - thirdparty/glibc.git/blame - sysdeps/aarch64/fpu/Makefile
aarch64: Add vector implementations of tan routines
[thirdparty/glibc.git] / sysdeps / aarch64 / fpu / Makefile
CommitLineData
3bb1af20 1libmvec-supported-funcs = cos \
4a9392ff 2 exp \
78c01a5c 3 log \
f554334c
JR
4 sin \
5 tan
cd94326a 6
3bb1af20
JR
7float-advsimd-funcs = $(libmvec-supported-funcs)
8double-advsimd-funcs = $(libmvec-supported-funcs)
9float-sve-funcs = $(libmvec-supported-funcs)
10double-sve-funcs = $(libmvec-supported-funcs)
cd94326a
JR
11
12ifeq ($(subdir),mathvec)
13libmvec-support = $(addsuffix f_advsimd,$(float-advsimd-funcs)) \
14 $(addsuffix _advsimd,$(double-advsimd-funcs)) \
15 $(addsuffix f_sve,$(float-sve-funcs)) \
78c01a5c 16 $(addsuffix _sve,$(double-sve-funcs)) \
4a9392ff
JR
17 v_log_data \
18 v_exp_data
cd94326a
JR
19endif
20
21sve-cflags = -march=armv8-a+sve
22
23
24ifeq ($(build-mathvec),yes)
25bench-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))
29endif
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
40ifeq (${STATIC-BENCHTESTS},yes)
41libmvec-benchtests = $(common-objpfx)mathvec/libmvec.a $(common-objpfx)math/libm.a
42else
43libmvec-benchtests = $(libmvec) $(libm)
44endif
45
46$(addprefix $(objpfx)bench-,$(bench-libmvec)): $(libmvec-benchtests)
47
48ifeq ($(build-mathvec),yes)
49libmvec-tests += float-advsimd double-advsimd float-sve double-sve
50endif
51
52define sve-float-cflags-template
53CFLAGS-$(1)f_sve.c += $(sve-cflags)
54CFLAGS-bench-float-sve-$(1).c += $(sve-cflags)
55endef
56
57define sve-double-cflags-template
58CFLAGS-$(1)_sve.c += $(sve-cflags)
59CFLAGS-bench-double-sve-$(1).c += $(sve-cflags)
60endef
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
65CFLAGS-test-float-sve-wrappers.c = $(sve-cflags)
66CFLAGS-test-double-sve-wrappers.c = $(sve-cflags)