shithub: opus

Download patch

ref: be67ea8c7ca22d4803b3828c183af1d47a3932cb
parent: 57ddf37c83eff80a5064c38fde57b6cc6ad1e739
author: Jean-Marc Valin <jmvalin@jmvalin.ca>
date: Mon Jun 27 19:27:48 EDT 2022

Fixes wrap-around in silk_inner_prod16_sse4_1()

Thanks Tim

--- a/silk/fixed/x86/vector_ops_FIX_sse4_1.c
+++ b/silk/fixed/x86/vector_ops_FIX_sse4_1.c
@@ -36,6 +36,7 @@
 
 #include "SigProc_FIX.h"
 #include "pitch.h"
+#include "celt/x86/x86cpu.h"
 
 opus_int64 silk_inner_prod16_sse4_1(
     const opus_int16            *inVec1,            /*    I input vector 1                                              */
@@ -78,7 +79,7 @@
     _mm_storel_epi64( (__m128i *)&sum, acc1 );
 
     for( ; i < len; i++ ) {
-        sum = silk_SMLABB( sum, inVec1[ i ], inVec2[ i ] );
+        sum = silk_SMLALBB( sum, inVec1[ i ], inVec2[ i ] );
     }
 
 #ifdef OPUS_CHECK_ASM