diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2017-06-23 12:45:57 -0700 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2017-06-23 12:46:12 -0700 |
commit | 049816c3be14e47e5fe10f8cd5a38bb611d34ce5 (patch) | |
tree | ad7c9e5f7277c4e8dd9dcaf4fa2cc0bbf78ac1cc /sysdeps/x86_64 | |
parent | 52a8e5cb43a937d5224d271537093a1f92d78e94 (diff) | |
download | glibc-049816c3be14e47e5fe10f8cd5a38bb611d34ce5.zip glibc-049816c3be14e47e5fe10f8cd5a38bb611d34ce5.tar.gz glibc-049816c3be14e47e5fe10f8cd5a38bb611d34ce5.tar.bz2 |
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.
Diffstat (limited to 'sysdeps/x86_64')
-rw-r--r-- | sysdeps/x86_64/multiarch/memcmp-avx2-movbe.S | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/sysdeps/x86_64/multiarch/memcmp-avx2-movbe.S b/sysdeps/x86_64/multiarch/memcmp-avx2-movbe.S index 2cd2f71..abcc61c 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 |