synonyms.h: s/_mm_loadu_si64/_mm_loadl_epi64/
_mm_loadu_si64 is defined in immintrin.h. Use _mm_loadl_epi64() instead
as the includes were changed in:
6f8189bb64 x86/synonyms.h: include emmintrin.h not immintrin.h
Fixes Visual Studio build errors:
aom_dsp/x86/synonyms.h(53,43): warning C4013: '_mm_loadu_si64'
undefined; assuming extern returning int
aom_dsp/x86/synonyms.h(53,43): warning C4024: '_mm_unpacklo_epi64':
different types for formal and actual parameter 1
aom_dsp/x86/synonyms.h(53,63): warning C4024: '_mm_unpacklo_epi64':
different types for formal and actual parameter 2
Change-Id: I655d0f968889d91815b6afbca869740d091032f6
diff --git a/aom_dsp/x86/synonyms.h b/aom_dsp/x86/synonyms.h
index 0914b98..ae889ad 100644
--- a/aom_dsp/x86/synonyms.h
+++ b/aom_dsp/x86/synonyms.h
@@ -50,7 +50,8 @@
// Since directly loading as `int64_t`s and using _mm_set_epi64 may violate
// the strict aliasing rule, this takes a different approach
static INLINE __m128i xx_loadu_2x64(const void *hi, const void *lo) {
- return _mm_unpacklo_epi64(_mm_loadu_si64(lo), _mm_loadu_si64(hi));
+ return _mm_unpacklo_epi64(_mm_loadl_epi64((const __m128i *)lo),
+ _mm_loadl_epi64((const __m128i *)hi));
}
static INLINE void xx_storel_32(void *const a, const __m128i v) {