ace4bb1ad6
Adds a benchmark exercising int.oneBitCount and int.trailingZeroBitCount (landed in CL 498041) and a representative set of Int32x4 SIMD bitwise kernels, through a small bit-array implementation built on a Uint32List word store. Kernels: - cardinality: popcount across the array. - forEachSetBit: Brian-Kernighan iteration via ctz. - select(k): position of the k-th set bit using popcount + ctz. - complementCardinality: popcount of bitwise-NOT per word. - totalBitLength: sum of int.bitLength per word. - intersection / union / xor / difference: pair-op bitwise kernels using Int32x4 SIMD with a scalar tail. - complement: single-input bitwise NOT via Int32x4 XOR-with-all-ones. Each kernel has a Swar baseline using portable bit-twiddle code and an Accelerated variant that uses the new int getters or Int32x4 SIMD, so the speedup attributable to the hardware/intrinsic path is visible directly. main() first runs a correctness check that asserts both implementations agree across a representative range of sizes and bit densities, then reports timings via the standard BenchmarkBase harness. Work towards https://github.com/dart-lang/sdk/issues/1053 (efficient BitSet implementation). Bug: https://github.com/dart-lang/sdk/issues/52673 Change-Id: I5ae5bc0b9d07f6de3e11907ac1fae80f02e77119 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/503020 Commit-Queue: Slava Egorov <vegorov@google.com> Reviewed-by: Martin Kustermann <kustermann@google.com> Auto-Submit: Modestas Valauskas <valauskasmodestas@gmail.com> Reviewed-by: Slava Egorov <vegorov@google.com>