Fix unaligned access in xx_loadl_32 & xx_storel_32

Tested:
cmake ../aom -DCONFIG_LOWBITDEPTH=1 -DSANITIZE=undefined -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++
./test_libaom --gtest_filter=*InvalidFileTest*

Change-Id: I1ec76944eeed0ed688f532a3d83a8b2079ee27b8
diff --git a/aom_dsp/x86/synonyms.h b/aom_dsp/x86/synonyms.h
index 1e9f1e2..c6f18ae 100644
--- a/aom_dsp/x86/synonyms.h
+++ b/aom_dsp/x86/synonyms.h
@@ -13,6 +13,7 @@
 #define AOM_AOM_DSP_X86_SYNONYMS_H_
 
 #include <immintrin.h>
+#include <string.h>
 
 #include "config/aom_config.h"
 
@@ -28,7 +29,9 @@
 // Loads and stores to do away with the tedium of casting the address
 // to the right type.
 static INLINE __m128i xx_loadl_32(const void *a) {
-  return _mm_cvtsi32_si128(*(const uint32_t *)a);
+  int val;
+  memcpy(&val, a, sizeof(val));
+  return _mm_cvtsi32_si128(val);
 }
 
 static INLINE __m128i xx_loadl_64(const void *a) {
@@ -44,7 +47,8 @@
 }
 
 static INLINE void xx_storel_32(void *const a, const __m128i v) {
-  *(uint32_t *)a = _mm_cvtsi128_si32(v);
+  int val = _mm_cvtsi128_si32(v);
+  memcpy(a, &val, sizeof(val));
 }
 
 static INLINE void xx_storel_64(void *const a, const __m128i v) {