diff options
Diffstat (limited to 'searchlib')
-rw-r--r-- | searchlib/src/vespa/searchlib/bitcompression/compression.h | 6 |
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; \ |