diff options
author | Sunil K Pandey <skpgkp2@gmail.com> | 2021-11-05 00:56:47 -0700 |
---|---|---|
committer | Sunil K Pandey <skpgkp2@gmail.com> | 2021-11-16 11:37:39 -0800 |
commit | a43c0b5483da4c5e3796af309864cb44256c02db (patch) | |
tree | a902af371c47da07212dc1022d8e9a39f83f7769 /sysdeps/x86_64/fpu/Makeconfig | |
parent | d8c2e8e0439b715918ee69b70aab4d222c17e2ca (diff) | |
download | glibc-a43c0b5483da4c5e3796af309864cb44256c02db.tar.gz glibc-a43c0b5483da4c5e3796af309864cb44256c02db.tar.xz glibc-a43c0b5483da4c5e3796af309864cb44256c02db.zip |
x86-64: Create microbenchmark infrastructure for libmvec
Add python script to generate libmvec microbenchmark from the input values for each libmvec function using skeleton benchmark template. Creates double and float benchmarks with vector length 1, 2, 4, 8, and 16 for each libmvec function. Vector length 1 corresponds to scalar version of function and is included for vector function perf comparison. Co-authored-by: Haochen Jiang <haochen.jiang@intel.com> Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
Diffstat (limited to 'sysdeps/x86_64/fpu/Makeconfig')
-rw-r--r-- | sysdeps/x86_64/fpu/Makeconfig | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/sysdeps/x86_64/fpu/Makeconfig b/sysdeps/x86_64/fpu/Makeconfig index 24aaee1a43..503e9b5ffa 100644 --- a/sysdeps/x86_64/fpu/Makeconfig +++ b/sysdeps/x86_64/fpu/Makeconfig @@ -29,6 +29,23 @@ libmvec-funcs = \ sin \ sincos \ +# Define libmvec function for benchtests directory. +libmvec-bench-funcs = \ + +bench-libmvec-double = \ + $(addprefix double-vlen1-, $(libmvec-bench-funcs)) \ + $(addprefix double-vlen2-, $(libmvec-bench-funcs)) \ + $(addprefix double-vlen4-, $(libmvec-bench-funcs)) \ + $(addprefix double-vlen4-avx2-, $(libmvec-bench-funcs)) \ + $(addprefix double-vlen8-, $(libmvec-bench-funcs)) \ + +bench-libmvec-float = \ + $(addsuffix f, $(addprefix float-vlen1-, $(libmvec-bench-funcs))) \ + $(addsuffix f, $(addprefix float-vlen4-, $(libmvec-bench-funcs))) \ + $(addsuffix f, $(addprefix float-vlen8-, $(libmvec-bench-funcs))) \ + $(addsuffix f, $(addprefix float-vlen8-avx2-, $(libmvec-bench-funcs))) \ + $(addsuffix f, $(addprefix float-vlen16-, $(libmvec-bench-funcs))) \ + # The base libmvec ABI tests. libmvec-abi-func-tests = \ $(addprefix test-double-libmvec-,$(libmvec-funcs)) \ @@ -83,5 +100,23 @@ $(common-objpfx)libmvec.mk: $(common-objpfx)config.make echo " \$$(float-vlen16-arch-ext-cflags)"; \ echo; \ done; \ + echo "endif"; \ + echo "ifeq (\$$(subdir),benchtests)"; \ + for t in $(libmvec-bench-funcs); do \ + echo "CFLAGS-bench-double-vlen4-$$t.c = \\"; \ + echo " \$$(double-vlen4-arch-ext-cflags)"; \ + echo "CFLAGS-bench-double-vlen4-avx2-$$t.c = \\"; \ + echo " \$$(double-vlen4-arch-ext2-cflags)"; \ + echo "CFLAGS-bench-double-vlen8-$$t.c = \\"; \ + echo " \$$(double-vlen8-arch-ext-cflags)"; \ + echo; \ + echo "CFLAGS-bench-float-vlen8-$${t}f.c = \\"; \ + echo " \$$(float-vlen8-arch-ext-cflags)"; \ + echo "CFLAGS-bench-float-vlen8-avx2-$${t}f.c = \\"; \ + echo " \$$(float-vlen8-arch-ext2-cflags)"; \ + echo "CFLAGS-bench-float-vlen16-$${t}f.c = \\"; \ + echo " \$$(float-vlen16-arch-ext-cflags)"; \ + echo; \ + done; \ echo "endif") > $@T mv -f $@T $@ |