diff --git a/src/vppinfra/memcpy_avx2.h b/src/vppinfra/memcpy_avx2.h
index f7a36f0..ac29d25 100644
--- a/src/vppinfra/memcpy_avx2.h
+++ b/src/vppinfra/memcpy_avx2.h
@@ -135,19 +135,19 @@
 	}
       if (n & 0x02)
 	{
-	  *(u16 *) dstu = *(const u16 *) srcu;
-	  srcu = (uword) ((const u16 *) srcu + 1);
-	  dstu = (uword) ((u16 *) dstu + 1);
+	  *(u16u *) dstu = *(const u16u *) srcu;
+	  srcu = (uword) ((const u16u *) srcu + 1);
+	  dstu = (uword) ((u16u *) dstu + 1);
 	}
       if (n & 0x04)
 	{
-	  *(u32 *) dstu = *(const u32 *) srcu;
-	  srcu = (uword) ((const u32 *) srcu + 1);
-	  dstu = (uword) ((u32 *) dstu + 1);
+	  *(u32u *) dstu = *(const u32u *) srcu;
+	  srcu = (uword) ((const u32u *) srcu + 1);
+	  dstu = (uword) ((u32u *) dstu + 1);
 	}
       if (n & 0x08)
 	{
-	  *(u64 *) dstu = *(const u64 *) srcu;
+	  *(u64u *) dstu = *(const u64u *) srcu;
 	}
       return ret;
     }
diff --git a/src/vppinfra/memcpy_avx512.h b/src/vppinfra/memcpy_avx512.h
index 98dac75..2025070 100644
--- a/src/vppinfra/memcpy_avx512.h
+++ b/src/vppinfra/memcpy_avx512.h
@@ -165,18 +165,18 @@
 	}
       if (n & 0x02)
 	{
-	  *(u16 *) dstu = *(const u16 *) srcu;
-	  srcu = (uword) ((const u16 *) srcu + 1);
-	  dstu = (uword) ((u16 *) dstu + 1);
+	  *(u16u *) dstu = *(const u16u *) srcu;
+	  srcu = (uword) ((const u16u *) srcu + 1);
+	  dstu = (uword) ((u16u *) dstu + 1);
 	}
       if (n & 0x04)
 	{
-	  *(u32 *) dstu = *(const u32 *) srcu;
-	  srcu = (uword) ((const u32 *) srcu + 1);
-	  dstu = (uword) ((u32 *) dstu + 1);
+	  *(u32u *) dstu = *(const u32u *) srcu;
+	  srcu = (uword) ((const u32u *) srcu + 1);
+	  dstu = (uword) ((u32u *) dstu + 1);
 	}
       if (n & 0x08)
-	*(u64 *) dstu = *(const u64 *) srcu;
+	*(u64u *) dstu = *(const u64u *) srcu;
       return ret;
     }
 
diff --git a/src/vppinfra/memcpy_sse3.h b/src/vppinfra/memcpy_sse3.h
index aea2005..2ad3648 100644
--- a/src/vppinfra/memcpy_sse3.h
+++ b/src/vppinfra/memcpy_sse3.h
@@ -210,19 +210,19 @@
 	}
       if (n & 0x02)
 	{
-	  *(u16 *) dstu = *(const u16 *) srcu;
-	  srcu = (uword) ((const u16 *) srcu + 1);
-	  dstu = (uword) ((u16 *) dstu + 1);
+	  *(u16u *) dstu = *(const u16u *) srcu;
+	  srcu = (uword) ((const u16u *) srcu + 1);
+	  dstu = (uword) ((u16u *) dstu + 1);
 	}
       if (n & 0x04)
 	{
-	  *(u32 *) dstu = *(const u32 *) srcu;
-	  srcu = (uword) ((const u32 *) srcu + 1);
-	  dstu = (uword) ((u32 *) dstu + 1);
+	  *(u32u *) dstu = *(const u32u *) srcu;
+	  srcu = (uword) ((const u32u *) srcu + 1);
+	  dstu = (uword) ((u32u *) dstu + 1);
 	}
       if (n & 0x08)
 	{
-	  *(u64 *) dstu = *(const u64 *) srcu;
+	  *(u64u *) dstu = *(const u64u *) srcu;
 	}
       return ret;
     }
diff --git a/src/vppinfra/types.h b/src/vppinfra/types.h
index c5e7f09..b52d603 100644
--- a/src/vppinfra/types.h
+++ b/src/vppinfra/types.h
@@ -163,6 +163,13 @@
        __attribute__ ((aligned (align), packed));	\
     } *) (addr))->_data)
 
+typedef u16 u16u __attribute__ ((aligned (1)));
+typedef u32 u32u __attribute__ ((aligned (1)));
+typedef u64 u64u __attribute__ ((aligned (1)));
+typedef i16 i16u __attribute__ ((aligned (1)));
+typedef i32 i32u __attribute__ ((aligned (1)));
+typedef i64 i64u __attribute__ ((aligned (1)));
+
 #endif /* included_clib_types_h */
 
 /*
