Skip to content

Commit 2523ea1

Browse files
WIP
1 parent 540e1b2 commit 2523ea1

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

include/xsimd/arch/xsimd_neon.hpp

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1039,10 +1039,18 @@ namespace xsimd
10391039
return dispatcher.apply(register_type(lhs), register_type(rhs));
10401040
}
10411041

1042-
template <class A, class T, detail::enable_sized_integral_t<T, 8> = 0>
1042+
template <class A, class T, detail::enable_sized_signed_t<T, 8> = 0>
10431043
XSIMD_INLINE batch_bool<T, A> gt(batch<T, A> const& lhs, batch<T, A> const& rhs, requires_arch<neon>) noexcept
10441044
{
1045-
return batch_bool<T, A>({ lhs.get(0) > rhs.get(0), lhs.get(1) > rhs.get(1) });
1045+
using register_type = typename batch<T, A>::register_type;
1046+
return vshrq_n_s64(vqsubq_s64(register_type(lhs), register_type(rhs)), 63);
1047+
}
1048+
1049+
template <class A, class T, detail::enable_sized_unsigned_t<T, 8> = 0>
1050+
XSIMD_INLINE batch_bool<T, A> gt(batch<T, A> const& lhs, batch<T, A> const& rhs, requires_arch<neon>) noexcept
1051+
{
1052+
using register_type = typename batch<T, A>::register_type;
1053+
return vshrq_n_s64(vreinterpretq_s64_u64(vqsubq_u64(register_type(lhs), register_type(rhs))), 63);
10461054
}
10471055

10481056
/******

0 commit comments

Comments
 (0)