// Copyright 2025 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

package scan

import (
	
	
	
)

func ( unsafe.Pointer,  *uintptr,  *gc.ObjMask,  uintptr,  *gc.PtrMask) ( int32) {
	if CanAVX512() {
		return ScanSpanPackedAVX512(, , , , )
	}
	panic("not implemented")
}

func () bool {
	return avx512ScanPackedReqsMet
}

// -- AVX512 --

func () bool {
	return avx512ScanPackedReqsMet
}

func ( unsafe.Pointer,  *uintptr,  *gc.ObjMask,  uintptr,  *gc.PtrMask) ( int32) {
	return FilterNilAVX512(, scanSpanPackedAVX512(, , , , ))
}

//go:noescape
func scanSpanPackedAVX512( unsafe.Pointer,  *uintptr,  *gc.ObjMask,  uintptr,  *gc.PtrMask) ( int32)

var avx512ScanPackedReqsMet = cpu.X86.HasAVX512VL &&
	cpu.X86.HasAVX512BW &&
	cpu.X86.HasGFNI &&
	cpu.X86.HasAVX512BITALG &&
	cpu.X86.HasAVX512VBMI