summaryrefslogtreecommitdiff
path: root/vp8/encoder
diff options
context:
space:
mode:
authorJohann <johannkoenig@google.com>2019-04-29 14:38:27 -0700
committerJohann <johannkoenig@google.com>2019-04-29 14:38:58 -0700
commit1e01d13fb8e7fb904bdbc9fe461a7c86d2b57427 (patch)
tree7a2a02a57a69e0831359cfedd7d707afb3347d49 /vp8/encoder
parentdff4d376eaff3460e930711807ce865ff76aff3a (diff)
downloadlibvpx-1e01d13fb8e7fb904bdbc9fe461a7c86d2b57427.tar
libvpx-1e01d13fb8e7fb904bdbc9fe461a7c86d2b57427.tar.gz
libvpx-1e01d13fb8e7fb904bdbc9fe461a7c86d2b57427.tar.bz2
libvpx-1e01d13fb8e7fb904bdbc9fe461a7c86d2b57427.zip
vp8 quantize: silence conversion warning
clang 7 integer sanitizer warns about storing any int16_t value where the high bit is 1. Treated as an int, such number would be positive. Treated as an int16_t, it is negative. BUG=webm:1615 Change-Id: Idf655cd92d26b7c1180910159be3f64164577eca
Diffstat (limited to 'vp8/encoder')
-rw-r--r--vp8/encoder/x86/quantize_sse4.c24
1 files changed, 13 insertions, 11 deletions
diff --git a/vp8/encoder/x86/quantize_sse4.c b/vp8/encoder/x86/quantize_sse4.c
index 6f2c16349..5b7eec02e 100644
--- a/vp8/encoder/x86/quantize_sse4.c
+++ b/vp8/encoder/x86/quantize_sse4.c
@@ -14,17 +14,19 @@
#include "vp8/encoder/block.h"
#include "vp8/common/entropy.h" /* vp8_default_inv_zig_zag */
-#define SELECT_EOB(i, z, x, y, q) \
- do { \
- short boost = *zbin_boost_ptr; \
- short x_z = _mm_extract_epi16(x, z); \
- short y_z = _mm_extract_epi16(y, z); \
- int cmp = (x_z < boost) | (y_z == 0); \
- zbin_boost_ptr++; \
- if (cmp) break; \
- q = _mm_insert_epi16(q, y_z, z); \
- eob = i; \
- zbin_boost_ptr = b->zrun_zbin_boost; \
+#define SELECT_EOB(i, z, x, y, q) \
+ do { \
+ short boost = *zbin_boost_ptr; \
+ /* Technically _mm_extract_epi16() returns an int: */ \
+ /* https://bugs.llvm.org/show_bug.cgi?id=41657 */ \
+ short x_z = (short)_mm_extract_epi16(x, z); \
+ short y_z = (short)_mm_extract_epi16(y, z); \
+ int cmp = (x_z < boost) | (y_z == 0); \
+ zbin_boost_ptr++; \
+ if (cmp) break; \
+ q = _mm_insert_epi16(q, y_z, z); \
+ eob = i; \
+ zbin_boost_ptr = b->zrun_zbin_boost; \
} while (0)
void vp8_regular_quantize_b_sse4_1(BLOCK *b, BLOCKD *d) {