diff options
author | Damjan Marion <damarion@cisco.com> | 2021-04-21 21:11:35 +0200 |
---|---|---|
committer | Beno�t Ganne <bganne@cisco.com> | 2021-04-26 13:47:40 +0000 |
commit | 856d062ce67f93d83f1ff302a394e8a4448ad017 (patch) | |
tree | 7b7dc8436850bcf03ab74d91de65eb8fee59e6d2 /src/vlib | |
parent | c99ab12cbb9252806db55f7a79e5d84b41df3525 (diff) |
vppinfra: clib_memcpy_u32() utilizing SIMD mask loads/stores
Type: improvement
Change-Id: I55c4688bd1feffae139ce12a66d15885373e5cd7
Signed-off-by: Damjan Marion <damarion@cisco.com>
Diffstat (limited to 'src/vlib')
-rw-r--r-- | src/vlib/buffer_funcs.h | 38 |
1 files changed, 1 insertions, 37 deletions
diff --git a/src/vlib/buffer_funcs.h b/src/vlib/buffer_funcs.h index 8ab9c4e53ad..7829986d643 100644 --- a/src/vlib/buffer_funcs.h +++ b/src/vlib/buffer_funcs.h @@ -121,43 +121,7 @@ vlib_buffer_get_default_data_size (vlib_main_t * vm) static_always_inline void vlib_buffer_copy_indices (u32 * dst, u32 * src, u32 n_indices) { -#if defined(CLIB_HAVE_VEC512) - while (n_indices >= 16) - { - u32x16_store_unaligned (u32x16_load_unaligned (src), dst); - dst += 16; - src += 16; - n_indices -= 16; - } -#endif - -#if defined(CLIB_HAVE_VEC256) - while (n_indices >= 8) - { - u32x8_store_unaligned (u32x8_load_unaligned (src), dst); - dst += 8; - src += 8; - n_indices -= 8; - } -#endif - -#if defined(CLIB_HAVE_VEC128) - while (n_indices >= 4) - { - u32x4_store_unaligned (u32x4_load_unaligned (src), dst); - dst += 4; - src += 4; - n_indices -= 4; - } -#endif - - while (n_indices) - { - dst[0] = src[0]; - dst += 1; - src += 1; - n_indices -= 1; - } + clib_memcpy_u32 (dst, src, n_indices); } always_inline void |