Skip to content

perf: vectorize bitmap-bitmap set operations with SIMD - #399

Open
Dr-Emann wants to merge 1 commit into
mainfrom
push-rxyxkmvuzwun
Open

Dr-Emann wants to merge 1 commit into
mainfrom
push-rxyxkmvuzwun

Conversation

@Dr-Emann

@Dr-Emann Dr-Emann commented Nov 9, 2026

Copy link
Copy Markdown
Member

Rewrite op_bitmaps to process the bitmaps in u64x8 chunks via fearless_simd, computing the result cardinality alongside the operation. Per-byte popcounts accumulate in a u8x64 and are widened into a u16x32 every 16 chunks, before the u8 lanes can overflow.

Move the SIMD level() helper from array_store::vector to the crate root so the bitmap store can share it.

Rewrite op_bitmaps to process the bitmaps in u64x8 chunks via
fearless_simd, computing the result cardinality alongside the operation.
Per-byte popcounts accumulate in a u8x64 and are widened into a u16x32
every 16 chunks, before the u8 lanes can overflow.

Move the SIMD level() helper from array_store::vector to the crate root
so the bitmap store can share it.
@Dr-Emann
Dr-Emann added this pull request to stack #401 November 9, 2026 03:55

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant