From 187225cf337244ad7061745b7834a027e44855be Mon Sep 17 00:00:00 2001 From: Thomas Tsou Date: Thu, 1 May 2014 02:15:51 -0400 Subject: 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 --- Transceiver52M/x86/convolve.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 */ -- cgit v1.2.3