package xxh3
import (
"unsafe"
"github.com/klauspost/cpuid/v2"
)
var (
hasAVX2 = cpuid .CPU .Has (cpuid .AVX2 )
hasSSE2 = cpuid .CPU .Has (cpuid .SSE2 )
hasAVX512 = cpuid .CPU .Has (cpuid .AVX512F )
)
func accumAVX2(acc *[8 ]u64 , data , key unsafe .Pointer , len u64 )
func accumAVX512(acc *[8 ]u64 , data , key unsafe .Pointer , len u64 )
func accumSSE(acc *[8 ]u64 , data , key unsafe .Pointer , len u64 )
func accumBlockAVX2(acc *[8 ]u64 , data , key unsafe .Pointer )
func accumBlockSSE(acc *[8 ]u64 , data , key unsafe .Pointer )
func withOverrides(avx512 , avx2 , sse2 bool , cb func ()) {
avx512Orig , avx2Orig , sse2Orig := hasAVX512 , hasAVX2 , hasSSE2
hasAVX512 , hasAVX2 , hasSSE2 = avx512 , avx2 , sse2
defer func () { hasAVX512 , hasAVX2 , hasSSE2 = avx512Orig , avx2Orig , sse2Orig }()
cb ()
}
func withAVX512(cb func ()) { withOverrides (hasAVX512 , false , false , cb ) }
func withAVX2(cb func ()) { withOverrides (false , hasAVX2 , false , cb ) }
func withSSE2(cb func ()) { withOverrides (false , false , hasSSE2 , cb ) }
func withGeneric(cb func ()) { withOverrides (false , false , false , cb ) }
The pages are generated with Golds v0.8.2 . (GOOS=linux GOARCH=amd64)
Golds is a Go 101 project developed by Tapir Liu .
PR and bug reports are welcome and can be submitted to the issue list .
Please follow @zigo_101 (reachable from the left QR code) to get the latest news of Golds .