Skip to content

feat(scan): optimize NEON structural classification with vqtbl#32

Merged
membphis merged 1 commit into
mainfrom
codex/neon-vqtbl-structural-mask
May 16, 2026
Merged

feat(scan): optimize NEON structural classification with vqtbl#32
membphis merged 1 commit into
mainfrom
codex/neon-vqtbl-structural-mask

Conversation

@membphis
Copy link
Copy Markdown
Collaborator

Summary

  • replace the NEON structural-character compare loop with a nibble dual-LUT classifier using vqtbl1q_u8
  • derive structural, quote, and backslash masks from per-byte tags, while preserving the cheap in-string quote/backslash probe for string-heavy chunks
  • add an exhaustive 256-byte LUT classification test to guard against high/low-nibble false positives

Refs #8, #31.

Test Plan

  • rustfmt --check src/scan/neon.rs
  • cargo test --release
  • cargo test --release --no-default-features
  • cargo test --release --features test-panic

Local benchmark notes

Single-run Apple ARM64 local medians for quickdecode.parse + access 3 fields, comparing this branch against local origin/main build:

fixture main this branch delta
small 640943 ops/s 776398 ops/s +21%
medium 161603 ops/s 214408 ops/s +33%
100k 105042 ops/s 141844 ops/s +35%
1m 11981 ops/s 16376 ops/s +37%

@membphis membphis merged commit aaead80 into main May 16, 2026
2 checks passed
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