Skip to content

Add support for NEON SIMD to ensure vectorization on ARM hardware#134

Open
dylanrb123 wants to merge 3 commits intomainfrom
neon-simd
Open

Add support for NEON SIMD to ensure vectorization on ARM hardware#134
dylanrb123 wants to merge 3 commits intomainfrom
neon-simd

Conversation

@dylanrb123
Copy link
Contributor

@dylanrb123 dylanrb123 commented Feb 10, 2026

Description

Adds support for NEON SIMD implementation on ARM hardware. The existing SIMD implementations (SSE, AVX, and AVX512F) are x86 only, so when running on ARM hardware Voyager would run the scalar distance calculations instead of vectorized.

Changes Made

Added NEON SIMD implementations for the different distance calculations

C++

n/a

Python

n/a

Java

n/a

Testing

All unit tests pass, built and ran locally on my M1 macbook and verified the presence of NEON instructions in the binary:

➜ objdump -d /Users/dbannon/dev/voyager/cpp/build/test/VoyagerTests | grep fmla
100001f8c: 4e22cc20     fmla.4s v0, v1, v2
100002020: 4e22cc20     fmla.4s v0, v1, v2
1000020b4: 4e22cc20     fmla.4s v0, v1, v2
100002148: 4e22cc20     fmla.4s v0, v1, v2
10000232c: 4e22cc20     fmla.4s v0, v1, v2
100002860: 4e22cc20     fmla.4s v0, v1, v2
1000028cc: 4e22cc20     fmla.4s v0, v1, v2
100002938: 4e22cc20     fmla.4s v0, v1, v2
1000029a4: 4e22cc20     fmla.4s v0, v1, v2
100002c18: 4e22cc20     fmla.4s v0, v1, v2
100002c84: 4e22cc20     fmla.4s v0, v1, v2
100002cf0: 4e22cc20     fmla.4s v0, v1, v2
100002d5c: 4e22cc20     fmla.4s v0, v1, v2
100002e7c: 4e22cc20     fmla.4s v0, v1, v2

Checklist

  • My code follows the code style of this project.
  • I have added and/or updated appropriate documentation (if applicable).
  • All new and existing tests pass locally with these changes.
  • I have run static code analysis (if available) and resolved any issues.
  • I have considered backward compatibility (if applicable).
  • I have confirmed that this PR does not introduce any security vulnerabilities.

Additional Comments

@dylanrb123 dylanrb123 requested a review from psobot February 10, 2026 22:10
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