From ed9a0e59bab8d97f62dd479238d8a7b785fedabe Mon Sep 17 00:00:00 2001 From: Rasmus Munk Larsen <4643818-rmlarsen1@users.noreply.gitlab.com> Date: Mon, 3 Nov 2025 20:26:17 +0000 Subject: [PATCH] Fix more bugs in !2052 Fixes #2998 Closes #2998 See merge request libeigen/eigen!2057 Co-authored-by: Rasmus Munk Larsen --- Eigen/src/Core/arch/NEON/Complex.h | 16 ++++++++-------- Eigen/src/Core/arch/NEON/PacketMath.h | 15 +++++++-------- 2 files changed, 15 insertions(+), 16 deletions(-) diff --git a/Eigen/src/Core/arch/NEON/Complex.h b/Eigen/src/Core/arch/NEON/Complex.h index 8b2c5ffe3..b8655c80d 100644 --- a/Eigen/src/Core/arch/NEON/Complex.h +++ b/Eigen/src/Core/arch/NEON/Complex.h @@ -281,12 +281,12 @@ EIGEN_STRONG_INLINE Packet2cf pandnot(const Packet2cf& a, const Packe template <> EIGEN_STRONG_INLINE Packet1cf pload(const std::complex* from) { EIGEN_DEBUG_ALIGNED_LOAD return Packet1cf( - pload(reinterpret_cast(assume_aligned::alignment>(from)))); + pload(assume_aligned::alignment>(reinterpret_cast(from)))); } template <> EIGEN_STRONG_INLINE Packet2cf pload(const std::complex* from) { EIGEN_DEBUG_ALIGNED_LOAD return Packet2cf( - pload(reinterpret_cast(assume_aligned::alignment>(from)))); + pload(assume_aligned::alignment>(reinterpret_cast(from)))); } template <> @@ -309,12 +309,12 @@ EIGEN_STRONG_INLINE Packet2cf ploaddup(const std::complex* fro template <> EIGEN_STRONG_INLINE void pstore>(std::complex* to, const Packet1cf& from) { - EIGEN_DEBUG_ALIGNED_STORE pstore( - reinterpret_cast(assume_aligned::alignment>(to), from.v)); + EIGEN_DEBUG_ALIGNED_STORE pstore(assume_aligned::alignment>(reinterpret_cast(to)), + from.v); } template <> EIGEN_STRONG_INLINE void pstore>(std::complex* to, const Packet2cf& from) { - EIGEN_DEBUG_ALIGNED_STORE pstore(reinterpret_cast(assume_aligned::alignment>(to)), + EIGEN_DEBUG_ALIGNED_STORE pstore(assume_aligned::alignment>(reinterpret_cast(to)), from.v); } @@ -532,7 +532,7 @@ struct unpacket_traits : neon_unpacket_default EIGEN_STRONG_INLINE Packet1cd pload(const std::complex* from) { EIGEN_DEBUG_ALIGNED_LOAD return Packet1cd( - pload(reinterpret_cast(assume_aligned::alignment>(from)))); + pload(assume_aligned::alignment>(reinterpret_cast(from)))); } template <> @@ -645,8 +645,8 @@ EIGEN_STRONG_INLINE Packet1cd ploaddup(const std::complex* fr template <> EIGEN_STRONG_INLINE void pstore>(std::complex* to, const Packet1cd& from) { - EIGEN_DEBUG_ALIGNED_STORE pstore( - reinterpret_cast(assume_aligned::alignment>(to), from.v)); + EIGEN_DEBUG_ALIGNED_STORE pstore(assume_aligned::alignment>(reinterpret_cast(to)), + from.v); } template <> diff --git a/Eigen/src/Core/arch/NEON/PacketMath.h b/Eigen/src/Core/arch/NEON/PacketMath.h index d899d5e47..ae81fedc8 100644 --- a/Eigen/src/Core/arch/NEON/PacketMath.h +++ b/Eigen/src/Core/arch/NEON/PacketMath.h @@ -4699,8 +4699,8 @@ EIGEN_STRONG_INLINE bfloat16 pfirst(const Packet4bf& from) { template <> EIGEN_STRONG_INLINE Packet4bf pload(const bfloat16* from) { -unpacket_traits::alignment); -return Packet4bf(pload(reinterpret_cast(from))); + return Packet4bf( + pload(reinterpret_cast(assume_aligned::alignment>(from)))); } template <> @@ -5201,8 +5201,7 @@ EIGEN_STRONG_INLINE Packet2d pcmp_eq(const Packet2d& a, const Packet2d& b) { template <> EIGEN_STRONG_INLINE Packet2d pload(const double* from) { -unpacket_traits::alignment); -EIGEN_DEBUG_ALIGNED_LOAD return vld1q_f64(from); + EIGEN_DEBUG_ALIGNED_LOAD return vld1q_f64(assume_aligned::alignment>(from)); } template <> @@ -5743,14 +5742,14 @@ EIGEN_STRONG_INLINE Packet4hf pandnot(const Packet4hf& a, const Packe template <> EIGEN_STRONG_INLINE Packet8hf pload(const Eigen::half* from) { - EIGEN_DEBUG_ALIGNED_LOAD return vld1q_f16(reinterpret_cast( - assume_aligned::alignment>(from))); + EIGEN_DEBUG_ALIGNED_LOAD return vld1q_f16( + reinterpret_cast(assume_aligned::alignment>(from))); } template <> EIGEN_STRONG_INLINE Packet4hf pload(const Eigen::half* from) { - EIGEN_DEBUG_ALIGNED_LOAD return vld1_f16(reinterpret_cast( - assume_aligned::alignment>(from))); + EIGEN_DEBUG_ALIGNED_LOAD return vld1_f16( + reinterpret_cast(assume_aligned::alignment>(from))); } template <>