Bruce, David, Thomas, PING. Please ack or review this simple patch, so it can be merged.
Details were already discussed on the list with Thomas. NB: The test errors in Patchwork are bogus: "ERROR: Could not detect Ninja v1.5 or newer" is clearly not related to the patch. -Morten > From: Morten Brørup [mailto:m...@smartsharesystems.com] > Sent: Saturday, 20 August 2022 12.31 > > 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