gmsm/sm3/sm3block_amd64.go

29 lines
498 B
Go
Raw Normal View History

2023-09-07 17:42:55 +08:00
//go:build amd64 && !purego
// +build amd64,!purego
2022-01-21 11:24:10 +08:00
package sm3
import "golang.org/x/sys/cpu"
var useAVX2 = cpu.X86.HasAVX2 && cpu.X86.HasBMI2
2023-09-13 17:33:49 +08:00
var useAVX = cpu.X86.HasAVX && cpu.X86.HasBMI2
2022-04-27 10:36:10 +08:00
//go:noescape
2023-09-13 17:33:49 +08:00
func blockAMD64(dig *digest, p []byte)
//go:noescape
func blockAVX(dig *digest, p []byte)
//go:noescape
func blockAVX2(dig *digest, p []byte)
func block(dig *digest, p []byte) {
if useAVX2 {
blockAVX2(dig, p)
} else if useAVX {
blockAVX(dig, p)
} else {
blockAMD64(dig, p)
}
}