github.com/segmentio/parquet-go@v0.0.0-20230712180008-5d42db8f0d47/internal/bytealg/bytealg_amd64.go (about)

     1  //go:build !purego
     2  
     3  package bytealg
     4  
     5  import "golang.org/x/sys/cpu"
     6  
     7  var (
     8  	hasAVX2 = cpu.X86.HasAVX2
     9  	// These use AVX-512 instructions in the countByte algorithm relies
    10  	// operations that are available in the AVX512BW extension:
    11  	// * VPCMPUB
    12  	// * KMOVQ
    13  	//
    14  	// Note that the function will fallback to an AVX2 version if those
    15  	// instructions are not available.
    16  	hasAVX512Count = cpu.X86.HasAVX512VL && cpu.X86.HasAVX512BW
    17  )