newlib-cygwin/newlib/libc/machine
Siddhesh Poyarekar f44eee8f1b Improve strncmp for mutually misaligned inputs
The mutually misaligned inputs on aarch64 are compared with a simple
byte copy, which is not very efficient.  Enhance the comparison
similar to strcmp by loading a double-word at a time.  The peak
performance improvement (i.e. 4k maxlen comparisons) due to this on
the strncmp microbenchmark in glibc is as follows:

falkor: 3.5x (up to 72% time reduction)
cortex-a73: 3.5x (up to 71% time reduction)
cortex-a53: 3.5x (up to 71% time reduction)

All mutually misaligned inputs from 16 bytes maxlen onwards show
upwards of 15% improvement and there is no measurable effect on the
performance of aligned/mutually aligned inputs.
2018-07-13 13:27:54 +02:00
..
a29k Add nvptx port. 2018-04-13 15:42:37 -04:00
aarch64 Improve strncmp for mutually misaligned inputs 2018-07-13 13:27:54 +02:00
arc Add nvptx port. 2018-04-13 15:42:37 -04:00
arm Add nvptx port. 2018-04-13 15:42:37 -04:00
bfin Add nvptx port. 2018-04-13 15:42:37 -04:00
cr16 Add nvptx port. 2018-04-13 15:42:37 -04:00
cris Add nvptx port. 2018-04-13 15:42:37 -04:00
crx Add nvptx port. 2018-04-13 15:42:37 -04:00
d10v Add nvptx port. 2018-04-13 15:42:37 -04:00
d30v Add nvptx port. 2018-04-13 15:42:37 -04:00
epiphany Add nvptx port. 2018-04-13 15:42:37 -04:00
fr30 Add nvptx port. 2018-04-13 15:42:37 -04:00
frv Add nvptx port. 2018-04-13 15:42:37 -04:00
ft32 Add nvptx port. 2018-04-13 15:42:37 -04:00
h8300 Add nvptx port. 2018-04-13 15:42:37 -04:00
h8500 Add nvptx port. 2018-04-13 15:42:37 -04:00
hppa Add nvptx port. 2018-04-13 15:42:37 -04:00
i386 Add nvptx port. 2018-04-13 15:42:37 -04:00
i960 Add nvptx port. 2018-04-13 15:42:37 -04:00
iq2000 Add nvptx port. 2018-04-13 15:42:37 -04:00
lm32 Add nvptx port. 2018-04-13 15:42:37 -04:00
m32c Add nvptx port. 2018-04-13 15:42:37 -04:00
m32r Add nvptx port. 2018-04-13 15:42:37 -04:00
m68hc11 Add nvptx port. 2018-04-13 15:42:37 -04:00
m68k Add nvptx port. 2018-04-13 15:42:37 -04:00
m88k Add nvptx port. 2018-04-13 15:42:37 -04:00
mep Add nvptx port. 2018-04-13 15:42:37 -04:00
microblaze Add nvptx port. 2018-04-13 15:42:37 -04:00
mips Add nvptx port. 2018-04-13 15:42:37 -04:00
mn10200 Add nvptx port. 2018-04-13 15:42:37 -04:00
mn10300 Add nvptx port. 2018-04-13 15:42:37 -04:00
moxie Add nvptx port. 2018-04-13 15:42:37 -04:00
msp430 Add nvptx port. 2018-04-13 15:42:37 -04:00
mt Add nvptx port. 2018-04-13 15:42:37 -04:00
nds32 Add nvptx port. 2018-04-13 15:42:37 -04:00
necv70 Add nvptx port. 2018-04-13 15:42:37 -04:00
nios2 Add nvptx port. 2018-04-13 15:42:37 -04:00
nvptx Add nvptx port. 2018-04-13 15:42:37 -04:00
or1k Add nvptx port. 2018-04-13 15:42:37 -04:00
powerpc Add nvptx port. 2018-04-13 15:42:37 -04:00
riscv Add nvptx port. 2018-04-13 15:42:37 -04:00
rl78 Add nvptx port. 2018-04-13 15:42:37 -04:00
rx Add nvptx port. 2018-04-13 15:42:37 -04:00
sh Add nvptx port. 2018-04-13 15:42:37 -04:00
sparc Add nvptx port. 2018-04-13 15:42:37 -04:00
spu Add nvptx port. 2018-04-13 15:42:37 -04:00
tic4x Add nvptx port. 2018-04-13 15:42:37 -04:00
tic6x Add nvptx port. 2018-04-13 15:42:37 -04:00
tic80 Add nvptx port. 2018-04-13 15:42:37 -04:00
v850 Add nvptx port. 2018-04-13 15:42:37 -04:00
visium Add nvptx port. 2018-04-13 15:42:37 -04:00
w65 Add nvptx port. 2018-04-13 15:42:37 -04:00
x86_64 Add nvptx port. 2018-04-13 15:42:37 -04:00
xc16x Add nvptx port. 2018-04-13 15:42:37 -04:00
xscale Add nvptx port. 2018-04-13 15:42:37 -04:00
xstormy16 Add nvptx port. 2018-04-13 15:42:37 -04:00
z8k Add nvptx port. 2018-04-13 15:42:37 -04:00
Makefile.am Make newlib manpages (v3) 2016-07-04 14:17:10 +01:00
Makefile.in Regenerate newlib Makefiles 2016-07-04 17:13:55 +01:00
aclocal.m4 2012-12-20 Jeff Johnston <jjohnstn@redhat.com> 2012-12-20 21:10:27 +00:00
configure Add nvptx port. 2018-04-13 15:42:37 -04:00
configure.in Add nvptx port. 2018-04-13 15:42:37 -04:00