mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2026-04-25 06:46:40 -04:00
resample: don't use hadd, it is slow
This commit is contained in:
parent
a0518e28bb
commit
dfeca5806f
1 changed files with 4 additions and 4 deletions
|
|
@ -31,8 +31,8 @@ static inline void inner_product_avx2(float *d, const float * SPA_RESTRICT s,
|
||||||
sx[1] = _mm_fmadd_ps(tx, _mm_load_ps(taps + i + 4), sx[1]);
|
sx[1] = _mm_fmadd_ps(tx, _mm_load_ps(taps + i + 4), sx[1]);
|
||||||
}
|
}
|
||||||
sx[0] = _mm_add_ps(sx[0], sx[1]);
|
sx[0] = _mm_add_ps(sx[0], sx[1]);
|
||||||
sx[0] = _mm_hadd_ps(sx[0], sx[0]);
|
sx[0] = _mm_add_ps(sx[0], _mm_movehl_ps(sx[0], sx[0]));
|
||||||
sx[0] = _mm_hadd_ps(sx[0], sx[0]);
|
sx[0] = _mm_add_ss(sx[0], _mm_movehdup_ps(sx[0]));
|
||||||
_mm_store_ss(d, sx[0]);
|
_mm_store_ss(d, sx[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -65,8 +65,8 @@ static inline void inner_product_ip_avx2(float *d, const float * SPA_RESTRICT s,
|
||||||
}
|
}
|
||||||
sx[1] = _mm_mul_ps(_mm_sub_ps(sx[1], sx[0]), _mm_load1_ps(&x));
|
sx[1] = _mm_mul_ps(_mm_sub_ps(sx[1], sx[0]), _mm_load1_ps(&x));
|
||||||
sx[0] = _mm_add_ps(sx[0], sx[1]);
|
sx[0] = _mm_add_ps(sx[0], sx[1]);
|
||||||
sx[0] = _mm_hadd_ps(sx[0], sx[0]);
|
sx[0] = _mm_add_ps(sx[0], _mm_movehl_ps(sx[0], sx[0]));
|
||||||
sx[0] = _mm_hadd_ps(sx[0], sx[0]);
|
sx[0] = _mm_add_ss(sx[0], _mm_movehdup_ps(sx[0]));
|
||||||
_mm_store_ss(d, sx[0]);
|
_mm_store_ss(d, sx[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue