Skip to content

Enable MSVC cl.exe build on Windows ARM64#1284

Closed
pdeep854 wants to merge 1 commit intoxtensor-stack:masterfrom
pdeep854:msvc-arm64-enablement
Closed

Enable MSVC cl.exe build on Windows ARM64#1284
pdeep854 wants to merge 1 commit intoxtensor-stack:masterfrom
pdeep854:msvc-arm64-enablement

Conversation

@pdeep854
Copy link
Copy Markdown

@pdeep854 pdeep854 commented Mar 31, 2026

PR: Enable MSVC (cl.exe) build on Windows ARM64

Summary

This PR restores full build compatibility for xsimd with the MSVC compiler (cl.exe) on
Windows ARM64 (_M_ARM64). Prior to this change, the project failed to compile with MSVC
on ARM64 due to fundamental differences in how MSVC exposes ARM NEON intrinsics compared
to GCC and Clang.

All changes are strictly additive and backward-compatible: every existing GCC/Clang code
path is preserved unchanged inside #else branches. No behaviour is altered for any
non-MSVC-ARM64 target.

Testing

The build was verified locally on a Windows ARM64 machine using Visual Studio 2022:

cmake .. -DBUILD_TESTS=ON -DDOWNLOAD_DOCTEST=ON -DBUILD_BENCHMARK=ON ^
         -DBUILD_EXAMPLES=ON -DCMAKE_BUILD_TYPE=Release ^
         -G "Visual Studio 17 2022"
cmake --build . --config Release

Result: All three targets build successfully with zero errors:

benchmark_xsimd.vcxproj -> ...\Release\benchmark_xsimd.exe
mandelbrot.vcxproj      -> ...\Release\mandelbrot.exe
test_xsimd.vcxproj      -> ...\Release\test_xsimd.exe
image

@pdeep854 pdeep854 changed the title enable MSVC cl.exe build on Windows ARM64 Enable MSVC cl.exe build on Windows ARM64 Mar 31, 2026
@pdeep854 pdeep854 force-pushed the msvc-arm64-enablement branch 3 times, most recently from e3facb8 to 02cb172 Compare March 31, 2026 12:00
@pdeep854 pdeep854 force-pushed the msvc-arm64-enablement branch from 02cb172 to 767345a Compare March 31, 2026 12:12
@pdeep854 pdeep854 closed this Mar 31, 2026
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