diff --git a/include/xsimd/arch/xsimd_neon.hpp b/include/xsimd/arch/xsimd_neon.hpp index 5e56c414a..eff01e60d 100644 --- a/include/xsimd/arch/xsimd_neon.hpp +++ b/include/xsimd/arch/xsimd_neon.hpp @@ -24,26 +24,26 @@ // Wrap intrinsics so we can pass them as function pointers // - OP: intrinsics name prefix, e.g., vorrq // - RT: type traits to deduce intrinsics return types -#define WRAP_BINARY_INT_EXCLUDING_64(OP, RT) \ +#define WRAP_BINARY_INT_EXCLUDING_64(OP) \ namespace wrap { \ - inline RT _##OP##_u8 (uint8x16_t a, uint8x16_t b) { return ::OP##_u8 (a, b); } \ - inline RT _##OP##_s8 (int8x16_t a, int8x16_t b) { return ::OP##_s8 (a, b); } \ - inline RT _##OP##_u16(uint16x8_t a, uint16x8_t b) { return ::OP##_u16(a, b); } \ - inline RT _##OP##_s16(int16x8_t a, int16x8_t b) { return ::OP##_s16(a, b); } \ - inline RT _##OP##_u32(uint32x4_t a, uint32x4_t b) { return ::OP##_u32(a, b); } \ - inline RT _##OP##_s32(int32x4_t a, int32x4_t b) { return ::OP##_s32(a, b); } \ + inline uint8x16_t _##OP##_u8 (uint8x16_t a, uint8x16_t b) { return ::OP##_u8 (a, b); } \ + inline int8x16_t _##OP##_s8 (int8x16_t a, int8x16_t b) { return ::OP##_s8 (a, b); } \ + inline uint16x8_t _##OP##_u16(uint16x8_t a, uint16x8_t b) { return ::OP##_u16(a, b); } \ + inline int16x8_t _##OP##_s16(int16x8_t a, int16x8_t b) { return ::OP##_s16(a, b); } \ + inline uint32x4_t _##OP##_u32(uint32x4_t a, uint32x4_t b) { return ::OP##_u32(a, b); } \ + inline int32x4_t _##OP##_s32(int32x4_t a, int32x4_t b) { return ::OP##_s32(a, b); } \ } -#define WRAP_BINARY_INT(OP, RT) \ - WRAP_BINARY_INT_EXCLUDING_64(OP, RT) \ +#define WRAP_BINARY_INT(OP) \ + WRAP_BINARY_INT_EXCLUDING_64(OP) \ namespace wrap { \ - inline RT _##OP##_u64(uint64x2_t a, uint64x2_t b) { return ::OP##_u64(a, b); } \ - inline RT _##OP##_s64(int64x2_t a, int64x2_t b) { return ::OP##_s64(a, b); } \ + inline uint64x2_t _##OP##_u64(uint64x2_t a, uint64x2_t b) { return ::OP##_u64(a, b); } \ + inline int64x2_t _##OP##_s64(int64x2_t a, int64x2_t b) { return ::OP##_s64(a, b); } \ } -#define WRAP_BINARY_FLOAT(OP, RT) \ +#define WRAP_BINARY_FLOAT(OP) \ namespace wrap { \ - inline RT _##OP##_f32(float32x4_t a, float32x4_t b) { return ::OP##_f32(a, b); } \ + inline float32x4_t _##OP##_f32(float32x4_t a, float32x4_t b) { return ::OP##_f32(a, b); } \ } #define WRAP_UNARY_INT_EXCLUDING_64(OP) \ @@ -87,139 +87,6 @@ namespace xsimd namespace detail { - template