github.com/parquet-go/parquet-go@v0.21.1-0.20240501160520-b3c3a0c3ed6f/encoding/bytestreamsplit/bytestreamsplit_amd64.go (about) 1 //go:build !purego 2 3 package bytestreamsplit 4 5 import ( 6 "golang.org/x/sys/cpu" 7 ) 8 9 var encodeFloatHasAVX512 = cpu.X86.HasAVX512 && 10 cpu.X86.HasAVX512F && 11 cpu.X86.HasAVX512VL 12 13 var encodeDoubleHasAVX512 = cpu.X86.HasAVX512 && 14 cpu.X86.HasAVX512F && 15 cpu.X86.HasAVX512VL && 16 cpu.X86.HasAVX512VBMI // VPERMB 17 18 var decodeFloatHasAVX2 = cpu.X86.HasAVX2 19 20 var decodeDoubleHasAVX512 = cpu.X86.HasAVX512 && 21 cpu.X86.HasAVX512F && 22 cpu.X86.HasAVX512VL && 23 cpu.X86.HasAVX512VBMI // VPERMB 24 25 //go:noescape 26 func encodeFloat(dst, src []byte) 27 28 //go:noescape 29 func encodeDouble(dst, src []byte) 30 31 //go:noescape 32 func decodeFloat(dst, src []byte) 33 34 //go:noescape 35 func decodeDouble(dst, src []byte)