glibc/sysdeps/x86_64/multiarch
Ling Ma 5c74e47cd6 Add x86_64 memset optimized for AVX2
In this patch we take advantage of HSW memory bandwidth, manage to
reduce miss branch prediction by avoiding using branch instructions and
force destination to be aligned with avx & avx2 instruction.

The CPU2006 403.gcc benchmark indicates this patch improves performance
from 26% to 59%.

	* sysdeps/x86_64/multiarch/Makefile: Add memset-avx2.
	* sysdeps/x86_64/multiarch/memset-avx2.S: New file.
	* sysdeps/x86_64/multiarch/memset.S: Likewise.
	* sysdeps/x86_64/multiarch/memset_chk.S: Likewise.
	* sysdeps/x86_64/multiarch/rtld-memset.S: Likewise.
2014-06-19 15:14:08 -07:00
..
bcopy.S Use IFUNC memmove/memset in x86-64 bcopy/bzero 2012-10-11 13:58:16 -07:00
cacheinfo.c
ifunc-defines.sym Detect if AVX2 is usable 2014-04-17 08:00:21 -07:00
ifunc-impl-list.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
init-arch.c Detect if AVX2 is usable 2014-04-17 08:00:21 -07:00
init-arch.h Fix -Wundef warning for FEATURE_INDEX_1. 2014-05-03 00:25:21 -04:00
Makefile Add x86_64 memset optimized for AVX2 2014-06-19 15:14:08 -07:00
memcmp-sse4.S Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
memcmp-ssse3.S Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
memcmp.S Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
memcpy_chk.S Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
memcpy-sse2-unaligned.S Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
memcpy-ssse3-back.S Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
memcpy-ssse3.S Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
memcpy.S Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
memmove_chk.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
memmove-ssse3-back.S
memmove-ssse3.S
memmove.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
mempcpy_chk.S Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
mempcpy-ssse3-back.S
mempcpy-ssse3.S
mempcpy.S Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
memset_chk.S Add x86_64 memset optimized for AVX2 2014-06-19 15:14:08 -07:00
memset-avx2.S Add x86_64 memset optimized for AVX2 2014-06-19 15:14:08 -07:00
memset.S Add x86_64 memset optimized for AVX2 2014-06-19 15:14:08 -07:00
rtld-memcmp.c
rtld-memset.S Add x86_64 memset optimized for AVX2 2014-06-19 15:14:08 -07:00
rtld-strlen.S
sched_cpucount.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
stpcpy-sse2-unaligned.S
stpcpy-ssse3.S
stpcpy.S Add x86-64 __libc_ifunc_impl_list 2012-10-11 16:41:12 -07:00
stpncpy-c.c
stpncpy-sse2-unaligned.S
stpncpy-ssse3.S
stpncpy.S Add x86-64 __libc_ifunc_impl_list 2012-10-11 16:41:12 -07:00
strcasecmp_l-ssse3.S
strcasecmp_l.S Add x86-64 __libc_ifunc_impl_list 2012-10-11 16:41:12 -07:00
strcasestr.c Add strstr with unaligned loads. Fixes bug 12100. 2013-12-14 20:08:13 +01:00
strcat-sse2-unaligned.S Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
strcat-ssse3.S Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
strcat.S Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
strchr-sse2-no-bsf.S Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
strchr.S Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
strcmp-sse2-unaligned.S Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
strcmp-sse42.S Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
strcmp-ssse3.S
strcmp.S Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
strcpy-sse2-unaligned.S Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
strcpy-ssse3.S Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
strcpy.S Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
strcspn-c.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
strcspn.S Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
strncase_l-ssse3.S
strncase_l.S Add x86-64 __libc_ifunc_impl_list 2012-10-11 16:41:12 -07:00
strncat-c.c
strncat-sse2-unaligned.S
strncat-ssse3.S
strncat.S Add x86-64 __libc_ifunc_impl_list 2012-10-11 16:41:12 -07:00
strncmp-ssse3.S Don't define x86-64 __strncmp_ssse3 in libc.a 2012-09-27 07:43:03 -07:00
strncmp.S Add x86-64 __libc_ifunc_impl_list 2012-10-11 16:41:12 -07:00
strncpy-c.c
strncpy-sse2-unaligned.S
strncpy-ssse3.S
strncpy.S Add x86-64 __libc_ifunc_impl_list 2012-10-11 16:41:12 -07:00
strpbrk-c.c
strpbrk.S Add x86-64 __libc_ifunc_impl_list 2012-10-11 16:41:12 -07:00
strspn-c.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
strspn.S Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
strstr-sse2-unaligned.S Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
strstr.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
test-multiarch.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
varshift.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
varshift.h Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
Versions
wcscpy-c.c
wcscpy-ssse3.S Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
wcscpy.S Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
wmemcmp-c.c
wmemcmp-sse4.S
wmemcmp-ssse3.S
wmemcmp.S Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00