From f657d525681f7b320d73c10b4221b748411add58 Mon Sep 17 00:00:00 2001 From: killua-killua Date: Sun, 3 Jan 2021 15:36:27 +0800 Subject: [PATCH] Update arm_shift_q15.c type promotion before __SSAT --- Source/BasicMathFunctions/arm_shift_q15.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/Source/BasicMathFunctions/arm_shift_q15.c b/Source/BasicMathFunctions/arm_shift_q15.c index c3449de7..4a69aa20 100644 --- a/Source/BasicMathFunctions/arm_shift_q15.c +++ b/Source/BasicMathFunctions/arm_shift_q15.c @@ -131,11 +131,11 @@ void arm_shift_q15( /* Shift the inputs and then store the results in the destination buffer. */ #ifndef ARM_MATH_BIG_ENDIAN - write_q15x2_ia (&pDst, __PKHBT(__SSAT((in1 << shiftBits), 16), - __SSAT((in2 << shiftBits), 16), 16)); + write_q15x2_ia (&pDst, __PKHBT(__SSAT(((q31_t) in1 << shiftBits), 16), + __SSAT(((q31_t) in2 << shiftBits), 16), 16)); #else - write_q15x2_ia (&pDst, __PKHBT(__SSAT((in2 << shiftBits), 16), - __SSAT((in1 << shiftBits), 16), 16)); + write_q15x2_ia (&pDst, __PKHBT(__SSAT(((q31_t) in2 << shiftBits), 16), + __SSAT(((q31_t) in1 << shiftBits), 16), 16)); #endif /* #ifndef ARM_MATH_BIG_ENDIAN */ /* read 2 samples from source */ @@ -143,11 +143,11 @@ void arm_shift_q15( in2 = *pSrc++; #ifndef ARM_MATH_BIG_ENDIAN - write_q15x2_ia (&pDst, __PKHBT(__SSAT((in1 << shiftBits), 16), - __SSAT((in2 << shiftBits), 16), 16)); + write_q15x2_ia (&pDst, __PKHBT(__SSAT(((q31_t) in1 << shiftBits), 16), + __SSAT(((q31_t) in2 << shiftBits), 16), 16)); #else - write_q15x2_ia (&pDst, __PKHBT(__SSAT((in2 << shiftBits), 16), - __SSAT((in1 << shiftBits), 16), 16)); + write_q15x2_ia (&pDst, __PKHBT(__SSAT(((q31_t) in2 << shiftBits), 16), + __SSAT(((q31_t) in1 << shiftBits), 16), 16)); #endif /* #ifndef ARM_MATH_BIG_ENDIAN */ #else