Skip to content

Commit a7d7909

Browse files
AntoinePrvclaude
andcommitted
Remove :: from all NEON intrinsic call sites in xsimd_neon.hpp
On MSVC ARM64, arm64_neon.h defines arithmetic intrinsics as function-like macros expanding to cast expressions starting with '('. Calling them with a :: prefix produces '::(cast)...' which MSVC rejects as C2589. This was affecting the WRAP_BINARY/WRAP_UNARY macros (already fixed by removing parentheses), and also the manually-written wrappers for: - abs (vabsq_s8/s16/s32) - bitselect (vbslq_*) - reinterpret casts (WRAP_CAST / vreinterpretq_*) Drop :: from all 'return ::v...' patterns in this file. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent f15d2a3 commit a7d7909

1 file changed

Lines changed: 21 additions & 21 deletions

File tree

include/xsimd/arch/xsimd_neon.hpp

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1465,9 +1465,9 @@ namespace xsimd
14651465

14661466
namespace wrap
14671467
{
1468-
XSIMD_INLINE auto(x_vabsq_s8)(int8x16_t a) noexcept -> int8x16_t { return ::vabsq_s8(a); }
1469-
XSIMD_INLINE auto(x_vabsq_s16)(int16x8_t a) noexcept -> int16x8_t { return ::vabsq_s16(a); }
1470-
XSIMD_INLINE auto(x_vabsq_s32)(int32x4_t a) noexcept -> int32x4_t { return ::vabsq_s32(a); }
1468+
XSIMD_INLINE auto(x_vabsq_s8)(int8x16_t a) noexcept -> int8x16_t { return vabsq_s8(a); }
1469+
XSIMD_INLINE auto(x_vabsq_s16)(int16x8_t a) noexcept -> int16x8_t { return vabsq_s16(a); }
1470+
XSIMD_INLINE auto(x_vabsq_s32)(int32x4_t a) noexcept -> int32x4_t { return vabsq_s32(a); }
14711471
}
14721472
WRAP_UNARY_FLOAT(vabsq)
14731473

@@ -1819,15 +1819,15 @@ namespace xsimd
18191819

18201820
namespace wrap
18211821
{
1822-
XSIMD_INLINE auto(x_vbslq_u8)(uint8x16_t a, uint8x16_t b, uint8x16_t c) noexcept -> uint8x16_t { return ::vbslq_u8(a, b, c); }
1823-
XSIMD_INLINE auto(x_vbslq_s8)(uint8x16_t a, int8x16_t b, int8x16_t c) noexcept -> int8x16_t { return ::vbslq_s8(a, b, c); }
1824-
XSIMD_INLINE auto(x_vbslq_u16)(uint16x8_t a, uint16x8_t b, uint16x8_t c) noexcept -> uint16x8_t { return ::vbslq_u16(a, b, c); }
1825-
XSIMD_INLINE auto(x_vbslq_s16)(uint16x8_t a, int16x8_t b, int16x8_t c) noexcept -> int16x8_t { return ::vbslq_s16(a, b, c); }
1826-
XSIMD_INLINE auto(x_vbslq_u32)(uint32x4_t a, uint32x4_t b, uint32x4_t c) noexcept -> uint32x4_t { return ::vbslq_u32(a, b, c); }
1827-
XSIMD_INLINE auto(x_vbslq_s32)(uint32x4_t a, int32x4_t b, int32x4_t c) noexcept -> int32x4_t { return ::vbslq_s32(a, b, c); }
1828-
XSIMD_INLINE auto(x_vbslq_u64)(uint64x2_t a, uint64x2_t b, uint64x2_t c) noexcept -> uint64x2_t { return ::vbslq_u64(a, b, c); }
1829-
XSIMD_INLINE auto(x_vbslq_s64)(uint64x2_t a, int64x2_t b, int64x2_t c) noexcept -> int64x2_t { return ::vbslq_s64(a, b, c); }
1830-
XSIMD_INLINE auto(x_vbslq_f32)(uint32x4_t a, float32x4_t b, float32x4_t c) noexcept -> float32x4_t { return ::vbslq_f32(a, b, c); }
1822+
XSIMD_INLINE auto(x_vbslq_u8)(uint8x16_t a, uint8x16_t b, uint8x16_t c) noexcept -> uint8x16_t { return vbslq_u8(a, b, c); }
1823+
XSIMD_INLINE auto(x_vbslq_s8)(uint8x16_t a, int8x16_t b, int8x16_t c) noexcept -> int8x16_t { return vbslq_s8(a, b, c); }
1824+
XSIMD_INLINE auto(x_vbslq_u16)(uint16x8_t a, uint16x8_t b, uint16x8_t c) noexcept -> uint16x8_t { return vbslq_u16(a, b, c); }
1825+
XSIMD_INLINE auto(x_vbslq_s16)(uint16x8_t a, int16x8_t b, int16x8_t c) noexcept -> int16x8_t { return vbslq_s16(a, b, c); }
1826+
XSIMD_INLINE auto(x_vbslq_u32)(uint32x4_t a, uint32x4_t b, uint32x4_t c) noexcept -> uint32x4_t { return vbslq_u32(a, b, c); }
1827+
XSIMD_INLINE auto(x_vbslq_s32)(uint32x4_t a, int32x4_t b, int32x4_t c) noexcept -> int32x4_t { return vbslq_s32(a, b, c); }
1828+
XSIMD_INLINE auto(x_vbslq_u64)(uint64x2_t a, uint64x2_t b, uint64x2_t c) noexcept -> uint64x2_t { return vbslq_u64(a, b, c); }
1829+
XSIMD_INLINE auto(x_vbslq_s64)(uint64x2_t a, int64x2_t b, int64x2_t c) noexcept -> int64x2_t { return vbslq_s64(a, b, c); }
1830+
XSIMD_INLINE auto(x_vbslq_f32)(uint32x4_t a, float32x4_t b, float32x4_t c) noexcept -> float32x4_t { return vbslq_f32(a, b, c); }
18311831
}
18321832

18331833
namespace detail
@@ -2895,39 +2895,39 @@ namespace xsimd
28952895
{ \
28962896
XSIMD_INLINE auto(x_vreinterpretq_##SUFFIX##_u8)(uint8x16_t a) noexcept -> TYPE \
28972897
{ \
2898-
return ::vreinterpretq_##SUFFIX##_u8(a); \
2898+
return vreinterpretq_##SUFFIX##_u8(a); \
28992899
} \
29002900
XSIMD_INLINE auto(x_vreinterpretq_##SUFFIX##_s8)(int8x16_t a) noexcept -> TYPE \
29012901
{ \
2902-
return ::vreinterpretq_##SUFFIX##_s8(a); \
2902+
return vreinterpretq_##SUFFIX##_s8(a); \
29032903
} \
29042904
XSIMD_INLINE auto(x_vreinterpretq_##SUFFIX##_u16)(uint16x8_t a) noexcept -> TYPE \
29052905
{ \
2906-
return ::vreinterpretq_##SUFFIX##_u16(a); \
2906+
return vreinterpretq_##SUFFIX##_u16(a); \
29072907
} \
29082908
XSIMD_INLINE auto(x_vreinterpretq_##SUFFIX##_s16)(int16x8_t a) noexcept -> TYPE \
29092909
{ \
2910-
return ::vreinterpretq_##SUFFIX##_s16(a); \
2910+
return vreinterpretq_##SUFFIX##_s16(a); \
29112911
} \
29122912
XSIMD_INLINE auto(x_vreinterpretq_##SUFFIX##_u32)(uint32x4_t a) noexcept -> TYPE \
29132913
{ \
2914-
return ::vreinterpretq_##SUFFIX##_u32(a); \
2914+
return vreinterpretq_##SUFFIX##_u32(a); \
29152915
} \
29162916
XSIMD_INLINE auto(x_vreinterpretq_##SUFFIX##_s32)(int32x4_t a) noexcept -> TYPE \
29172917
{ \
2918-
return ::vreinterpretq_##SUFFIX##_s32(a); \
2918+
return vreinterpretq_##SUFFIX##_s32(a); \
29192919
} \
29202920
XSIMD_INLINE auto(x_vreinterpretq_##SUFFIX##_u64)(uint64x2_t a) noexcept -> TYPE \
29212921
{ \
2922-
return ::vreinterpretq_##SUFFIX##_u64(a); \
2922+
return vreinterpretq_##SUFFIX##_u64(a); \
29232923
} \
29242924
XSIMD_INLINE auto(x_vreinterpretq_##SUFFIX##_s64)(int64x2_t a) noexcept -> TYPE \
29252925
{ \
2926-
return ::vreinterpretq_##SUFFIX##_s64(a); \
2926+
return vreinterpretq_##SUFFIX##_s64(a); \
29272927
} \
29282928
XSIMD_INLINE auto(x_vreinterpretq_##SUFFIX##_f32)(float32x4_t a) noexcept -> TYPE \
29292929
{ \
2930-
return ::vreinterpretq_##SUFFIX##_f32(a); \
2930+
return vreinterpretq_##SUFFIX##_f32(a); \
29312931
} \
29322932
}
29332933

0 commit comments

Comments
 (0)