| Index: silk/A2NLSF.c
|
| diff --git a/silk/A2NLSF.c b/silk/A2NLSF.c
|
| index 74b1b95d6f3eba9ae49e77af140a1887777d9351..b6e9e5ffccaa05995dfdbfe600166865d899013e 100644
|
| --- a/silk/A2NLSF.c
|
| +++ b/silk/A2NLSF.c
|
| @@ -71,8 +71,23 @@ static OPUS_INLINE opus_int32 silk_A2NLSF_eval_poly( /* return the polynomial ev
|
|
|
| y32 = p[ dd ]; /* Q16 */
|
| x_Q16 = silk_LSHIFT( x, 4 );
|
| - for( n = dd - 1; n >= 0; n-- ) {
|
| - y32 = silk_SMLAWW( p[ n ], y32, x_Q16 ); /* Q16 */
|
| +
|
| + if ( opus_likely( 8 == dd ) )
|
| + {
|
| + y32 = silk_SMLAWW( p[ 7 ], y32, x_Q16 );
|
| + y32 = silk_SMLAWW( p[ 6 ], y32, x_Q16 );
|
| + y32 = silk_SMLAWW( p[ 5 ], y32, x_Q16 );
|
| + y32 = silk_SMLAWW( p[ 4 ], y32, x_Q16 );
|
| + y32 = silk_SMLAWW( p[ 3 ], y32, x_Q16 );
|
| + y32 = silk_SMLAWW( p[ 2 ], y32, x_Q16 );
|
| + y32 = silk_SMLAWW( p[ 1 ], y32, x_Q16 );
|
| + y32 = silk_SMLAWW( p[ 0 ], y32, x_Q16 );
|
| + }
|
| + else
|
| + {
|
| + for( n = dd - 1; n >= 0; n-- ) {
|
| + y32 = silk_SMLAWW( p[ n ], y32, x_Q16 ); /* Q16 */
|
| + }
|
| }
|
| return y32;
|
| }
|
|
|