From 992d996ff5672ae647b21e27901d258aace79058 Mon Sep 17 00:00:00 2001 From: Mohsin Kazmi Date: Tue, 3 Aug 2021 17:56:05 +0000 Subject: vppinfra: fix the array mask function Type: fix Fixes: 0ec7dad7a00852663eb88554561347987f87bb53 Signed-off-by: Mohsin Kazmi Change-Id: I7fab80b3c7e86ac712a34c24ea3e526b0b5bb7ad --- src/vppinfra/vector/array_mask.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/vppinfra/vector/array_mask.h') diff --git a/src/vppinfra/vector/array_mask.h b/src/vppinfra/vector/array_mask.h index 8f2e1d7d88c..778ed3e638f 100644 --- a/src/vppinfra/vector/array_mask.h +++ b/src/vppinfra/vector/array_mask.h @@ -37,11 +37,12 @@ clib_array_mask_u32 (u32 *src, u32 mask, u32 n_elts) for (i = 0; i + 8 <= n_elts; i += 8) *((u32x8u *) (src + i)) &= mask8; n_elts -= i; + src += i; #if defined(CLIB_HAVE_VEC256_MASK_LOAD_STORE) if (n_elts) { u8 m = pow2_mask (n_elts); - u32x8_mask_store (u32x8_mask_load_zero (src + i, m) & mask8, src + i, m); + u32x8_mask_store (u32x8_mask_load_zero (src, m) & mask8, src, m); } return; #endif @@ -51,6 +52,7 @@ clib_array_mask_u32 (u32 *src, u32 mask, u32 n_elts) for (i = 0; i + 4 <= n_elts; i += 4) *((u32x4u *) (src + i)) &= mask4; n_elts -= i; + src += i; switch (n_elts) { case 3: -- cgit 1.2.3-korg