@@ -920,25 +920,25 @@ namespace xsimd
920920 template <class A , class T , detail::enable_sized_unsigned_t <T, 8 > = 0 >
921921 XSIMD_INLINE batch_bool<T, A> eq (batch<T, A> const & lhs, batch<T, A> const & rhs, requires_arch<neon>) noexcept
922922 {
923- auto eq32 = vceqq_u32 (vreinterpretq_u64_u32 (lhs.data ), vreinterpretq_u64_u32 (rhs.data ));
923+ auto eq32 = vceqq_u32 (vreinterpretq_u32_u64 (lhs.data ), vreinterpretq_u32_u64 (rhs.data ));
924924 auto rev32 = vrev64q_u32 (eq32);
925925 auto eq64 = vandq_u32 (eq32, rev32);
926- return batch_bool<T, A>(vreinterpretq_u32_u64 (eq64));
926+ return batch_bool<T, A>(vreinterpretq_u64_u32 (eq64));
927927 }
928928
929929 template <class A , class T , detail::enable_sized_signed_t <T, 8 > = 0 >
930930 XSIMD_INLINE batch_bool<T, A> eq (batch<T, A> const & lhs, batch<T, A> const & rhs, requires_arch<neon>) noexcept
931931 {
932- auto eq32 = vceqq_u32 (vreinterpretq_s64_u32 (lhs.data ), vreinterpretq_s64_u32 (rhs.data ));
932+ auto eq32 = vceqq_u32 (vreinterpretq_u32_s64 (lhs.data ), vreinterpretq_u32_s64 (rhs.data ));
933933 auto rev32 = vrev64q_u32 (eq32);
934934 auto eq64 = vandq_u32 (eq32, rev32);
935- return batch_bool<T, A>(vreinterpretq_u32_s64 (eq64));
935+ return batch_bool<T, A>(vreinterpretq_s64_u32 (eq64));
936936 }
937937
938938 template <class A , class T , detail::enable_sized_integral_t <T, 8 > = 0 >
939939 XSIMD_INLINE batch_bool<T, A> eq (batch_bool<T, A> const & lhs, batch_bool<T, A> const & rhs, requires_arch<neon>) noexcept
940940 {
941- return eq (lhs.data , rhs.data );
941+ return eq (batch<T, A> { lhs.data }, batch<T, A> { rhs.data }, A {} );
942942 }
943943
944944 /* ************
0 commit comments