summaryrefslogtreecommitdiffstats
path: root/vendor/golang.org/x/crypto/blake2b/blake2bAVX2_amd64.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/golang.org/x/crypto/blake2b/blake2bAVX2_amd64.go')
-rw-r--r--vendor/golang.org/x/crypto/blake2b/blake2bAVX2_amd64.go26
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)
}
}