Skip to content

[diskann-wide] Add more 64-bit neon types - #1377

Open
Mark Hildebrand (hildebrandmw) wants to merge 5 commits into
mainfrom
mhildebr/64-bit-neon
Open

[diskann-wide] Add more 64-bit neon types#1377
Mark Hildebrand (hildebrandmw) wants to merge 5 commits into
mainfrom
mhildebr/64-bit-neon

Conversation

@hildebrandmw

Copy link
Copy Markdown
Contributor

Adds u32x2, i32x2, u16x4, and i16x4. Along the way, addresses a few places where Miri incompatibility has crept in.

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

It touches low-level architecture-specific SIMD intrinsics and Miri-conditional behavior where correctness and portability are hard to fully validate without running the full CI/test matrix.

Pull request overview

This PR expands diskann-wide’s AArch64/Neon 64-bit SIMD surface area by adding new small-lane vector types (u32x2, i32x2, u16x4, i16x4) and adjusts a few Neon code paths to avoid Miri-incompatible intrinsics/operations.

Changes:

  • Add new AArch64 Neon vector register implementations and tests for u32x2, i32x2, u16x4, and i16x4.
  • Extend emulated SIMDSumTree support (and tests) to include 1- and 2-lane integer emulated vectors.
  • Improve Miri compatibility by guarding tests and adding Miri fallbacks for some Neon reductions/min/max, and by avoiding a Miri-problematic lane-load pattern.
File summaries
FileDescription
diskann-wide/tests/float16_conversion.rsDisables the exhaustive f16 -> f32 test under Miri.
diskann-wide/src/emulated.rsAdds SIMDSumTree impls/tests for more integer lane counts (including 1 and 2).
diskann-wide/src/arch/aarch64/u32x2_.rsIntroduces Neon u32x2 register type with ops, bitops, select, sumtree, and tests.
diskann-wide/src/arch/aarch64/u16x4_.rsIntroduces Neon u16x4 register type with ops/bitops and tests.
diskann-wide/src/arch/aarch64/mod.rsExports the newly added Neon modules/types.
diskann-wide/src/arch/aarch64/internal/load_first.rsAdds partial-load helpers for i16x4, u32x2, i32x2 and adjusts a 32x4 partial-load to be Miri-friendlier.
diskann-wide/src/arch/aarch64/i32x2_.rsIntroduces Neon i32x2 register type with ops, bitops, select, sumtree, cast-to-f32, and tests.
diskann-wide/src/arch/aarch64/i16x4_.rsIntroduces Neon i16x4 register type with ops/bitops and tests.
diskann-wide/src/arch/aarch64/f32x4_.rsAdds Miri fallbacks for min/max operations by routing through emulated implementations under Miri.
Review details
  • Files reviewed: 9/9 changed files
  • Comments generated: 1
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment threaddiskann-wide/src/arch/aarch64/u16x4_.rs Outdated
@codecov-commenter

Codecov Comments Bot (codecov-commenter) commented Sep 4, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 91.42%. Comparing base (600c2b9) to head (58dd898).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files

Impacted file tree graph

@@ Coverage Diff @@## main #1377 +/- ##
==========================================
- Coverage 91.55% 91.42% -0.13% 
==========================================
Files 521 521 Lines 100302 100726 +424 ==========================================
+ Hits 91828 92089 +261 - Misses 8474 8637 +163 
FlagCoverage Δ
miri91.42% <ø> (-0.13%)⬇️
unittests91.22% <ø> (-0.02%)⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing linesCoverage Δ
diskann-wide/src/emulated.rs98.31% <ø> (ø)

... and 44 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Comment threaddiskann-wide/tests/float16_conversion.rs
Comment threaddiskann-wide/src/arch/aarch64/u16x4_.rs Outdated
Comment threaddiskann-wide/src/emulated.rs
Sign up for freeto 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.

4 participants

@hildebrandmw@codecov-commenter@suri-kumkaran