PATCH: Improve memcmp for atom and wmemcmp for IA

Dmitrieva Liubov liubov.dmitrieva@gmail.com
Tue Sep 27 14:20:00 GMT 2011


Hello,

This patch consists of new functions:
x86_64:
memcmp_ssse3
wmemcmp_ssse3
wmemcmp_sse4
x86_32:
wmemcmp_ssse3
wmemcmp_sse4

This patch
--- improves memcmp for atom in 64 bit mode by up to 4X.
--- improves wmemcmp for atom in 64 bit mode by up to 3.5X and for
core i5, core i7 by up to 3.8X.
--- improves wmemcmp for atom in 32 bit mode by up to 3.3X and for
core i5, core i7 by up to 4X.

The patch was tested on atom, core 2, core i7.

This patch additionally fixes bugs in wcsmbs/wmemcmp.c and
sysdeps/string/test-memcmp.c (simple_wmemcmp).

--
Liubov Dmitrieva
Software Engineer
Intel Corporation

Change Log:
2011-09-27  Liubov Dmitrieva  <liubov.dmitrieva@gmail.com>

	* sysdeps/x86_64/multiarch/Makefile: (sysdep_routines): Add
	memcmp-ssse3 wmemcmp-sse4 wmemcmp-ssse3 wmemcmp-c

	* sysdeps/x86_64/multiarch/memcmp-ssse3: New file.
	* sysdeps/x86_64/multiarch/memcmp.S: Update.
	Add __memcmp_ssse3.
	* sysdeps/x86_64/multiarch/memcmp-sse4.S: Update.
	(USE_AS_WMEMCMP): New macro.
	Fixing indents.

	* sysdeps/x86_64/multiarch/wmemcmp.S: New file.
	* sysdeps/x86_64/multiarch/wmemcmp-ssse3.S: New file.
	* sysdeps/x86_64/multiarch/wmemcmp-sse4.S: New file.
	* sysdeps/x86_64/multiarch/wmemcmp-c.S: New file.

	* sysdeps/i386/i686/multiarch/Makefile (sysdep_routines): Add
	wmemcmp-ssse3 wmemcmp-sse4 wmemcmp-c

	* sysdeps/i386/i686/multiarch/wmemcmp.S: New file.
	* sysdeps/i386/i686/multiarch/wmemcmp-c.c: New file.
	* sysdeps/i386/i686/multiarch/wmemcmp-ssse3.S: New file.
	* sysdeps/i386/i686/multiarch/wmemcmp-sse4.S: New file.

	* sysdeps/i386/i686/multiarch/memcmp-sse4.S: Update.
	(USE_AS_WMEMCMP): New macro.
	* sysdeps/i386/i686/multiarch/memcmp-ssse3: Likewise.

	* sysdeps/string/test-memcmp.c: Update.
	Fix simple_wmemcmp.
	Add new tests.
	* wcsmbs/wmemcmp.c: Update.
	(WMEMCMP): New macro.
	Fix overflow bug.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: memcmp_wmemcmp.patch
Type: application/octet-stream
Size: 93066 bytes
Desc: not available
URL: <http://sourceware.org/pipermail/libc-alpha/attachments/20110927/188763be/attachment.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ChangeLog.memcmp_wmemcmp
Type: application/octet-stream
Size: 1214 bytes
Desc: not available
URL: <http://sourceware.org/pipermail/libc-alpha/attachments/20110927/188763be/attachment-0001.obj>


More information about the Libc-alpha mailing list