Skip to content

MSVC/arm64ec: Deassert XSIMD_WITH_SSE2. #1152

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Aug 6, 2025

Conversation

degasus
Copy link
Contributor

@degasus degasus commented Aug 5, 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.
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...

degasus added 2 commits August 6, 2025 10:14
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.
@serge-sans-paille serge-sans-paille merged commit 32b9d22 into xtensor-stack:master Aug 6, 2025
65 checks passed
@serge-sans-paille
Copy link
Contributor

Thanks! Might be worth to dig into ARM64EC, but that's another story!

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.

2 participants