This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc 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: Improve 32 bit memchr, memrchr, rawmemchr with SSE2


Hello,

This patch improves memchr, rawmemchr, memrchr functions for all
architectures with SSE2 support.

For example, it improves performance:

-- for memchr
---- by up to 7X on atom, up to 9X on core7.

-- for memrchr
---- by up to 9X on atom, up to 11X on core7.

-- for rawmemchr
---- by up to 7X on atom, up to 9X on core7.

"Make check" was run successfully on my atom and core2 machines, I
built rpms and checked them as well.

ChangeLog:

2011-08-25  Liubov Dmitrieva  <liubov.dmitrieva@gmail.com>

	* sysdeps/i386/i686/multiarch/Makefile (sysdep_routines): Add
	memchr-sse2 memchr-sse2-bsf memchr-c
	memrchr-sse2 memrchr-sse2-bsf memrchr-c
	rawmemchr-sse2 rawmemchr-sse2-bsf rawmemchr-c

	* sysdeps/i386/i686/multiarch/memchr.S: New file.
	* sysdeps/i386/i686/multiarch/memchr-c.c: New file.
	* sysdeps/i386/i686/multiarch/memchr-sse2.S: New file.
	* sysdeps/i386/i686/multiarch/memchr-sse2-bsf.S: New file.

	* sysdeps/i386/i686/multiarch/memrchr.S: New file.
	* sysdeps/i386/i686/multiarch/memrchr-c.c: New file.
	* sysdeps/i386/i686/multiarch/memrchr-sse2.S: New file.
	* sysdeps/i386/i686/multiarch/memrchr-sse2-bsf.S: New file.

	* sysdeps/i386/i686/multiarch/rawmemchr.S: New file.
	* sysdeps/i386/i686/multiarch/rawmemchr-c.c: New file.
	* sysdeps/i386/i686/multiarch/rawmemchr-sse2.S: New file.
	* sysdeps/i386/i686/multiarch/rawmemchr-sse2-bsf.S: New file.

	* string/memchr.c
	(MEMCHR): New macro.
	* string/memrchr.c
	(MEMRCHR): New macro.
	* string/rawmemchr.c
	(RAWMEMCHR): New macro.


--
Liubov Dmitrieva
Software engineer
Intel Corporation

Attachment: memchr_family_32.patch
Description: Binary data

Attachment: ChangeLog.memchr_family_32
Description: Binary data


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