summaryrefslogtreecommitdiff
path: root/vpx_dsp/x86
diff options
context:
space:
mode:
Diffstat (limited to 'vpx_dsp/x86')
-rw-r--r--vpx_dsp/x86/mem_sse2.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/vpx_dsp/x86/mem_sse2.h b/vpx_dsp/x86/mem_sse2.h
index 5209a0628..258ab38e6 100644
--- a/vpx_dsp/x86/mem_sse2.h
+++ b/vpx_dsp/x86/mem_sse2.h
@@ -26,6 +26,17 @@ static INLINE uint32_t loadu_uint32(const void *src) {
return v;
}
+static INLINE __m128i load_unaligned_u32(const void *a) {
+ uint32_t val;
+ memcpy(&val, a, sizeof(val));
+ return _mm_cvtsi32_si128(val);
+}
+
+static INLINE void store_unaligned_u32(void *const a, const __m128i v) {
+ const uint32_t val = _mm_cvtsi128_si32(v);
+ memcpy(a, &val, sizeof(val));
+}
+
#define mm_storelu(dst, v) memcpy((dst), (const char *)&(v), 8)
#define mm_storehu(dst, v) memcpy((dst), (const char *)&(v) + 8, 8)