go1.16 (#14783)
This commit is contained in:
parent
030646eea4
commit
47f6a4ec3f
947 changed files with 26119 additions and 7062 deletions
34
vendor/github.com/minio/sha256-simd/sha256.go
generated
vendored
34
vendor/github.com/minio/sha256-simd/sha256.go
generated
vendored
|
@ -21,6 +21,8 @@ import (
|
|||
"encoding/binary"
|
||||
"hash"
|
||||
"runtime"
|
||||
|
||||
"github.com/klauspost/cpuid/v2"
|
||||
)
|
||||
|
||||
// Size - The size of a SHA256 checksum in bytes.
|
||||
|
@ -67,10 +69,6 @@ type blockfuncType int
|
|||
|
||||
const (
|
||||
blockfuncGeneric blockfuncType = iota
|
||||
blockfuncAvx512 blockfuncType = iota
|
||||
blockfuncAvx2 blockfuncType = iota
|
||||
blockfuncAvx blockfuncType = iota
|
||||
blockfuncSsse blockfuncType = iota
|
||||
blockfuncSha blockfuncType = iota
|
||||
blockfuncArm blockfuncType = iota
|
||||
)
|
||||
|
@ -78,26 +76,24 @@ const (
|
|||
var blockfunc blockfuncType
|
||||
|
||||
func init() {
|
||||
is386bit := runtime.GOARCH == "386"
|
||||
isARM := runtime.GOARCH == "arm"
|
||||
blockfunc = blockfuncGeneric
|
||||
switch {
|
||||
case is386bit || isARM:
|
||||
blockfunc = blockfuncGeneric
|
||||
case sha && ssse3 && sse41:
|
||||
case hasSHAExtensions():
|
||||
blockfunc = blockfuncSha
|
||||
case avx2:
|
||||
blockfunc = blockfuncAvx2
|
||||
case avx:
|
||||
blockfunc = blockfuncAvx
|
||||
case ssse3:
|
||||
blockfunc = blockfuncSsse
|
||||
case armSha:
|
||||
case hasArmSha2():
|
||||
blockfunc = blockfuncArm
|
||||
default:
|
||||
blockfunc = blockfuncGeneric
|
||||
}
|
||||
}
|
||||
|
||||
var avx512 = cpuid.CPU.Supports(cpuid.AVX512F, cpuid.AVX512DQ, cpuid.AVX512BW, cpuid.AVX512VL)
|
||||
|
||||
// hasSHAExtensions return whether the cpu supports SHA extensions.
|
||||
func hasSHAExtensions() bool {
|
||||
return cpuid.CPU.Supports(cpuid.SHA, cpuid.SSSE3, cpuid.SSE4) && runtime.GOARCH == "amd64"
|
||||
}
|
||||
|
||||
// New returns a new hash.Hash computing the SHA256 checksum.
|
||||
func New() hash.Hash {
|
||||
if blockfunc != blockfuncGeneric {
|
||||
|
@ -278,12 +274,6 @@ func (d *digest) checkSum() (digest [Size]byte) {
|
|||
func block(dig *digest, p []byte) {
|
||||
if blockfunc == blockfuncSha {
|
||||
blockShaGo(dig, p)
|
||||
} else if blockfunc == blockfuncAvx2 {
|
||||
blockAvx2Go(dig, p)
|
||||
} else if blockfunc == blockfuncAvx {
|
||||
blockAvxGo(dig, p)
|
||||
} else if blockfunc == blockfuncSsse {
|
||||
blockSsseGo(dig, p)
|
||||
} else if blockfunc == blockfuncArm {
|
||||
blockArmGo(dig, p)
|
||||
} else if blockfunc == blockfuncGeneric {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue