From 0f28309f0700c7325f0bce709e6ccfae000832ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Barnab=C3=A1s=20P=C5=91cze?= Date: Wed, 16 Mar 2022 10:51:58 +0100 Subject: [PATCH] audioconvert: fix sse2 deinterleave_32 Fixes #2213 --- spa/plugins/audioconvert/fmt-ops-sse2.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/spa/plugins/audioconvert/fmt-ops-sse2.c b/spa/plugins/audioconvert/fmt-ops-sse2.c index 3f3653e80..a51352653 100644 --- a/spa/plugins/audioconvert/fmt-ops-sse2.c +++ b/spa/plugins/audioconvert/fmt-ops-sse2.c @@ -769,10 +769,10 @@ conv_deinterleave_32_4s_sse2(void *data, void * SPA_RESTRICT dst[], const void * unrolled = 0; for(n = 0; n < unrolled; n += 4) { - out[0] = _mm_load_ps(&s[0]); - out[1] = _mm_load_ps(&s[4]); - out[2] = _mm_load_ps(&s[8]); - out[3] = _mm_load_ps(&s[12]); + out[0] = _mm_load_ps(&s[0 * n_channels]); + out[1] = _mm_load_ps(&s[1 * n_channels]); + out[2] = _mm_load_ps(&s[2 * n_channels]); + out[3] = _mm_load_ps(&s[3 * n_channels]); _MM_TRANSPOSE4_PS(out[0], out[1], out[2], out[3]); @@ -780,14 +780,14 @@ conv_deinterleave_32_4s_sse2(void *data, void * SPA_RESTRICT dst[], const void * _mm_store_ps(&d1[n], out[1]); _mm_store_ps(&d2[n], out[2]); _mm_store_ps(&d3[n], out[3]); - s += 16 * n_channels; + s += 4 * n_channels; } for(; n < n_samples; n++) { d0[n] = s[0]; d1[n] = s[1]; d2[n] = s[2]; d3[n] = s[3]; - s += 4 * n_channels; + s += n_channels; } }