package scan
import (
"internal/cpu"
"internal/runtime/gc"
"unsafe"
)
func ScanSpanPacked (mem unsafe .Pointer , bufp *uintptr , objMarks *gc .ObjMask , sizeClass uintptr , ptrMask *gc .PtrMask ) (count int32 ) {
if CanAVX512 () {
return ScanSpanPackedAVX512 (mem , bufp , objMarks , sizeClass , ptrMask )
}
panic ("not implemented" )
}
func HasFastScanSpanPacked () bool {
return avx512ScanPackedReqsMet
}
func CanAVX512 () bool {
return avx512ScanPackedReqsMet
}
func ScanSpanPackedAVX512 (mem unsafe .Pointer , bufp *uintptr , objMarks *gc .ObjMask , sizeClass uintptr , ptrMask *gc .PtrMask ) (count int32 ) {
return FilterNilAVX512 (bufp , scanSpanPackedAVX512 (mem , bufp , objMarks , sizeClass , ptrMask ))
}
func scanSpanPackedAVX512(mem unsafe .Pointer , bufp *uintptr , objMarks *gc .ObjMask , sizeClass uintptr , ptrMask *gc .PtrMask ) (count int32 )
var avx512ScanPackedReqsMet = cpu .X86 .HasAVX512VL &&
cpu .X86 .HasAVX512BW &&
cpu .X86 .HasGFNI &&
cpu .X86 .HasAVX512BITALG &&
cpu .X86 .HasAVX512VBMI
The pages are generated with Golds v0.8.3-preview . (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 .