github.com/vc42/parquet-go@v0.0.0-20240320194221-1a9adb5f23f5/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)