From 387840af79a86660c8f83bcd6cc4de584de9f3a6 Mon Sep 17 00:00:00 2001 From: "W. Felix Handte" Date: Wed, 18 Aug 2021 12:47:48 -0400 Subject: [PATCH] Re-Order Operations for Slightly Better Performance --- lib/compress/zstd_fast.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/lib/compress/zstd_fast.c b/lib/compress/zstd_fast.c index ff2faab33..a1a9ef445 100644 --- a/lib/compress/zstd_fast.c +++ b/lib/compress/zstd_fast.c @@ -331,27 +331,27 @@ _start: /* Requires: ip0 */ goto _match; } + /* load match for ip[1] */ + if (idx0 >= prefixStartIndex) { + mval = MEM_read32(base + idx0); + } else { + mval = MEM_read32(ip0) ^ 1; /* guaranteed to not match. */ + } + /* check match at ip[0] */ if (MEM_read32(ip0) == mval) { /* found a match! */ goto _offset; } - /* load next rval */ - rval = MEM_read32(ip3 - rep_offset1); - - /* load match for ip[1] */ - if (idx1 >= prefixStartIndex) { - mval = MEM_read32(base + idx1); - } else { - mval = MEM_read32(ip1) ^ 1; /* guaranteed to not match. */ - } + /* hash ip[3] */ + hash3 = ZSTD_hashPtr(ip3, hlog, mls); /* lookup ip[2] */ idx2 = hashTable[hash2]; - /* hash ip[3] */ - hash3 = ZSTD_hashPtr(ip3, hlog, mls); + /* load next rval */ + rval = MEM_read32(ip3 - rep_offset1); /* advance to next positions */ {