github.com/parquet-go/parquet-go@v0.21.1-0.20240501160520-b3c3a0c3ed6f/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 )