From 9bbadfdb34e52cba690855fd68e2e1b760297c73 Mon Sep 17 00:00:00 2001 From: joaquintides Date: Sat, 11 Mar 2023 22:00:30 +0100 Subject: [PATCH] fixed sign issues in Neon ops --- include/boost/unordered/detail/foa/core.hpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/include/boost/unordered/detail/foa/core.hpp b/include/boost/unordered/detail/foa/core.hpp index 0b94a026..5e6cb368 100644 --- a/include/boost/unordered/detail/foa/core.hpp +++ b/include/boost/unordered/detail/foa/core.hpp @@ -386,9 +386,9 @@ struct group15 inline int match(std::size_t hash)const { - return simde_mm_movemask_epi8(vceqq_s8( + return simde_mm_movemask_epi8(vceqq_u8( vld1q_u8(reinterpret_cast(m)), - vdupq_n_s8(static_cast(reduced_hash(hash)))))&0x7FFF; + vdupq_n_u8(reduced_hash(hash))))&0x7FFF; } inline bool is_not_overflowed(std::size_t hash)const @@ -412,9 +412,9 @@ struct group15 inline int match_available()const { - return simde_mm_movemask_epi8(vceqq_s8( + return simde_mm_movemask_epi8(vceqq_u8( vld1q_u8(reinterpret_cast(m)), - vdupq_n_s8(0)))&0x7FFF; + vdupq_n_u8(0)))&0x7FFF; } static inline bool is_occupied(unsigned char* pc)noexcept @@ -425,7 +425,7 @@ struct group15 inline int match_occupied()const { return simde_mm_movemask_epi8(vcgtq_u8( - vreinterpretq_u8_s8(vld1q_u8(reinterpret_cast(m))), + vld1q_u8(reinterpret_cast(m))), vdupq_n_u8(0)))&0x7FFF; }