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