aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--searchlib/src/vespa/searchlib/bitcompression/compression.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/searchlib/src/vespa/searchlib/bitcompression/compression.h b/searchlib/src/vespa/searchlib/bitcompression/compression.h
index 441fac3aef1..74231638213 100644
--- a/searchlib/src/vespa/searchlib/bitcompression/compression.h
+++ b/searchlib/src/vespa/searchlib/bitcompression/compression.h
@@ -504,7 +504,11 @@ public:
if (length >= cacheFree) { \
cacheInt |= (data << (64 - cacheFree)); \
*bufI++ = EC::bswap(cacheInt); \
- data >>= cacheFree; \
+ if (__builtin_expect(cacheFree != 64, true)) { \
+ data >>= cacheFree; \
+ } else { \
+ data = 0; \
+ } \
length -= cacheFree; \
cacheInt = 0; \
cacheFree = 64; \