summaryrefslogtreecommitdiffstats
path: root/src/vppinfra
diff options
context:
space:
mode:
Diffstat (limited to 'src/vppinfra')
-rw-r--r--src/vppinfra/memcpy_avx.h5
-rw-r--r--src/vppinfra/memcpy_sse3.h5
2 files changed, 10 insertions, 0 deletions
diff --git a/src/vppinfra/memcpy_avx.h b/src/vppinfra/memcpy_avx.h
index e3feb76b6b7..d95bbad72b8 100644
--- a/src/vppinfra/memcpy_avx.h
+++ b/src/vppinfra/memcpy_avx.h
@@ -185,6 +185,11 @@ clib_memcpy (void *dst, const void *src, size_t n)
/**
* Fast way when copy size doesn't exceed 512 bytes
*/
+ if (n == 16)
+ {
+ clib_mov16 ((u8 *) dst, (const u8 *) src);
+ return ret;
+ }
if (n <= 32)
{
clib_mov16 ((u8 *) dst, (const u8 *) src);
diff --git a/src/vppinfra/memcpy_sse3.h b/src/vppinfra/memcpy_sse3.h
index 4fc48c86c8b..49baf5e5d31 100644
--- a/src/vppinfra/memcpy_sse3.h
+++ b/src/vppinfra/memcpy_sse3.h
@@ -224,6 +224,11 @@ clib_memcpy (void *dst, const void *src, size_t n)
/**
* Fast way when copy size doesn't exceed 512 bytes
*/
+ if (n == 16)
+ {
+ clib_mov16 ((u8 *) dst, (const u8 *) src);
+ return ret;
+ }
if (n <= 32)
{
clib_mov16 ((u8 *) dst, (const u8 *) src);