github.com/segmentio/parquet-go@v0.0.0-20230712180008-5d42db8f0d47/column_buffer_amd64.go (about) 1 //go:build !purego 2 3 package parquet 4 5 import ( 6 "github.com/segmentio/parquet-go/internal/bytealg" 7 "github.com/segmentio/parquet-go/internal/unsafecast" 8 "github.com/segmentio/parquet-go/sparse" 9 "golang.org/x/sys/cpu" 10 ) 11 12 func broadcastValueInt32(dst []int32, src int8) { 13 bytealg.Broadcast(unsafecast.Int32ToBytes(dst), byte(src)) 14 } 15 16 //go:noescape 17 func broadcastRangeInt32AVX2(dst []int32, base int32) 18 19 func broadcastRangeInt32(dst []int32, base int32) { 20 if len(dst) >= 8 && cpu.X86.HasAVX2 { 21 broadcastRangeInt32AVX2(dst, base) 22 } else { 23 for i := range dst { 24 dst[i] = base + int32(i) 25 } 26 } 27 } 28 29 //go:noescape 30 func writePointersBE128(values [][16]byte, rows sparse.Array)