From: Konstantinos Margaritis Date: Tue, 20 Jul 2021 11:38:19 +0000 (+0000) Subject: fix arm loadu_maskz() X-Git-Tag: v5.4.3+vectorscan~69 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=825460856f750d067063e4fb54f5949f2b53be84;p=thirdparty%2Fvectorscan.git fix arm loadu_maskz() --- diff --git a/src/util/supervector/arch/arm/impl.cpp b/src/util/supervector/arch/arm/impl.cpp index 678ebdfb..2c4cf3d6 100644 --- a/src/util/supervector/arch/arm/impl.cpp +++ b/src/util/supervector/arch/arm/impl.cpp @@ -289,11 +289,11 @@ really_inline SuperVector<16> SuperVector<16>::load(void const *ptr) template <> really_inline SuperVector<16> SuperVector<16>::loadu_maskz(void const *ptr, uint8_t const len) { - uint8_t alignment = (uintptr_t)(ptr) & 15; - SuperVector<16> maskb = Ones() << alignment; - SuperVector<16> maske = Ones() >> (16 -len - alignment); - SuperVector<16> v = SuperVector<16>::loadu((const m128 *)ptr); - return {maskb.u.v128[0] & maske.u.v128[0] & v.u.v128[0]}; + SuperVector<16> mask = Ones() >> (16 -len); + mask.print8("mask"); + SuperVector<16> v = loadu(ptr); + v.print8("v"); + return mask & v; } #ifdef HS_OPTIMIZE