From: Nathan Moinvaziri Date: Thu, 21 May 2020 17:56:54 +0000 (-0700) Subject: Remove additional byte comparison check in compare258 SSE4 and AVX2 functions. X-Git-Tag: 1.9.9-b1~295 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=de7cfabb48c88bdba6120448f080b8f6dd941f65;p=thirdparty%2Fzlib-ng.git Remove additional byte comparison check in compare258 SSE4 and AVX2 functions. --- diff --git a/arch/x86/compare258_avx.c b/arch/x86/compare258_avx.c index 0399abca8..74ca87ac9 100644 --- a/arch/x86/compare258_avx.c +++ b/arch/x86/compare258_avx.c @@ -51,13 +51,7 @@ static inline int32_t compare258_unaligned_avx2_static(const unsigned char *src0 if (*(uint16_t *)src0 != *(uint16_t *)src1) return (*src0 == *src1); - src0 += 2, src1 += 2; - if (*src0 != *src1) - return 2; - if (src0[1] != src1[1]) - return 3; - - return compare256_unaligned_avx2_static(src0, src1) + 2; + return compare256_unaligned_avx2_static(src0+2, src1+2) + 2; } int32_t compare258_unaligned_avx2(const unsigned char *src0, const unsigned char *src1) { diff --git a/arch/x86/compare258_sse.c b/arch/x86/compare258_sse.c index 3e5e4eef3..27bae0510 100644 --- a/arch/x86/compare258_sse.c +++ b/arch/x86/compare258_sse.c @@ -58,14 +58,7 @@ static inline int32_t compare258_unaligned_sse4_static(const unsigned char *src0 if (*(uint16_t *)src0 != *(uint16_t *)src1) return (*src0 == *src1); - src0 += 2, src1 += 2; - - if (*src0 != *src1) - return 2; - if (src0[1] != src1[1]) - return 3; - - return compare256_unaligned_sse4_static(src0, src1) + 2; + return compare256_unaligned_sse4_static(src0+2, src1+2) + 2; } int32_t compare258_unaligned_sse4(const unsigned char *src0, const unsigned char *src1) { diff --git a/compare258.c b/compare258.c index db212d138..7763bb6a1 100644 --- a/compare258.c +++ b/compare258.c @@ -38,8 +38,6 @@ static inline int32_t compare258_c_static(const unsigned char *src0, const unsig if (*src0 != *src1) return 1; src0 += 1, src1 += 1; - if (*src0 != *src1) - return 2; return compare256_c_static(src0, src1) + 2; } @@ -120,13 +118,7 @@ static inline int32_t compare258_unaligned_32_static(const unsigned char *src0, if (*(uint16_t *)src0 != *(uint16_t *)src1) return (*src0 == *src1); - src0 += 2, src1 += 2; - if (*src0 != *src1) - return 2; - if (src0[1] != src1[1]) - return 3; - - return compare256_unaligned_32_static(src0, src1) + 2; + return compare256_unaligned_32_static(src0+2, src1+2) + 2; } int32_t compare258_unaligned_32(const unsigned char *src0, const unsigned char *src1) { @@ -166,13 +158,7 @@ static inline int32_t compare258_unaligned_64_static(const unsigned char *src0, if (*(uint16_t *)src0 != *(uint16_t *)src1) return (*src0 == *src1); - src0 += 2, src1 += 2; - if (*src0 != *src1) - return 2; - if (src0[1] != src1[1]) - return 3; - - return compare256_unaligned_64_static(src0, src1) + 2; + return compare256_unaligned_64_static(src0+2, src1+2) + 2; } int32_t compare258_unaligned_64(const unsigned char *src0, const unsigned char *src1) {