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 memcmp for atom and wmemcmp for IA


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.

Attachment: memcmp_wmemcmp.patch
Description: Binary data

Attachment: ChangeLog.memcmp_wmemcmp
Description: Binary data


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