From be62728876730520e306af443bff0ee53af57609 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antonio=20S=C3=A1nchez?= Date: Tue, 14 Feb 2023 21:45:25 +0000 Subject: [PATCH] More NEON packetmath fixes. (cherry picked from commit 384269937f707669fb1ab65bee7e9bfca2c2dfa1) --- Eigen/src/Core/arch/NEON/PacketMath.h | 6 +++--- Eigen/src/Core/arch/NEON/TypeCasting.h | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Eigen/src/Core/arch/NEON/PacketMath.h b/Eigen/src/Core/arch/NEON/PacketMath.h index e93787d93..b7b880f80 100644 --- a/Eigen/src/Core/arch/NEON/PacketMath.h +++ b/Eigen/src/Core/arch/NEON/PacketMath.h @@ -88,8 +88,8 @@ typedef uint32x4_t Packet4ui; typedef int64x2_t Packet2l; typedef uint64x2_t Packet2ul; -EIGEN_ALWAYS_INLINE Packet4f make_packet4f(float a, float b, float c, float d) { return {a, b, c, d}; } -EIGEN_ALWAYS_INLINE Packet2f make_packet2f(float a, float b) { return {a, b}; } +EIGEN_ALWAYS_INLINE Packet4f make_packet4f(float a, float b, float c, float d) { return Packet4f{a, b, c, d}; } +EIGEN_ALWAYS_INLINE Packet2f make_packet2f(float a, float b) { return Packet2f{a, b}; } #endif // EIGEN_COMP_MSVC_STRICT @@ -3694,7 +3694,7 @@ EIGEN_ALWAYS_INLINE Packet2d make_packet2d(double a, double b) { return vld1q_f64(from); } -EIGEN_ALWAYS_INLINE Packet2d make_packet2d(double a, double b) { return {a, b}; } +EIGEN_ALWAYS_INLINE Packet2d make_packet2d(double a, double b) { return Packet2d{a, b}; } #endif diff --git a/Eigen/src/Core/arch/NEON/TypeCasting.h b/Eigen/src/Core/arch/NEON/TypeCasting.h index 1bc51b0b1..c546466a1 100644 --- a/Eigen/src/Core/arch/NEON/TypeCasting.h +++ b/Eigen/src/Core/arch/NEON/TypeCasting.h @@ -41,7 +41,7 @@ EIGEN_STRONG_INLINE Packet4c preinterpret(const Packet4uc& } template <> EIGEN_STRONG_INLINE Packet8c preinterpret(const Packet8uc& a) { - return Packet8c(preinterpret(a)); + return Packet8c(vreinterpret_s8_u8(a)); } template <> EIGEN_STRONG_INLINE Packet16c preinterpret(const Packet16uc& a) { @@ -1373,7 +1373,7 @@ struct type_casting_traits { template <> EIGEN_STRONG_INLINE Packet2d pcast(const Packet8us& a) { // Discard all but first two values. - Packet2f tmp = pcast(vget_low_s16(a)); + Packet2f tmp = pcast(vget_low_u16(a)); return vcvt_f64_f32(tmp); }