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

     1  //go:build !purego
     2  
     3  package parquet
     4  
     5  import "golang.org/x/sys/cpu"
     6  
     7  var (
     8  	// This variable is used in x86 assembly source files to gate the use of
     9  	// AVX2 instructions depending on whether the CPU supports it.
    10  	hasAVX2     = cpu.X86.HasAVX2
    11  	hasAVX512F  = cpu.X86.HasAVX512F
    12  	hasAVX512VL = cpu.X86.HasAVX512F && cpu.X86.HasAVX512VL
    13  	// For min/max functions over big-endian 128 bits values, we need the
    14  	// follwing instructions from the DQ set:
    15  	// * VPBROADCASTQ (with 64 bits source register)
    16  	// * VBROADCASTI64X2
    17  	hasAVX512MinMaxBE128 = cpu.X86.HasAVX512F && cpu.X86.HasAVX512DQ
    18  )