aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2017-06-23 12:45:57 -0700
committerH.J. Lu <hjl.tools@gmail.com>2017-06-23 12:46:12 -0700
commit049816c3be14e47e5fe10f8cd5a38bb611d34ce5 (patch)
treead7c9e5f7277c4e8dd9dcaf4fa2cc0bbf78ac1cc
parent52a8e5cb43a937d5224d271537093a1f92d78e94 (diff)
downloadglibc-049816c3be14e47e5fe10f8cd5a38bb611d34ce5.tar
glibc-049816c3be14e47e5fe10f8cd5a38bb611d34ce5.tar.gz
glibc-049816c3be14e47e5fe10f8cd5a38bb611d34ce5.tar.bz2
glibc-049816c3be14e47e5fe10f8cd5a38bb611d34ce5.zip
x86-64: Optimize L(between_2_3) in memcmp-avx2-movbe.S
Turn movzbl -1(%rdi, %rdx), %edi movzbl -1(%rsi, %rdx), %esi orl %edi, %eax orl %esi, %ecx into movb -1(%rdi, %rdx), %al movb -1(%rsi, %rdx), %cl * sysdeps/x86_64/multiarch/memcmp-avx2-movbe.S (between_2_3): Replace movzbl and orl with movb.
-rw-r--r--ChangeLog5
-rw-r--r--sysdeps/x86_64/multiarch/memcmp-avx2-movbe.S6
2 files changed, 7 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 3ce2b0467b..ced515c462 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2017-06-23 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/x86_64/multiarch/memcmp-avx2-movbe.S (between_2_3):
+ Replace movzbl and orl with movb.
+
2017-06-23 Gabriel F. T. Gomes <gftg@linux.vnet.ibm.com>
* manual/arith.texi (Infinity and NaN): Document SNANFN and SNANFNx.
diff --git a/sysdeps/x86_64/multiarch/memcmp-avx2-movbe.S b/sysdeps/x86_64/multiarch/memcmp-avx2-movbe.S
index 2cd2f71b85..abcc61c381 100644
--- a/sysdeps/x86_64/multiarch/memcmp-avx2-movbe.S
+++ b/sysdeps/x86_64/multiarch/memcmp-avx2-movbe.S
@@ -144,10 +144,8 @@ L(between_2_3):
shll $8, %ecx
bswap %eax
bswap %ecx
- movzbl -1(%rdi, %rdx), %edi
- movzbl -1(%rsi, %rdx), %esi
- orl %edi, %eax
- orl %esi, %ecx
+ movb -1(%rdi, %rdx), %al
+ movb -1(%rsi, %rdx), %cl
/* Subtraction is okay because the upper 8 bits are zero. */
subl %ecx, %eax
ret