aom_dsp/simd/v128_intrinsics_x86: fix int. sanitizer warnings
implicit conversion from type 'uint64_t' (aka 'unsigned long') of value
3436957635 (64-bit, unsigned) to type 'int' changed the value to
-858009661 (32-bit, signed)
BUG=aomedia:2357
Change-Id: I04ac7c9073343a69ebbb7c3f499624453c62d575
diff --git a/aom_dsp/simd/v128_intrinsics_x86.h b/aom_dsp/simd/v128_intrinsics_x86.h
index 6c7241f..fc3e5a2 100644
--- a/aom_dsp/simd/v128_intrinsics_x86.h
+++ b/aom_dsp/simd/v128_intrinsics_x86.h
@@ -89,7 +89,8 @@
SIMD_INLINE v128 v128_dup_64(uint64_t x) {
// _mm_set_pi64x and _mm_cvtsi64x_si64 missing in some compilers
- return _mm_set_epi32(x >> 32, (uint32_t)x, x >> 32, (uint32_t)x);
+ return _mm_set_epi32((uint32_t)(x >> 32), (uint32_t)x, (uint32_t)(x >> 32),
+ (uint32_t)x);
}
SIMD_INLINE v128 v128_add_8(v128 a, v128 b) { return _mm_add_epi8(a, b); }
@@ -538,7 +539,7 @@
}
SIMD_INLINE v128 v128_shr_u8(v128 a, unsigned int c) {
- return _mm_and_si128(_mm_set1_epi8(0xff >> c),
+ return _mm_and_si128(_mm_set1_epi8((char)(0xff >> c)),
_mm_srl_epi16(a, _mm_cvtsi32_si128(c)));
}