diff options
Diffstat (limited to 'vendor/golang.org/x/crypto/blake2b/blake2bAVX2_amd64.go')
-rw-r--r-- | vendor/golang.org/x/crypto/blake2b/blake2bAVX2_amd64.go | 26 |
1 files changed, 9 insertions, 17 deletions
diff --git a/vendor/golang.org/x/crypto/blake2b/blake2bAVX2_amd64.go b/vendor/golang.org/x/crypto/blake2b/blake2bAVX2_amd64.go index a1e08d7ef..4d31dd0fd 100644 --- a/vendor/golang.org/x/crypto/blake2b/blake2bAVX2_amd64.go +++ b/vendor/golang.org/x/crypto/blake2b/blake2bAVX2_amd64.go @@ -6,21 +6,12 @@ package blake2b -import _ "unsafe" - -//go:linkname x86_HasAVX internal/cpu.X86.HasAVX -var x86_HasAVX bool - -//go:linkname x86_HasAVX2 internal/cpu.X86.HasAVX2 -var x86_HasAVX2 bool - -//go:linkname x86_HasAVX internal/cpu.X86.HasSSE4 -var x86_HasSSE4 bool +import "golang.org/x/sys/cpu" func init() { - useAVX2 = x86_HasAVX2 - useAVX = x86_HasAVX - useSSE4 = x86_HasSSE4 + useAVX2 = cpu.X86.HasAVX2 + useAVX = cpu.X86.HasAVX + useSSE4 = cpu.X86.HasSSE41 } //go:noescape @@ -33,13 +24,14 @@ func hashBlocksAVX(h *[8]uint64, c *[2]uint64, flag uint64, blocks []byte) func hashBlocksSSE4(h *[8]uint64, c *[2]uint64, flag uint64, blocks []byte) func hashBlocks(h *[8]uint64, c *[2]uint64, flag uint64, blocks []byte) { - if useAVX2 { + switch { + case useAVX2: hashBlocksAVX2(h, c, flag, blocks) - } else if useAVX { + case useAVX: hashBlocksAVX(h, c, flag, blocks) - } else if useSSE4 { + case useSSE4: hashBlocksSSE4(h, c, flag, blocks) - } else { + default: hashBlocksGeneric(h, c, flag, blocks) } } |