From f7ee2f2d60a6825d4047284590fe65ab127dfd21 Mon Sep 17 00:00:00 2001 From: AntoinePrv Date: Fri, 3 Apr 2026 15:38:34 +0200 Subject: [PATCH 1/2] Fix windows CI arm runner --- .github/workflows/windows.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 3fae59208..f1c0d4132 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -94,7 +94,7 @@ jobs: - name: Setup compiler uses: ilammy/msvc-dev-cmd@v1 with: - arch: amd64 + arch: arm64 - name: Setup Ninja run: | python3 -m pip install --upgrade pip setuptools wheel From bf8ead4669671bf74f16b47821e4e33993a5dc06 Mon Sep 17 00:00:00 2001 From: AntoinePrv Date: Fri, 3 Apr 2026 16:46:14 +0200 Subject: [PATCH 2/2] Fix NEON dispatcher for MSVC ARM where all vector types alias to __n128 On MSVC ARM, all NEON vector types (uint8x16_t, int8x16_t, etc.) are typedefs to __n128, which causes duplicate template specializations and tuple type collisions in the register-type-based dispatchers. Replace register-type dispatchers with scalar-type dispatchers (uint8_t, int8_t, etc.) which are always distinct. Add neon_scalar_t trait to normalize platform-specific type aliases (char, long) to fixed-width types for reliable index_of lookups. Co-Authored-By: Claude Opus 4.6 --- include/xsimd/arch/xsimd_neon.hpp | 303 +++++++++++++++------------- include/xsimd/arch/xsimd_neon64.hpp | 117 +++-------- 2 files changed, 189 insertions(+), 231 deletions(-) diff --git a/include/xsimd/arch/xsimd_neon.hpp b/include/xsimd/arch/xsimd_neon.hpp index 4af19a650..8fc78b70a 100644 --- a/include/xsimd/arch/xsimd_neon.hpp +++ b/include/xsimd/arch/xsimd_neon.hpp @@ -159,138 +159,158 @@ namespace xsimd namespace detail { - template