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