MSVC/arm64ec: Deassert XSIMD_WITH_SSE2. - #1152
Merged
Merged
Conversation
degasus
commented
Aug 6, 2025
The ARM64EC ABI is designed to provide native ARM64 code into emulated x64 applications. Long blog article about ARM64EC: http://www.emulators.com/docs/abc_arm64ec_explained.htm For this goal, it *on purpose* needs to define both `_M_AMD64` and `_M_X64`, however it does not define `__SSE2__`. SSE *should* be supported, but it fails to compile our constant setting methods: ``` xsimd_sse2.hpp(1479): warning C4003: not enough arguments for function-like macro invocation '_mm_setr_ps' xsimd_sse2.hpp(1479): error C2760: syntax error: '...' was unexpected here; expected ')' ``` I think this is likely a bug within their intrinsics, however not enabling SSE might still be better on an emulated platform anyways.
We actually don't need it, but current versions spams warnings that <3.10 is deprecated.
Contributor
|
Thanks! Might be worth to dig into ARM64EC, but that's another story! |
Contributor
Author
With MSVC/ARM64 support, seems like only the enabling was missing for ARM64EC: #1408 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The ARM64EC ABI is designed to provide native ARM64 code into emulated x64 applications.
Long blog article about ARM64EC: http://www.emulators.com/docs/abc_arm64ec_explained.htm
For this goal, it on purpose needs to define both
_M_AMD64and_M_X64, however itdoes not define
__SSE2__. SSE should be supported, but it fails to compile ourconstant setting methods:
I think this is likely a bug within their intrinsics, however not enabling SSE might still
be better on an emulated platform anyways.
NEON is still not enabled - but it doesn't compile neither. So in my opinion, the good behavior is to only enable stuff which at least compiles...