File tree 1 file changed +6
-6
lines changed 1 file changed +6
-6
lines changed Original file line number Diff line number Diff line change 1
- use crate :: silk:: macros:: silk_CLZ32;
1
+ use crate :: silk:: macros:: { silk_CLZ32, silk_SMULBB } ;
2
2
use crate :: silk:: SigProc_FIX :: silk_max_32;
3
3
4
4
fn silk_sum_sqr_shift_inner ( mut nrg : i32 , shft : i32 , x : & [ i16 ] ) -> i32 {
5
5
let len = x. len ( ) ;
6
6
7
7
let mut i = 0 ;
8
8
while i < len - 1 {
9
- let nrg_tmp = x[ i] as i32 * x[ i] as i32 ;
10
- let nrg_tmp = nrg_tmp. wrapping_add ( x[ i + 1 ] as i32 * x[ i + 1 ] as i32 ) ;
11
- nrg = nrg. wrapping_add ( nrg_tmp >> shft) ;
9
+ let nrg_tmp = silk_SMULBB ( x[ i] as i32 , x[ i] as i32 ) as u32 ;
10
+ let nrg_tmp = nrg_tmp. wrapping_add ( silk_SMULBB ( x[ i + 1 ] as i32 , x[ i + 1 ] as i32 ) as u32 ) ;
11
+ nrg = nrg. wrapping_add ( ( nrg_tmp >> shft) as i32 ) ;
12
12
i += 2 ;
13
13
}
14
14
if i < len {
15
15
/* One sample left to process */
16
- let nrg_tmp = x[ i] as i32 * x[ i] as i32 ;
17
- nrg = nrg. wrapping_add ( nrg_tmp >> shft) ;
16
+ let nrg_tmp = silk_SMULBB ( x[ i] as i32 , x[ i] as i32 ) as u32 ;
17
+ nrg = nrg. wrapping_add ( ( nrg_tmp >> shft) as i32 ) ;
18
18
}
19
19
20
20
debug_assert ! ( nrg >= 0 ) ;
You can’t perform that action at this time.
0 commit comments