tzhash/tz
Evgenii Stratonikov 3de3046074 tz: optimize AVX2 implementation
1. Perform masking with 2 instructions instead of 3 (use arithmetic
   shift).
2. Broadcast data byte in one instruction at the start of byte-processing
3. Reorder instructions to reduce the amount of data hazards and resources
   contention.

```
name               old time/op    new time/op    delta
Sum/AVX2_digest-8    1.39ms ± 0%    1.22ms ± 0%  -12.18%  (p=0.000 n=9+7)

name               old speed      new speed      delta
Sum/AVX2_digest-8  71.7MB/s ± 0%  81.7MB/s ± 0%  +13.87%  (p=0.000 n=9+7)
```

Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-03-22 12:25:13 +03:00
..
digest.go tz: add comments to public functions 2022-03-21 12:30:08 +03:00
digest_avx2_amd64.s tz: optimize AVX2 implementation 2022-03-22 12:25:13 +03:00
digest_avx_amd64.s tz: use build tags for different implemenations 2022-03-21 12:30:08 +03:00
digest_generic.go tz: use build tags for different implemenations 2022-03-21 12:30:08 +03:00
digets_amd64.go tz: use build tags for different implemenations 2022-03-21 12:30:08 +03:00
hash.go tz: use build tags for different implemenations 2022-03-21 12:30:08 +03:00
hash_test.go *: rename ByteArray to Bytes 2022-03-21 12:30:08 +03:00
sl2.go *: rename ByteArray to Bytes 2022-03-21 12:30:08 +03:00
sl2_test.go gf127: use build tags for different implemenations 2022-03-21 12:30:08 +03:00