summaryrefslogtreecommitdiffstats
path: root/src/ffts_real.c
diff options
context:
space:
mode:
authorJukka Ojanen <jukka.ojanen@linkotec.net>2015-07-16 10:45:32 +0300
committerJukka Ojanen <jukka.ojanen@linkotec.net>2015-07-16 10:45:32 +0300
commitcb35f8927bc8c6992d41efcc3b972f2d8ee318dc (patch)
tree18239068aac8cc4f40db01114d25a8c6dd451515 /src/ffts_real.c
parent5ecfa4aad36caa0d03fe5b738b82eeeb6e024f26 (diff)
downloadffts-cb35f8927bc8c6992d41efcc3b972f2d8ee318dc.zip
ffts-cb35f8927bc8c6992d41efcc3b972f2d8ee318dc.tar.gz
Define [pa] and [pb] as constant input variables, not writable outputs
Diffstat (limited to 'src/ffts_real.c')
-rw-r--r--src/ffts_real.c12
1 files changed, 5 insertions, 7 deletions
diff --git a/src/ffts_real.c b/src/ffts_real.c
index f6e6127..6650d07 100644
--- a/src/ffts_real.c
+++ b/src/ffts_real.c
@@ -110,7 +110,7 @@ ffts_execute_1d_real(ffts_plan_t *p, const void *input, void *output)
#endif
#ifdef __ARM_NEON__
- for (i = 0; i < N/2; i += 2) {
+ for (i = 0; i < N; i += 4) {
__asm__ __volatile__ (
"vld1.32 {q8}, [%[pa]]!\n\t"
"vld1.32 {q9}, [%[pb]]!\n\t"
@@ -146,9 +146,8 @@ ffts_execute_1d_real(ffts_plan_t *p, const void *input, void *output)
"vadd.f32 q13, q13, q15\n\t"
"vadd.f32 q12, q12, q13\n\t"
"vst1.32 {q12}, [%[pout]]!\n\t"
- : [pa] "+r" (A), [pb] "+r" (B), [buf0] "+r" (p_buf0), [buf1] "+r" (p_buf1),
- [pout] "+r" (p_out)
- :
+ : [buf0] "+r" (p_buf0), [buf1] "+r" (p_buf1), [pout] "+r" (p_out)
+ : [pa] "r" (A), [pb] "r" (B)
: "memory", "q8", "q9", "q10", "q11", "q12", "q13", "q14", "q15"
);
}
@@ -403,9 +402,8 @@ ffts_execute_1d_real_inv(ffts_plan_t *p, const void *input, void *output)
"vsub.f32 q13, q13, q15\n\t"
"vadd.f32 q12, q12, q13\n\t"
"vst1.32 {q12}, [%[pout]]!\n\t"
- : [pa] "+r" (A), [pb] "+r" (B), [buf0] "+r" (p_buf0), [buf1] "+r" (p_buf1),
- [pout] "+r" (p_out)
- :
+ : [buf0] "+r" (p_buf0), [buf1] "+r" (p_buf1), [pout] "+r" (p_out)
+ : [pa] "r" (A), [pb] "r" (B)
: "memory", "q8", "q9", "q10", "q11", "q12", "q13", "q14", "q15"
);
}
OpenPOWER on IntegriCloud