Skip to content

AArch64: Improve sequence decoding - #4813

Open
davidbolvansky wants to merge 2 commits into
meta:devfrom
davidbolvansky:aarch64-sequence-decode-fast-path
Open

davidbolvansky wants to merge 2 commits into
meta:devfrom
davidbolvansky:aarch64-sequence-decode-fast-path

Conversation

@davidbolvansky

@davidbolvansky davidbolvansky commented Oct 3, 2026 •

Copy link
Copy Markdown
Contributor

Improve Apple Clang 21 decompression throughput on Apple M1 Pro by 11.3% on a 3.2 MB bundle of actual zstd C/header files, representative of compressed source archives, and 12.9% on synthetic JSON records (level-1 inputs; median of five runs). GCC 16 throughput stays within 0.4% of baseline on both inputs.

Use one shared AArch64 implementation: separate the uncommon additional literal-length-bit case, calculate the three FSE bit positions from one starting position, and update bitsConsumed once. Also extend the existing 64-bit symbol-load idiom to Clang.

Assisted-by: OpenAI Codex

Assisted-by: OpenAI Codex
@meta-cla meta-cla Bot added the CLA Signed label Oct 3, 2026
Compute FSE bit positions from a common starting position to avoid serial bitsConsumed updates and retain GCC throughput with the new length-read layout.

Assisted-by: OpenAI Codex
@davidbolvansky davidbolvansky changed the title AArch64: Improve Clang sequence decoding AArch64: Improve sequence decoding Oct 3, 2026
pps83 pushed a commit to pps83/zstd that referenced this pull request Oct 6, 2026
The windows-11-arm runner label now resolves to the
windows-11-vs2026-arm64 image (20260924), which ships Visual Studio
2026 and CMake 4.4, but no longer Visual Studio 2022. CMake fails at
configure time with "could not find any instance of Visual Studio", so
the job fails on every PR opened since 2026-10-01 (e.g. meta#4806, meta#4811,
meta#4813).

Switch that matrix entry to the "Visual Studio 18 2026" generator. The
x64 and Win32 entries run on windows-2022 and are unaffected.

Drop "VS2022" from the job name template, which would now be wrong for
the ARM64 entry: jobs become "CMake Windows (<entry>)". No branch
protection rule requires these checks by name.

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant