This is the mail archive of the newlib@sourceware.org mailing list for the newlib project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH, NEWLIB/ARM] Optimise memchr for NEON-enabled processors


This patch provides an optimised implementation of memchr using NEON
instructions to improve its performance, especially with longer search regions.
This gave at least double the performance against the Thumb2+DSP optimised code,
with as much as quadruple performance for larger inputs. The NEON code also wins
in cases where the input is small (less than 8 bytes) by defaulting to a simple
byte-by-byte search. This avoids the overhead imposed by filling two quadword
registers from memory.

newlib/ChangeLog:

2017-01-26  Prakhar Bahuguna  <prakhar.bahuguna@arm.com>

	* newlib/libc/machine/arm/memchr-stub.c: Add __ARM_NEON__ ifdef.
	Change if to elif.
	* newlib/libc/machine/arm/memchr.S: Add __ARM_NEON__ ifdef.
	Add NEON-optimised memchr implementation.
	Change if to elif.

Testing done: Ran regression tests for arm-eabi-none, and benchmark tests on
hardware.

Okay for master?

--

Prakhar Bahuguna

Attachment: 0001-Optimise-memchr-for-NEON-enabled-processors.patch
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]