aboutsummaryrefslogtreecommitdiffstats
path: root/Alc/mixer_sse41.c
diff options
context:
space:
mode:
authorChris Robinson <[email protected]>2015-10-11 05:31:14 -0700
committerChris Robinson <[email protected]>2015-10-11 05:31:14 -0700
commit75d8e5989f737326b216b46e0a5184501fc8315f (patch)
treebe50eda4ead899aea6dbae8d5ae0ba66b13bb5c9 /Alc/mixer_sse41.c
parent0149dded3484633e4c7afe9e136ef1c232cbd623 (diff)
Slightly improve the FIR4 SSE resamplers
Diffstat (limited to 'Alc/mixer_sse41.c')
-rw-r--r--Alc/mixer_sse41.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/Alc/mixer_sse41.c b/Alc/mixer_sse41.c
index b9ef608a..90438e13 100644
--- a/Alc/mixer_sse41.c
+++ b/Alc/mixer_sse41.c
@@ -114,10 +114,9 @@ const ALfloat *Resample_fir4_32_SSE41(const ALfloat *src, ALuint frac, ALuint in
k1 = _mm_mul_ps(k1, val1);
k2 = _mm_mul_ps(k2, val2);
k3 = _mm_mul_ps(k3, val3);
- _MM_TRANSPOSE4_PS(k0, k1, k2, k3);
- out = _mm_add_ps(k0, k1);
- out = _mm_add_ps(out, k2);
- out = _mm_add_ps(out, k3);
+ k0 = _mm_hadd_ps(k0, k1);
+ k2 = _mm_hadd_ps(k2, k3);
+ out = _mm_hadd_ps(k0, k2);
_mm_store_ps(&dst[i], out);