Revert "Avoid UB in xx_loadl/storel_32 helper functions" This reverts commit be0aa4ad0b1ae324d26aeec73e806ae85c16441c. Building with gcc version 6.3.0, the intrinsic used is compiled as "movaps", which read and write 128 bits. BUG=aomedia:1089 Change-Id: I5df011465013297de4fbb808bae2fd3ce30589d1
diff --git a/aom_dsp/x86/synonyms.h b/aom_dsp/x86/synonyms.h index 4c1670f..cd049a4 100644 --- a/aom_dsp/x86/synonyms.h +++ b/aom_dsp/x86/synonyms.h
@@ -27,7 +27,7 @@ // 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_castps_si128(_mm_load_ss((const float *)a)); + return _mm_cvtsi32_si128(*(const uint32_t *)a); } static INLINE __m128i xx_loadl_64(const void *a) { @@ -43,7 +43,7 @@ } static INLINE void xx_storel_32(void *const a, const __m128i v) { - _mm_store_ss((float *)a, _mm_castsi128_ps(v)); + *(uint32_t *)a = _mm_cvtsi128_si32(v); } static INLINE void xx_storel_64(void *const a, const __m128i v) {