summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJean-Marc Valin <jmvalin@jmvalin.ca>2022-06-27 23:27:48 -0400
committerJean-Marc Valin <jmvalin@jmvalin.ca>2022-06-27 23:27:48 -0400
commitbe67ea8c7ca22d4803b3828c183af1d47a3932cb (patch)
tree78503b1b09f1518a73f980f85e40a5b1d6f13258
parent57ddf37c83eff80a5064c38fde57b6cc6ad1e739 (diff)
downloadopus-be67ea8c7ca22d4803b3828c183af1d47a3932cb.tar.gz
Fixes wrap-around in silk_inner_prod16_sse4_1()
Thanks Tim
-rw-r--r--silk/fixed/x86/vector_ops_FIX_sse4_1.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/silk/fixed/x86/vector_ops_FIX_sse4_1.c b/silk/fixed/x86/vector_ops_FIX_sse4_1.c
index 0cfb08d9..a46289bb 100644
--- 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 @@ opus_int64 silk_inner_prod16_sse4_1(
_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