[diskann-wide] Add byte-vector reinterpretations for u32x8 and u64x8 - #1445
Conversation
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Replace the test macro with explicit architecture-gated tests and an existing-helper-based byte comparison. Use distinct byte positions and signed-boundary offsets so fixed fixtures expose lane/byte transposition. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Keep architecture-gated macro call sites and the unary test driver. Compare raw bytes and use distinct byte positions instead of a transpose-symmetric fixture. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Remove special Miri branching and alias imports from the V4 conversion tests. Keep scalar emulation coverage in emulated.rs. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Copilot review overview
🟢 Approval recommended
The implementations preserve register bits and include targeted byte-order validation across native and emulated paths.
Review effort: Balanced
Findings: None
What changed in this PR
Adds tested SIMD bit reinterpretation support for additional x86 and emulated vector widths.
Changes:
- Adds reusable reinterpretation tests.
- Supports
u32x8andu64x8reinterpretation into signed and unsigned byte vectors. - Adds corresponding emulated implementations.
| File | Description |
|---|---|
diskann-wide/src/test_utils/ops.rs |
Adds the reinterpretation test macro. |
diskann-wide/src/emulated.rs |
Adds emulated reinterpretations and tests. |
diskann-wide/src/arch/x86_64/v3/conversion.rs |
Adds 256-bit reinterpretations and tests. |
diskann-wide/src/arch/x86_64/v4/conversion.rs |
Adds 512-bit reinterpretations and tests. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Codecov Report❌ Patch coverage is
❌ Your patch status has failed because the patch coverage (81.25%) is below the target coverage (90.00%). You can increase the patch coverage or adjust the target coverage. Additional details and impacted files@@ Coverage Diff @@
## main #1445 +/- ##
==========================================
+ Coverage 90.58% 90.87% +0.29%
==========================================
Files 568 579 +11
Lines 112680 114587 +1907
==========================================
+ Hits 102069 104132 +2063
+ Misses 10611 10455 -156
Flags with carried forward coverage won't be shown. Click here to find out more.
🚀 New features to boost your workflow:
|
Address PR microsoft#1445 review feedback by covering every V3, V4 and Emulated reinterpretation with the existing test macro. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Reference Issues/PRs
Extracted from #1394 to land the reusable diskann-wide support independently.
What does this implement/fix? Briefly explain your changes.
Adds bit-preserving SIMD reinterpretations from word lanes to byte lanes:
u32x8→u8x32andi8x32.u64x8→u8x64andi8x64.Emulatedimplementations for all four conversions.Tests follow the existing conversion-test macro and architecture-check conventions. They compare raw bytes using distinct byte positions, signed-byte boundary patterns, and the existing seeded test driver.
The change is limited to diskann-wide. No MaxSim consumers, custom intrinsics, or unrelated refactors are included.
Any other comments?
Local validation passed:
cargo test -p diskann-widecargo fmt --allcargo clippy --workspace --all-targets -- -D warningscargo +nightly miri test -p diskann-wide --lib reinterpret_