fallintoplace opened a new pull request, #1283: URL: https://github.com/apache/arrow-go/pull/1283
## Summary - Add private AVX2 and ARM64 NEON kernels for packing `[]bool` into Arrow bitmap bytes. - Keep the existing scalar handling for unaligned prefixes and tails. - Reuse the SIMD path for BooleanBuilder values and validity bitmap packing. - Keep noasm and unsupported architectures on the scalar implementation. - Expand bitmap coverage across multiple SIMD blocks and offsets. ## Benchmark Apple M1 Pro. 65,536 pre-reserved values. Representative runs: | Benchmark | noasm | SIMD | | --- | ---: | ---: | | BooleanBuilder / all false | 23.4 us | 3.9 us | | BooleanBuilder / all true | 22.6 us | 3.9 us | | BooleanBuilder / alternating | 21.9 us | 4.6 us | | BooleanBuilder / one in three | 22.6 us | 4.0 us | The SIMD path is about 4 to 5x faster for this workload, with zero allocations in both cases. ## Tests - `go test ./arrow/array -count=1` - `go test -race ./arrow/array -count=1` - `go test ./arrow/bitutil ./arrow/compute/... -count=1` - `go test -tags noasm ./arrow/array -count=1` - `go vet ./arrow/array ./arrow/bitutil` - `GOARCH=amd64 go test -c -o /dev/null ./arrow/array` -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
