Add optimized str{,n}casecmp for AVX on x86-64

This commit is contained in:
Ulrich Drepper 2011-10-19 12:42:38 -04:00
parent 8f3b1ffefa
commit d9a4d2ab27
5 changed files with 1885 additions and 1799 deletions

View File

@ -1,3 +1,11 @@
2011-10-19 Ulrich Drepper <drepper@gmail.com>
* sysdeps/x86_64/multiarch/init-arch.h: Define bit_AVX and index_AVX.
* sysdeps/x86_64/multiarch/strcmp-sse42.S: New file. Split out from...
* sysdeps/x86_64/multiarch/strcmp.S: ...here. Include strcmp-sse42.S
when compiling str{,n}casecmp and when AVX is available. Hook up
new optimized code in initializers.
2011-10-19 Andreas Schwab <schwab@redhat.com>
* sysdeps/x86_64/fpu/math_private.h (libc_feupdateenv): Use

8
NEWS
View File

@ -1,4 +1,4 @@
GNU C Library NEWS -- history of user-visible changes. 2011-10-15
GNU C Library NEWS -- history of user-visible changes. 2011-10-19
Copyright (C) 1992-2009, 2010, 2011 Free Software Foundation, Inc.
See the end for copying conditions.
@ -47,6 +47,12 @@ Version 2.15
* Integrate libm with gcc's -ffinite-math-only option.
Implemented by Ulrich Drepper.
* Lots of generic, 64-bit, and x86-64-specific performance optimizations
to math functions. Implemented by Ulrich Drepper.
* Optimized strcasecmp and strncasecmp for AVX on x86-64.
Implemented by Ulrich Drepper.
Version 2.14

View File

@ -1,5 +1,5 @@
/* This file is part of the GNU C Library.
Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
Copyright (C) 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@ -31,11 +31,13 @@
# define bit_SSSE3 (1 << 9)
# define bit_SSE4_1 (1 << 19)
# define bit_SSE4_2 (1 << 20)
# define bit_AVX (1 << 28)
# define index_SSE2 COMMON_CPUID_INDEX_1*CPUID_SIZE+CPUID_EDX_OFFSET
# define index_SSSE3 COMMON_CPUID_INDEX_1*CPUID_SIZE+CPUID_ECX_OFFSET
# define index_SSE4_1 COMMON_CPUID_INDEX_1*CPUID_SIZE+CPUID_ECX_OFFSET
# define index_SSE4_2 COMMON_CPUID_INDEX_1*CPUID_SIZE+CPUID_ECX_OFFSET
# define index_AVX COMMON_CPUID_INDEX_1*CPUID_SIZE+CPUID_ECX_OFFSET
# define index_Fast_Rep_String FEATURE_INDEX_1*FEATURE_SIZE
# define index_Fast_Copy_Backward FEATURE_INDEX_1*FEATURE_SIZE

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff