[Superseded] perf: vectorize small u8 table take - #9567
Conversation
Use NEON TBL and AVX2 VPSHUFB for u8-coded tables with at most 16 one-byte values. Signed-off-by: Joseph Isaacs <joseph-isaacs@users.noreply.github.com>
Merging this PR will regress 3 benchmarks
|
Rationale
Low-cardinality dictionaries with
u8codes and one-byte values can decode through an in-register table instead of performing arbitrary scalar lookups.Stacked on #9566, which adds the benchmark-only baseline. Keeping the implementation in this upper PR lets CodSpeed report the wall-time delta directly.
Changes
TBLfor AArch64.VPSHUFBfor x86/x86-64.u8codes, at most 16 one-byte values, and at least 64 rows.CodSpeed wall-time results
All figures are medians over 1,000 samples on the CPU-feature metal legs. Baseline: #9566.
Runs: baseline, optimized.
Validation
vortex-arraytests passed; 1 skipped