From 6e4e5ead03e22007a4e16955fa80a8d4236e64e1 Mon Sep 17 00:00:00 2001 From: joaquintides Date: Mon, 17 Oct 2022 18:43:48 +0200 Subject: [PATCH] made Neon group15 compatible with A32 --- include/boost/unordered/detail/foa.hpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/include/boost/unordered/detail/foa.hpp b/include/boost/unordered/detail/foa.hpp index a88ab187..448ba371 100644 --- a/include/boost/unordered/detail/foa.hpp +++ b/include/boost/unordered/detail/foa.hpp @@ -389,7 +389,13 @@ private: uint8x16_t masked=vandq_u8(vld1q_u8(md),a); uint8x8x2_t tmp=vzip_u8(vget_low_u8(masked),vget_high_u8(masked)); uint16x8_t x=vreinterpretq_u16_u8(vcombine_u8(tmp.val[0],tmp.val[1])); + +#if defined(__ARM_ARCH_ISA_A64) return vaddvq_u16(x); +#else + uint64x2_t t64=vpaddlq_u32(vpaddlq_u16(x)); + return int(vgetq_lane_u64(t64,0))+int(vgetq_lane_u64(t64,1)); +#endif } inline unsigned char& at(std::size_t pos)