Skip to content

MSVC/arm64ec: Deassert XSIMD_WITH_SSE2. - #1152

Merged
serge-sans-paille merged 2 commits into
xtensor-stack:masterfrom
degasus:arm64ec
Aug 6, 2025
Merged

MSVC/arm64ec: Deassert XSIMD_WITH_SSE2.#1152
serge-sans-paille merged 2 commits into
xtensor-stack:masterfrom
degasus:arm64ec

Conversation

@degasus

@degasus degasus commented Aug 5, 2025

Copy link
Copy Markdown
Contributor

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...

Comment thread include/xsimd/config/xsimd_config.hpp Outdated
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
Copy Markdown
Contributor

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

@degasus

degasus commented Sep 4, 2026

Copy link
Copy Markdown
Contributor Author

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

With MSVC/ARM64 support, seems like only the enabling was missing for ARM64EC: #1408

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