From 6b9567e9efe3e42ff320a730003b56e02095713b Mon Sep 17 00:00:00 2001 From: KubaPro010 Date: Thu, 27 Mar 2025 21:40:59 +0100 Subject: [PATCH] bro --- src/fm95.c | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/src/fm95.c b/src/fm95.c index c0d502f..4d03abf 100644 --- a/src/fm95.c +++ b/src/fm95.c @@ -49,23 +49,18 @@ static volatile sig_atomic_t to_run = 1; void uninterleave(const float *input, float *left, float *right, size_t num_samples) { #if USE_NEON size_t i = 0; - - for (; i + 7 < num_samples; i += 8) { - float32x4x2_t interleaved1 = vld2q_f32(&input[i * 2]); - float32x4x2_t interleaved2 = vld2q_f32(&input[i * 2 + 8]); - - vst1q_f32(&left[i], interleaved1.val[0]); - vst1q_f32(&right[i], interleaved1.val[1]); - vst1q_f32(&left[i + 4], interleaved2.val[0]); - vst1q_f32(&right[i + 4], interleaved2.val[1]); + for (; i + 4 <= num_samples; i += 4) { + float32x4x2_t interleaved = vld2q_f32(input + i * 2); + vst1q_f32(left + i, interleaved.val[0]); + vst1q_f32(right + i, interleaved.val[1]); } - for (; i < num_samples; i += 2) { - left[i / 2] = input[i]; - right[i / 2] = input[i + 1]; + for (; i < num_samples / 2; i++) { + left[i] = input[i * 2]; + right[i] = input[i * 2 + 1]; } #else - for (size_t i = 0; i < num_samples/2; i++) { + for (size_t i = 0; i < num_samples / 2; i++) { left[i] = input[i * 2]; right[i] = input[i * 2 + 1]; }