Context
Issue #87 completed the research stage for decode wildcopy candidates. Local Criterion microbench shows consistent speed gains for AVX2 unroll2 candidate vs current production wildcopy path.
Observed local samples (cargo bench --bench wildcopy_candidates -p structured-zstd --features bench_internals -- --output-format bencher):
- 64B: 3ns -> 2ns
- 256B: 7ns -> 4ns
- 1024B: 28ns -> 14ns
- 4096B: 94ns -> 58ns
- 16384B: 347ns -> 268ns
- 65536B: 1368ns -> 1121ns
Goal
Integrate AVX2 unroll2 candidate into production decode wildcopy strategy without interoperability or correctness regressions.
Implementation plan
- Wire AVX2 candidate into
copy_strategy() for x86/x86_64 runtime-dispatched path (std + no_std configs where applicable).
- Keep donor-compatible wildcopy semantics (overshoot contract and copy safety invariants).
- Add regression tests for boundary/tail behavior and parity vs current implementation.
- Run full benchmark matrix (
compare_ffi) and candidate microbench to validate throughput/ratio impact.
- Document go/no-go decision in BENCHMARKS with benchmark evidence and donor path reference.
Acceptance criteria
Estimate
1d 6h
- 1d: implementation + tests
- 4h: benchmark runs + analysis
- 2h: documentation and PR polishing
Related: #87
Context
Issue #87 completed the research stage for decode wildcopy candidates. Local Criterion microbench shows consistent speed gains for AVX2 unroll2 candidate vs current production wildcopy path.
Observed local samples (
cargo bench --bench wildcopy_candidates -p structured-zstd --features bench_internals -- --output-format bencher):Goal
Integrate AVX2 unroll2 candidate into production decode wildcopy strategy without interoperability or correctness regressions.
Implementation plan
copy_strategy()for x86/x86_64 runtime-dispatched path (std + no_std configs where applicable).compare_ffi) and candidate microbench to validate throughput/ratio impact.Acceptance criteria
cargo nextest run --workspace,cargo test --doc --workspace, cross-validation green).Estimate
1d 6h
Related: #87