From 14471430e6e08463f9bb227855b8520c0cf548dc Mon Sep 17 00:00:00 2001 From: Markus Wick Date: Tue, 5 Aug 2025 19:23:20 +0200 Subject: [PATCH 1/2] MSVC/arm64ec: Deassert XSIMD_WITH_SSE2. 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. --- include/xsimd/config/xsimd_config.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/xsimd/config/xsimd_config.hpp b/include/xsimd/config/xsimd_config.hpp index 70d065292..3a1fbe17f 100644 --- a/include/xsimd/config/xsimd_config.hpp +++ b/include/xsimd/config/xsimd_config.hpp @@ -470,7 +470,7 @@ #endif -#if XSIMD_WITH_SSE3 || defined(_M_AMD64) || defined(_M_X64) || (defined(_M_IX86_FP) && _M_IX86_FP >= 2) +#if XSIMD_WITH_SSE3 || ((defined(_M_AMD64) || defined(_M_X64)) && !defined(_M_ARM64EC)) || (defined(_M_IX86_FP) && _M_IX86_FP >= 2) #undef XSIMD_WITH_SSE2 #define XSIMD_WITH_SSE2 1 #endif From 030a13d7f0f819d199dfa5a146f246dd1e4e3232 Mon Sep 17 00:00:00 2001 From: Markus Wick Date: Tue, 5 Aug 2025 19:31:29 +0200 Subject: [PATCH 2/2] CMake: Increase the minimum CMake version. We actually don't need it, but current versions spams warnings that <3.10 is deprecated. --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6dffce659..f817b6b51 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,7 +9,7 @@ # The full license is in the file LICENSE, distributed with this software. # ############################################################################ -cmake_minimum_required(VERSION 3.8) +cmake_minimum_required(VERSION 3.10) project(xsimd) option(XSIMD_REFACTORING ON)