The rte_mov256 function was missing for AVX2. Does nobody build test for AVX2 and check the compiler output?
Signed-off-by: Morten Brørup <m...@smartsharesystems.com> --- lib/eal/x86/include/rte_memcpy.h | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/lib/eal/x86/include/rte_memcpy.h b/lib/eal/x86/include/rte_memcpy.h index b678b5c942..d4d7a5cfc8 100644 --- a/lib/eal/x86/include/rte_memcpy.h +++ b/lib/eal/x86/include/rte_memcpy.h @@ -371,6 +371,23 @@ rte_mov128(uint8_t *dst, const uint8_t *src) rte_mov32((uint8_t *)dst + 3 * 32, (const uint8_t *)src + 3 * 32); } +/** + * Copy 256 bytes from one location to another, + * locations should not overlap. + */ +static __rte_always_inline void +rte_mov256(uint8_t *dst, const uint8_t *src) +{ + rte_mov32((uint8_t *)dst + 0 * 32, (const uint8_t *)src + 0 * 32); + rte_mov32((uint8_t *)dst + 1 * 32, (const uint8_t *)src + 1 * 32); + rte_mov32((uint8_t *)dst + 2 * 32, (const uint8_t *)src + 2 * 32); + rte_mov32((uint8_t *)dst + 3 * 32, (const uint8_t *)src + 3 * 32); + rte_mov32((uint8_t *)dst + 4 * 32, (const uint8_t *)src + 4 * 32); + rte_mov32((uint8_t *)dst + 5 * 32, (const uint8_t *)src + 5 * 32); + rte_mov32((uint8_t *)dst + 6 * 32, (const uint8_t *)src + 6 * 32); + rte_mov32((uint8_t *)dst + 7 * 32, (const uint8_t *)src + 7 * 32); +} + /** * Copy 128-byte blocks from one location to another, * locations should not overlap. -- 2.17.1