mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-11-02 09:01:50 -05:00
fmt-ops: small optimization
This commit is contained in:
parent
238be61364
commit
2a252abf50
1 changed files with 6 additions and 5 deletions
|
|
@ -27,7 +27,7 @@
|
||||||
|
|
||||||
#include <spa/utils/defs.h>
|
#include <spa/utils/defs.h>
|
||||||
|
|
||||||
#include <xmmintrin.h>
|
#include <emmintrin.h>
|
||||||
|
|
||||||
static void
|
static void
|
||||||
conv_s16_to_f32d_1_sse2(void *data, int n_dst, void *dst[n_dst], const void *src, int n_samples)
|
conv_s16_to_f32d_1_sse2(void *data, int n_dst, void *dst[n_dst], const void *src, int n_samples)
|
||||||
|
|
@ -43,10 +43,11 @@ conv_s16_to_f32d_1_sse2(void *data, int n_dst, void *dst[n_dst], const void *src
|
||||||
n_samples = n_samples & 3;
|
n_samples = n_samples & 3;
|
||||||
|
|
||||||
for(; unrolled--; n += 4) {
|
for(; unrolled--; n += 4) {
|
||||||
in = _mm_setr_epi32(s[0*n_dst],
|
in = _mm_insert_epi16(in, s[0*n_dst], 1);
|
||||||
s[1*n_dst],
|
in = _mm_insert_epi16(in, s[1*n_dst], 3);
|
||||||
s[2*n_dst],
|
in = _mm_insert_epi16(in, s[2*n_dst], 5);
|
||||||
s[3*n_dst]);
|
in = _mm_insert_epi16(in, s[3*n_dst], 7);
|
||||||
|
in = _mm_srai_epi32(in, 16);
|
||||||
out = _mm_cvtepi32_ps(in);
|
out = _mm_cvtepi32_ps(in);
|
||||||
out = _mm_mul_ps(out, factor);
|
out = _mm_mul_ps(out, factor);
|
||||||
_mm_storeu_ps(&d0[n], out);
|
_mm_storeu_ps(&d0[n], out);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue