go-ethereum/vendor/github.com/cespare/xxhash/rotate19.go
Łukasz Kurowski 79ab3d3a5a trie/cache: use xxhash64 for bigcache
Hashing is almost twice as fast compared to default bigcache hash
function.

BenchmarkXXHash64-12  19.1 ns/op
BenchmarkFNV64-12     35.7 ns/op

Benchmarks are available to reproduce results:
https://gist.github.com/crackcomm/68e284c5f33d50c5a58573fbbea673cd
2018-11-15 21:10:20 +01:00

14 lines
563 B
Go

// +build go1.9
package xxhash
import "math/bits"
func rol1(x uint64) uint64 { return bits.RotateLeft64(x, 1) }
func rol7(x uint64) uint64 { return bits.RotateLeft64(x, 7) }
func rol11(x uint64) uint64 { return bits.RotateLeft64(x, 11) }
func rol12(x uint64) uint64 { return bits.RotateLeft64(x, 12) }
func rol18(x uint64) uint64 { return bits.RotateLeft64(x, 18) }
func rol23(x uint64) uint64 { return bits.RotateLeft64(x, 23) }
func rol27(x uint64) uint64 { return bits.RotateLeft64(x, 27) }
func rol31(x uint64) uint64 { return bits.RotateLeft64(x, 31) }