]> git.ipfire.org Git - thirdparty/zlib-ng.git/commitdiff
Remove additional byte comparison check in compare258 SSE4 and AVX2 functions.
authorNathan Moinvaziri <nathan@nathanm.com>
Thu, 21 May 2020 17:56:54 +0000 (10:56 -0700)
committerHans Kristian Rosbach <hk-github@circlestorm.org>
Sun, 24 May 2020 11:53:25 +0000 (13:53 +0200)
arch/x86/compare258_avx.c
arch/x86/compare258_sse.c
compare258.c

index 0399abca863a09d5f942499d5e3185fbd782cac7..74ca87ac9afe7c6b80f72d562c1c6ea12eadc003 100644 (file)
@@ -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) {
index 3e5e4eef3ac8cc0c654231899978d52c568e8b74..27bae0510f89d18f04c1ef59568599b2c97d4ec0 100644 (file)
@@ -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) {
index db212d138c7fcf52c94aa3d85e10dde58dc0722c..7763bb6a14a717bbc96ec880f3567c8ac6ff31ce 100644 (file)
@@ -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) {