diff options
author | James Zern <jzern@google.com> | 2023-03-07 23:40:10 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2023-03-07 23:40:10 +0000 |
commit | 0f17aa986a846032ec326e591ab83c0304470011 (patch) | |
tree | 5b97093fde04fd7e344e51275f889a04b8eaedd2 | |
parent | ccdcba6dc9125cdb39a50cb7032f51886b28dccd (diff) | |
parent | 817248e1be1548af10f3d4f0922e01e372d10cea (diff) | |
download | libvpx-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.c | 5 |
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)); |