Fix -fsanitize=integer warnings in v64_intrinsics_c.h
Change-Id: I8134c0ac4bd18478b266a0058e00bc6b1e6f8e9e
diff --git a/aom_dsp/simd/v64_intrinsics_c.h b/aom_dsp/simd/v64_intrinsics_c.h
index a6e8e33..525070a 100644
--- a/aom_dsp/simd/v64_intrinsics_c.h
+++ b/aom_dsp/simd/v64_intrinsics_c.h
@@ -191,8 +191,8 @@
SIMD_INLINE c_v64 c_v64_add_32(c_v64 a, c_v64 b) {
c_v64 t;
- t.u32[0] = a.u32[0] + b.u32[0];
- t.u32[1] = a.u32[1] + b.u32[1];
+ t.u32[0] = (uint32_t)((uint64_t)a.u32[0] + b.u32[0]);
+ t.u32[1] = (uint32_t)((uint64_t)a.u32[1] + b.u32[1]);
return t;
}
@@ -207,9 +207,7 @@
c_v64 t;
int c;
for (c = 0; c < 8; c++)
- t.u8[c] = (int32_t)((uint32_t)a.u8[c] - (uint32_t)b.u8[c]) < 0
- ? 0
- : a.u8[c] - b.u8[c];
+ t.u8[c] = (int32_t)a.u8[c] - (int32_t)b.u8[c] < 0 ? 0 : a.u8[c] - b.u8[c];
return t;
}
@@ -244,8 +242,8 @@
SIMD_INLINE c_v64 c_v64_sub_32(c_v64 a, c_v64 b) {
c_v64 t;
- t.u32[0] = a.u32[0] - b.u32[0];
- t.u32[1] = a.u32[1] - b.u32[1];
+ t.u32[0] = (uint32_t)((int64_t)a.u32[0] - b.u32[0]);
+ t.u32[1] = (uint32_t)((int64_t)a.u32[1] - b.u32[1]);
return t;
}