summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Zern <jzern@google.com>2023-03-07 23:40:10 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2023-03-07 23:40:10 +0000
commit0f17aa986a846032ec326e591ab83c0304470011 (patch)
tree5b97093fde04fd7e344e51275f889a04b8eaedd2
parentccdcba6dc9125cdb39a50cb7032f51886b28dccd (diff)
parent817248e1be1548af10f3d4f0922e01e372d10cea (diff)
downloadlibvpx-0f17aa986a846032ec326e591ab83c0304470011.tar
libvpx-0f17aa986a846032ec326e591ab83c0304470011.tar.gz
libvpx-0f17aa986a846032ec326e591ab83c0304470011.tar.bz2
libvpx-0f17aa986a846032ec326e591ab83c0304470011.zip
Merge "[SSE4_1] Fix overflow in highbd temporal_filter" into main
-rw-r--r--vp9/encoder/x86/highbd_temporal_filter_sse4.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/vp9/encoder/x86/highbd_temporal_filter_sse4.c b/vp9/encoder/x86/highbd_temporal_filter_sse4.c
index a7f5117cf..bcbf6d77e 100644
--- a/vp9/encoder/x86/highbd_temporal_filter_sse4.c
+++ b/vp9/encoder/x86/highbd_temporal_filter_sse4.c
@@ -141,11 +141,12 @@ static INLINE void highbd_accumulate_and_store_8(const __m128i sum_first_u32,
count_u16 = _mm_adds_epu16(count_u16, sum_u16);
_mm_storeu_si128((__m128i *)count, count_u16);
- pred_u16 = _mm_mullo_epi16(sum_u16, pred_u16);
-
pred_0_u32 = _mm_cvtepu16_epi32(pred_u16);
pred_1_u32 = _mm_unpackhi_epi16(pred_u16, zero);
+ pred_0_u32 = _mm_mullo_epi32(sum_first_u32, pred_0_u32);
+ pred_1_u32 = _mm_mullo_epi32(sum_second_u32, pred_1_u32);
+
accum_0_u32 = _mm_loadu_si128((const __m128i *)accumulator);
accum_1_u32 = _mm_loadu_si128((const __m128i *)(accumulator + 4));