aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Tsou <tom@tsou.cc>2014-05-01 02:15:51 -0400
committerThomas Tsou <tom@tsou.cc>2014-05-08 13:57:36 -0400
commit187225cf337244ad7061745b7834a027e44855be (patch)
tree4e36b17349328cdd6c72b6fe6a8f784b9681bd98
parentccb73e15f312a9a4c8ee5c0f0371efb16f9a543a (diff)
Transceiver52M: Fix SSE convolution shuffle register
An errant shuffle register value used in complex-complex convolution causes distorted correlation peak-to-average values for certain TSC values. The error effect varies for different TSC sequences with the most noticeable effect of degraded detection on TSC 1 and no effect on TSC 7. Signed-off-by: Thomas Tsou <tom@tsou.cc>
-rw-r--r--Transceiver52M/x86/convolve.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/Transceiver52M/x86/convolve.c b/Transceiver52M/x86/convolve.c
index ed85d97..1c0a91c 100644
--- a/Transceiver52M/x86/convolve.c
+++ b/Transceiver52M/x86/convolve.c
@@ -460,7 +460,7 @@ static void sse_conv_cmplx_8n(float *x, float *h, float *y, int h_len, int len)
m4 = _mm_shuffle_ps(m0, m1, _MM_SHUFFLE(0, 2, 0, 2));
m5 = _mm_shuffle_ps(m0, m1, _MM_SHUFFLE(1, 3, 1, 3));
- m6 = _mm_shuffle_ps(m2, m2, _MM_SHUFFLE(0, 2, 0, 2));
+ m6 = _mm_shuffle_ps(m2, m3, _MM_SHUFFLE(0, 2, 0, 2));
m7 = _mm_shuffle_ps(m2, m3, _MM_SHUFFLE(1, 3, 1, 3));
/* Load (unaligned) input data */