Commit f9d7240
Fix xsimd_neon64.hpp for MSVC ARM64
Two issues newly exposed after fixing xsimd_neon.hpp:
1. reducer_return_type_impl used explicit template specializations.
On MSVC ARM64 all NEON vector types share the same underlying __n128
type, so all specializations clashed (C2766: already defined).
Replace with a primary template using std::conditional chains,
following the same pattern as comp_return_type_impl in xsimd_neon.hpp.
2. WRAP_CAST used ::vreinterpretq_f64_* calls. On MSVC ARM64,
vreinterpretq_* are macros that expand to cast expressions starting
with '(', so ::macro(x) becomes ::(cast)... which MSVC rejects
(C2589: illegal token after ::). Drop :: from those calls.
Note: WRAP_REDUCER wrappers keep :: because the wrapper function has
the same name as the intrinsic (no x_ prefix), making :: necessary to
avoid recursion. Reducer intrinsics are actual functions on MSVC ARM64
(not macros), so :: works correctly there.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>1 parent a7d7909 commit f9d7240
1 file changed
Lines changed: 36 additions & 62 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
947 | 947 | | |
948 | 948 | | |
949 | 949 | | |
950 | | - | |
951 | | - | |
952 | | - | |
953 | | - | |
954 | | - | |
955 | | - | |
956 | | - | |
957 | | - | |
958 | | - | |
959 | | - | |
960 | | - | |
961 | | - | |
962 | | - | |
963 | | - | |
964 | | - | |
965 | | - | |
966 | | - | |
967 | | - | |
968 | | - | |
969 | | - | |
970 | | - | |
971 | | - | |
972 | | - | |
973 | | - | |
974 | | - | |
975 | | - | |
976 | | - | |
977 | | - | |
978 | | - | |
979 | | - | |
980 | | - | |
981 | | - | |
982 | | - | |
983 | | - | |
984 | | - | |
985 | | - | |
986 | | - | |
987 | | - | |
988 | | - | |
989 | | - | |
990 | | - | |
991 | | - | |
992 | | - | |
993 | | - | |
994 | | - | |
995 | | - | |
996 | | - | |
997 | | - | |
998 | | - | |
999 | | - | |
1000 | | - | |
1001 | | - | |
1002 | | - | |
1003 | | - | |
1004 | | - | |
1005 | | - | |
1006 | | - | |
1007 | | - | |
1008 | | - | |
| 950 | + | |
| 951 | + | |
| 952 | + | |
| 953 | + | |
| 954 | + | |
| 955 | + | |
1009 | 956 | | |
1010 | | - | |
| 957 | + | |
| 958 | + | |
| 959 | + | |
| 960 | + | |
| 961 | + | |
| 962 | + | |
| 963 | + | |
| 964 | + | |
| 965 | + | |
| 966 | + | |
| 967 | + | |
| 968 | + | |
| 969 | + | |
| 970 | + | |
| 971 | + | |
| 972 | + | |
| 973 | + | |
| 974 | + | |
| 975 | + | |
| 976 | + | |
| 977 | + | |
| 978 | + | |
| 979 | + | |
| 980 | + | |
| 981 | + | |
| 982 | + | |
| 983 | + | |
| 984 | + | |
1011 | 985 | | |
1012 | 986 | | |
1013 | 987 | | |
| |||
1359 | 1333 | | |
1360 | 1334 | | |
1361 | 1335 | | |
1362 | | - | |
| 1336 | + | |
1363 | 1337 | | |
1364 | 1338 | | |
1365 | 1339 | | |
1366 | | - | |
| 1340 | + | |
1367 | 1341 | | |
1368 | 1342 | | |
1369 | 1343 | | |
| |||
0 commit comments