1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
ix!();
use crate::{
Reverb,
REVERB_TAP_BITS,
};
impl Reverb {
#[inline] pub fn do_post_tap(&mut self,
tap: usize,
fb4: __m128,
l: &mut __m128,
r: &mut __m128)
{
unsafe {
let ot: __m128 = _mm_load_ps(&self.out_tap[tap]);
let dfb: __m128 = _mm_load_ps(&self.delay_fb[tap]);
let a: __m128 = _mm_mul_ps(dfb, _mm_add_ps(fb4, ot));
_mm_store_ps(&mut self.delay[( self.delay_pos << REVERB_TAP_BITS) + tap as usize], a);
*l = _mm_add_ps(*l, _mm_mul_ps(ot, _mm_load_ps(&
self.delay_pan_l[tap])));
*r = _mm_add_ps(*r, _mm_mul_ps(ot, _mm_load_ps(&
self.delay_pan_r[tap])));
}
}
}