@@ -1054,21 +1054,17 @@ namespace xsimd
10541054 template <class A , class T , detail::enable_sized_signed_t <T, 8 > = 0 >
10551055 XSIMD_INLINE batch_bool<T, A> gt (batch<T, A> const & lhs, batch<T, A> const & rhs, requires_arch<neon>) noexcept
10561056 {
1057- #if 1
10581057 using register_type = typename batch<T, A>::register_type;
10591058 return batch_bool<T, A>(vreinterpretq_u64_s64 (vshrq_n_s64 (vqsubq_s64 (register_type (rhs), register_type (lhs)), 63 )));
1060- #else
1061- return batch_bool<T, A>({ lhs.get(0) > rhs.get(0), lhs.get(1) > rhs.get(1) });
1062- #endif
10631059 }
10641060
10651061 template <class A , class T , detail::enable_sized_unsigned_t <T, 8 > = 0 >
10661062 XSIMD_INLINE batch_bool<T, A> gt (batch<T, A> const & lhs, batch<T, A> const & rhs, requires_arch<neon>) noexcept
10671063 {
1068- #if 0
1064+ #if 1
10691065 using register_type = typename batch<T, A>::register_type;
10701066 register_type acc = { 0x8FFFFFFFFFFFFFFFull , 0x8FFFFFFFFFFFFFFFull };
1071- return batch_bool<T, A>(vreinterpretq_u64_s64(detail::bitwise_not_s64( vshrq_n_s64(vreinterpretq_s64_u64(vqaddq_u64(vqsubq_u64(register_type(rhs), register_type(lhs)), acc)), 63) )));
1067+ return batch_bool<T, A>(vreinterpretq_u64_s64 (vshrq_n_s64 (vreinterpretq_s64_u64 (vqaddq_u64 (vqsubq_u64 (register_type (rhs), register_type (lhs)), acc)), 63 )));
10721068#else
10731069 return batch_bool<T, A>({ lhs.get(0) > rhs.get(0), lhs.get(1) > rhs.get(1) });
10741070 #endif
0 commit comments