summaryrefslogtreecommitdiff
path: root/compare258.c
diff options
context:
space:
mode:
authorNathan Moinvaziri <nathan@nathanm.com>2020-05-21 10:56:54 -0700
committerHans Kristian Rosbach <hk-github@circlestorm.org>2020-05-24 13:53:25 +0200
commitde7cfabb48c88bdba6120448f080b8f6dd941f65 (patch)
tree698792059462c4b6d9d23d68c1dd1517561b674e /compare258.c
parentd26fd7a4f0218e708f32f14a3a088d0e64e40455 (diff)
Remove additional byte comparison check in compare258 SSE4 and AVX2 functions.
Diffstat (limited to 'compare258.c')
-rw-r--r--compare258.c18
1 files changed, 2 insertions, 16 deletions
diff --git a/compare258.c b/compare258.c
index db212d1..7763bb6 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) {