v{64,128,256}_intrinsics: fix some implicit conv warnings
w/clang -fsanitize=integer quiets warnings of the form:
implicit conversion from type 'int' of value -80219265 (32-bit, signed)
to type 'uint32_t' (aka 'unsigned int') changed the value to 4214748031
(32-bit, unsigned)
implicit conversion from type 'unsigned char' of value 165 (8-bit,
unsigned) to type 'char' changed the value to -91 (8-bit, signed)
Bug: aomedia:3136
Bug: b/229626362
Change-Id: Ib2005949c62cead216c91ceece5a8408404cc735
diff --git a/aom_dsp/simd/v128_intrinsics_x86.h b/aom_dsp/simd/v128_intrinsics_x86.h
index 62a0ee8..32b51c9 100644
--- a/aom_dsp/simd/v128_intrinsics_x86.h
+++ b/aom_dsp/simd/v128_intrinsics_x86.h
@@ -304,7 +304,7 @@
v128 output;
unsigned char *input = (unsigned char *)&x;
unsigned char *index = (unsigned char *)&pattern;
- char *selected = (char *)&output;
+ unsigned char *selected = (unsigned char *)&output;
int counter;
for (counter = 0; counter < 16; counter++) {
diff --git a/aom_dsp/simd/v256_intrinsics_c.h b/aom_dsp/simd/v256_intrinsics_c.h
index 47003af..66cfda3 100644
--- a/aom_dsp/simd/v256_intrinsics_c.h
+++ b/aom_dsp/simd/v256_intrinsics_c.h
@@ -380,7 +380,7 @@
}
SIMD_INLINE uint32_t c_v256_movemask_8(c_v256 a) {
- return ((a.s8[31] < 0) << 31) | ((a.s8[30] < 0) << 30) |
+ return ((uint32_t)(a.s8[31] < 0) << 31) | ((a.s8[30] < 0) << 30) |
((a.s8[29] < 0) << 29) | ((a.s8[28] < 0) << 28) |
((a.s8[27] < 0) << 27) | ((a.s8[26] < 0) << 26) |
((a.s8[25] < 0) << 25) | ((a.s8[24] < 0) << 24) |
diff --git a/aom_dsp/simd/v256_intrinsics_x86.h b/aom_dsp/simd/v256_intrinsics_x86.h
index 45b82ee..894ddee 100644
--- a/aom_dsp/simd/v256_intrinsics_x86.h
+++ b/aom_dsp/simd/v256_intrinsics_x86.h
@@ -545,7 +545,9 @@
SIMD_INLINE v256 v256_min_s8(v256 a, v256 b) { return _mm256_min_epi8(a, b); }
-SIMD_INLINE uint32_t v256_movemask_8(v256 a) { return _mm256_movemask_epi8(a); }
+SIMD_INLINE uint32_t v256_movemask_8(v256 a) {
+ return (uint32_t)_mm256_movemask_epi8(a);
+}
SIMD_INLINE v256 v256_blend_8(v256 a, v256 b, v256 c) {
return _mm256_blendv_epi8(a, b, c);
diff --git a/aom_dsp/simd/v64_intrinsics_x86.h b/aom_dsp/simd/v64_intrinsics_x86.h
index 308e917..f1500b8 100644
--- a/aom_dsp/simd/v64_intrinsics_x86.h
+++ b/aom_dsp/simd/v64_intrinsics_x86.h
@@ -178,10 +178,10 @@
__m128i t = _mm_unpacklo_epi64(b, a);
return _mm_packus_epi32(t, t);
#else
- int32_t ah = v64_high_u32(a);
- int32_t al = v64_low_u32(a);
- int32_t bh = v64_high_u32(b);
- int32_t bl = v64_low_u32(b);
+ int32_t ah = v64_high_s32(a);
+ int32_t al = v64_low_s32(a);
+ int32_t bh = v64_high_s32(b);
+ int32_t bl = v64_low_s32(b);
return v64_from_16(ah > 65535 ? 65535 : ah < 0 ? 0 : ah,
al > 65535 ? 65535 : al < 0 ? 0 : al,
bh > 65535 ? 65535 : bh < 0 ? 0 : bh,
@@ -279,7 +279,7 @@
v64 output;
unsigned char *input = (unsigned char *)&x;
unsigned char *index = (unsigned char *)&pattern;
- char *selected = (char *)&output;
+ unsigned char *selected = (unsigned char *)&output;
int counter;
for (counter = 0; counter < 8; counter++) {