Make inner loop process 16 bytes at a time with SSE instructions

This is an attempt to speed up the inner loop by using 128-bit
registers.

Currently stalled; I think there's no way to do the IMULQ equivalent on
two packed quadwords so this doesn't seem feasible.
3 files changed
tree: 5b7d19c62a5a5edaa34b27513b686bafbfc30531
  1. xxhsum/
  2. LICENSE.txt
  3. README.md
  4. xxhash.go
  5. xxhash_amd64.go
  6. xxhash_amd64.s
  7. xxhash_amd64_test.go
  8. xxhash_other.go
  9. xxhash_test.go
README.md

xxhash

GoDoc

xxhash is a Go implementation of the 64-bit xxHash algorithm, XXH64. This is a high-quality hashing algorithm that is much faster than anything in the Go standard library.

On amd64 there is an even faster assembly implementation that runs at over 10 GB/s on my laptop.