glibc/sysdeps/x86_64
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
..
64 Move x86_64 code out of nptl/ subdirectory. 2014-06-11 21:33:32 -07:00
bits Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
fpu Fix __ieee754_logl (-LDBL_MAX) in FE_DOWNWARD mode (bug 17022). 2014-06-18 12:32:01 +00:00
multiarch Add x86_64 memset optimized for AVX2 2014-06-19 15:14:08 -07:00
nptl Move i386 code out of nptl/ subdirectory. 2014-06-12 10:08:24 -07:00
x32 Move x86_64 code out of nptl/ subdirectory. 2014-06-11 21:33:32 -07:00
____longjmp_chk.S ____longjmp_chk is now OS-specific. 2009-07-30 21:42:27 -07:00
__longjmp.S Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
_mcount.S Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
abort-instr.h
add_n.S Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
addmul_1.S Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
backtrace.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
bsd-_setjmp.S Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
bsd-setjmp.S Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
bzero.S Make an empty file. 2007-10-16 05:59:15 +00:00
cacheinfo.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
configure Save/restore bound registers in _dl_runtime_resolve 2014-04-09 15:38:09 -07:00
configure.ac Save/restore bound registers in _dl_runtime_resolve 2014-04-09 15:38:09 -07:00
crti.S Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
crtn.S Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
dl-irel.h Use glibc_likely instead __builtin_expect. 2014-02-10 15:07:12 +01:00
dl-lookupcfg.h Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
dl-machine.h Use glibc_likely instead __builtin_expect. 2014-02-10 15:07:12 +01:00
dl-runtime.c * elf/dl-runtime.c (reloc_offset): Define. 2009-03-15 00:26:14 +00:00
dl-tls.h Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
dl-tlsdesc.h Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
dl-tlsdesc.S Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
dl-trampoline.h Save/restore bound registers for _dl_runtime_profile 2014-04-16 14:46:49 -07:00
dl-trampoline.S Save/restore bound registers for _dl_runtime_profile 2014-04-16 14:46:49 -07:00
ffs.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
ffsll.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
hp-timing.c
hp-timing.h Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
htonl.S Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
Implies Use x86-64 bits/byteswap.h for both i386 and x86_64 2012-05-30 14:13:18 -07:00
jmpbuf-offsets.h Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
jmpbuf-unwind.h Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
l10nflist.c Minor optimization of popcount in l10nflist 2011-08-11 14:07:04 -04:00
ldbl2mpn.c [BZ #4586] 2007-06-08 02:50:59 +00:00
ldsodefs.h Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
link-defines.sym Replace __int128 with __int128_t 2014-05-30 10:50:21 -07:00
locale-defines.sym Implement optimized strcaecmp for x86-64. 2010-07-30 00:14:04 -07:00
lshift.S Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
machine-gmon.h Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
Makefile Save and restore AVX-512 zmm registers to x86-64 ld.so 2014-03-13 11:19:08 -07:00
memchr.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.S Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
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.S Remove bounded-pointers handling from x86_64 assembly sources. 2013-02-17 21:57:26 +00:00
memrchr.S Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
memset_chk.S Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
memset.S Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
memusage.h Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
mp_clz_tab.c * sysdeps/x86_64/mp_clz_tab.c: New file. 2009-04-15 04:30:41 +00:00
mul_1.S Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
preconfigure rename configure.in to configure.ac 2013-10-30 17:32:08 +10:00
preconfigure.ac rename configure.in to configure.ac 2013-10-30 17:32:08 +10:00
rawmemchr.S Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
rshift.S Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
rtld-memcmp.c Make sure no code in ld.so uses xmm/ymm registers on x86-64. 2009-07-26 16:10:00 -07:00
rtld-memset.S Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
rtld-strchr.S Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
rtld-strlen.S Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
sched_cpucount.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
setjmp.S Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
stackguard-macros.h BZ #15754: CVE-2013-4788 2013-09-23 00:52:09 -04:00
stackinfo.h Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
start.S Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
stpcpy_chk.S
stpcpy.S
strcasecmp_l-nonascii.c Remove pre-ISO C support 2012-01-07 23:57:22 -05:00
strcasecmp_l.S Implement optimized strcaecmp for x86-64. 2010-07-30 00:14:04 -07:00
strcasecmp.S Implement optimized strcaecmp for x86-64. 2010-07-30 00:14:04 -07:00
strcat.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
strchrnul.S Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
strcmp.S Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
strcpy_chk.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.S Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
strlen.S Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
strncase_l-nonascii.c Remove pre-ISO C support 2012-01-07 23:57:22 -05:00
strncase_l.S Add optimized strncasecmp versions for x86-64. 2010-08-14 22:04:01 -07:00
strncase.S Add optimized strncasecmp versions for x86-64. 2010-08-14 22:04:01 -07:00
strncmp.S Add SSE2 support to str{,n}cmp for x86-64. 2009-07-26 13:32:28 -07:00
strnlen.S Faster strlen on x64. 2013-03-18 07:39:12 +01:00
strpbrk.S
strrchr.S 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
strtok_r.S Remove bounded-pointers handling from x86_64 assembly sources. 2013-02-17 21:57:26 +00:00
strtok.S Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
sub_n.S Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
submul_1.S Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
sysdep.h Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
tls-macros.h Split tls-macros.h into sysdeps directories. 2012-07-17 11:30:58 +00:00
tlsdesc.c Factor mmap/munmap of PT_LOAD segments out of _dl_map_object_from_fd et al. 2014-04-03 10:47:14 -07:00
tlsdesc.sym Introduce TLS descriptors for i386 and x86_64. 2008-05-13 05:41:30 +00:00
tst-audit3.c Move x86_64-specific audit tests to sysdeps/x86_64/. 2013-04-25 19:23:11 +00:00
tst-audit4.c Move x86_64-specific audit tests to sysdeps/x86_64/. 2013-04-25 19:23:11 +00:00
tst-audit5.c Move x86_64-specific audit tests to sysdeps/x86_64/. 2013-04-25 19:23:11 +00:00
tst-audit6.c Move x86_64-specific audit tests to sysdeps/x86_64/. 2013-04-25 19:23:11 +00:00
tst-audit7.c Move x86_64-specific audit tests to sysdeps/x86_64/. 2013-04-25 19:23:11 +00:00
tst-audit10.c Save and restore AVX-512 zmm registers to x86-64 ld.so 2014-03-13 11:19:08 -07:00
tst-audit.h Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
tst-auditmod3a.c Move x86_64-specific audit tests to sysdeps/x86_64/. 2013-04-25 19:23:11 +00:00
tst-auditmod3b.c Move x86_64-specific audit tests to sysdeps/x86_64/. 2013-04-25 19:23:11 +00:00
tst-auditmod4a.c Move x86_64-specific audit tests to sysdeps/x86_64/. 2013-04-25 19:23:11 +00:00
tst-auditmod4b.c Move x86_64-specific audit tests to sysdeps/x86_64/. 2013-04-25 19:23:11 +00:00
tst-auditmod5a.c Move x86_64-specific audit tests to sysdeps/x86_64/. 2013-04-25 19:23:11 +00:00
tst-auditmod5b.c Move x86_64-specific audit tests to sysdeps/x86_64/. 2013-04-25 19:23:11 +00:00
tst-auditmod6a.c Move x86_64-specific audit tests to sysdeps/x86_64/. 2013-04-25 19:23:11 +00:00
tst-auditmod6b.c Move x86_64-specific audit tests to sysdeps/x86_64/. 2013-04-25 19:23:11 +00:00
tst-auditmod6c.c Move x86_64-specific audit tests to sysdeps/x86_64/. 2013-04-25 19:23:11 +00:00
tst-auditmod7a.c Move x86_64-specific audit tests to sysdeps/x86_64/. 2013-04-25 19:23:11 +00:00
tst-auditmod7b.c Move x86_64-specific audit tests to sysdeps/x86_64/. 2013-04-25 19:23:11 +00:00
tst-auditmod10a.c Save and restore AVX-512 zmm registers to x86-64 ld.so 2014-03-13 11:19:08 -07:00
tst-auditmod10b.c Save and restore AVX-512 zmm registers to x86-64 ld.so 2014-03-13 11:19:08 -07:00
tst-mallocalign1.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
tst-quad1.c Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
tst-quad1pie.c Handle R_X86_64_RELATIVE64 and R_X86_64_64 for x32 2012-05-10 17:05:06 -07:00
tst-quad2.c Handle R_X86_64_RELATIVE64 and R_X86_64_64 for x32 2012-05-10 17:05:06 -07:00
tst-quad2pie.c Handle R_X86_64_RELATIVE64 and R_X86_64_64 for x32 2012-05-10 17:05:06 -07:00
tst-quadmod1.S Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
tst-quadmod1pie.S Handle R_X86_64_RELATIVE64 and R_X86_64_64 for x32 2012-05-10 17:05:06 -07:00
tst-quadmod2.S Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
tst-quadmod2pie.S Handle R_X86_64_RELATIVE64 and R_X86_64_64 for x32 2012-05-10 17:05:06 -07:00
tst-stack-align.h Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
Versions Work around old buggy program which cannot cope with memcpy semantics. 2011-04-01 19:38:21 -04:00
wcschr.S Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
wcscmp.S Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
wcslen.S Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
wcsrchr.S Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00