glibc/sysdeps/x86_64/multiarch
H.J. Lu 5f3d0b78e0 Use AVX unaligned memcpy only if AVX2 is available
memcpy with unaligned 256-bit AVX register loads/stores are slow on older
processorsl like Sandy Bridge.  This patch adds bit_AVX_Fast_Unaligned_Load
and sets it only when AVX2 is available.

	[BZ #17801]
	* sysdeps/x86_64/multiarch/init-arch.c (__init_cpu_features):
	Set the bit_AVX_Fast_Unaligned_Load bit for AVX2.
	* sysdeps/x86_64/multiarch/init-arch.h (bit_AVX_Fast_Unaligned_Load):
	New.
	(index_AVX_Fast_Unaligned_Load): Likewise.
	(HAS_AVX_FAST_UNALIGNED_LOAD): Likewise.
	* sysdeps/x86_64/multiarch/memcpy.S (__new_memcpy): Check the
	bit_AVX_Fast_Unaligned_Load bit instead of the bit_AVX_Usable bit.
	* sysdeps/x86_64/multiarch/memcpy_chk.S (__memcpy_chk): Likewise.
	* sysdeps/x86_64/multiarch/mempcpy.S (__mempcpy): Likewise.
	* sysdeps/x86_64/multiarch/mempcpy_chk.S (__mempcpy_chk): Likewise.
	* sysdeps/x86_64/multiarch/memmove.c (__libc_memmove): Replace
	HAS_AVX with HAS_AVX_FAST_UNALIGNED_LOAD.
	* sysdeps/x86_64/multiarch/memmove_chk.c (__memmove_chk): Likewise.
2015-01-30 15:37:58 -08:00
..
Makefile Improve 64bit memcpy performance for Haswell CPU with AVX instruction 2014-07-30 08:02:35 -07:00
Versions
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 dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
init-arch.c Use AVX unaligned memcpy only if AVX2 is available 2015-01-30 15:37:58 -08:00
init-arch.h Use AVX unaligned memcpy only if AVX2 is available 2015-01-30 15:37:58 -08:00
memcmp-sse4.S Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
memcmp-ssse3.S Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
memcmp.S Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
memcpy-avx-unaligned.S Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
memcpy-sse2-unaligned.S Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
memcpy-ssse3-back.S Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
memcpy-ssse3.S Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
memcpy.S Use AVX unaligned memcpy only if AVX2 is available 2015-01-30 15:37:58 -08:00
memcpy_chk.S Use AVX unaligned memcpy only if AVX2 is available 2015-01-30 15:37:58 -08:00
memmove-avx-unaligned.S Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
memmove-ssse3-back.S
memmove-ssse3.S
memmove.c Use AVX unaligned memcpy only if AVX2 is available 2015-01-30 15:37:58 -08:00
memmove_chk.c Use AVX unaligned memcpy only if AVX2 is available 2015-01-30 15:37:58 -08:00
mempcpy-avx-unaligned.S Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
mempcpy-ssse3-back.S
mempcpy-ssse3.S
mempcpy.S Use AVX unaligned memcpy only if AVX2 is available 2015-01-30 15:37:58 -08:00
mempcpy_chk.S Use AVX unaligned memcpy only if AVX2 is available 2015-01-30 15:37:58 -08:00
memset-avx2.S Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
memset.S Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
memset_chk.S Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
rtld-memcmp.c
rtld-memset.S Add x86_64 memset optimized for AVX2 2014-06-19 15:14:08 -07:00
sched_cpucount.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00: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 dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
strcat-ssse3.S Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
strcat.S Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
strchr-sse2-no-bsf.S Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
strchr.S Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
strcmp-sse2-unaligned.S Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
strcmp-sse42.S Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
strcmp-ssse3.S Remove NOT_IN_libc 2014-11-24 15:03:45 +05:30
strcmp.S Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
strcpy-sse2-unaligned.S Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
strcpy-ssse3.S Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
strcpy.S Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
strcspn-c.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
strcspn.S Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00: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 dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
strspn.S Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
strstr-sse2-unaligned.S Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
strstr.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
test-multiarch.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
varshift.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
varshift.h Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
wcscpy-c.c Remove NOT_IN_libc 2014-11-24 15:03:45 +05:30
wcscpy-ssse3.S Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
wcscpy.S Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
wmemcmp-c.c Remove NOT_IN_libc 2014-11-24 15:03:45 +05:30
wmemcmp-sse4.S
wmemcmp-ssse3.S
wmemcmp.S Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00