diff options
author | Thomas Tsou <tom@tsou.cc> | 2014-05-01 02:15:51 -0400 |
---|---|---|
committer | Thomas Tsou <tom@tsou.cc> | 2014-05-08 13:57:36 -0400 |
commit | 187225cf337244ad7061745b7834a027e44855be (patch) | |
tree | 4e36b17349328cdd6c72b6fe6a8f784b9681bd98 /Transceiver52M | |
parent | ccb73e15f312a9a4c8ee5c0f0371efb16f9a543a (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>
Diffstat (limited to 'Transceiver52M')
-rw-r--r-- | Transceiver52M/x86/convolve.c | 2 |
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 */ |