summaryrefslogtreecommitdiffstats
path: root/src/ffts.c
diff options
context:
space:
mode:
authorAnthony Blake <anthonix@me.com>2013-04-10 10:51:59 +1200
committerAnthony Blake <anthonix@me.com>2013-04-10 10:51:59 +1200
commita45464980b8de7faef21eb46479f7e09fd056441 (patch)
tree272b1a6c0dba73a25d565940928e169116887d6e /src/ffts.c
parent7f43121489310f9c5131a9e20f5aff532b66ad6b (diff)
downloadffts-a45464980b8de7faef21eb46479f7e09fd056441.zip
ffts-a45464980b8de7faef21eb46479f7e09fd056441.tar.gz
Disabled some NEON code still in the VFP builds
Diffstat (limited to 'src/ffts.c')
-rw-r--r--src/ffts.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/ffts.c b/src/ffts.c
index a50360a..fe4b590 100644
--- a/src/ffts.c
+++ b/src/ffts.c
@@ -88,11 +88,20 @@ ffts_plan_t *ffts_init_1d(size_t N, int sign) {
size_t leafN = 8;
size_t i;
+#ifdef __arm__
+#ifdef HAVE_NEON
V MULI_SIGN;
if(sign < 0) MULI_SIGN = VLIT4(-0.0f, 0.0f, -0.0f, 0.0f);
else MULI_SIGN = VLIT4(0.0f, -0.0f, 0.0f, -0.0f);
+#endif
+#else
+ V MULI_SIGN;
+ if(sign < 0) MULI_SIGN = VLIT4(-0.0f, 0.0f, -0.0f, 0.0f);
+ else MULI_SIGN = VLIT4(0.0f, -0.0f, 0.0f, -0.0f);
+#endif
+
p->transform = NULL;
p->transform_base = NULL;
p->transforms = NULL;
@@ -164,7 +173,7 @@ ffts_plan_t *ffts_init_1d(size_t N, int sign) {
for(i=0;i<n_luts;i++) {
if(!i || hardcoded) {
- #ifdef HAVE_NEON
+ #ifdef __arm__
if(N <= 32) lut_size += n/4 * 2 * sizeof(cdata_t);
else lut_size += n/4 * sizeof(cdata_t);
#else
@@ -172,7 +181,7 @@ ffts_plan_t *ffts_init_1d(size_t N, int sign) {
#endif
n *= 2;
} else {
- #ifdef HAVE_NEON
+ #ifdef __arm__
lut_size += n/8 * 3 * sizeof(cdata_t);
#else
lut_size += n/8 * 3 * 2 * sizeof(cdata_t);
@@ -221,6 +230,7 @@ ffts_plan_t *ffts_init_1d(size_t N, int sign) {
float *fw = (float *)w;
V temp0, temp1, temp2;
for(j=0;j<n/4;j+=2) {
+ #ifdef HAVE_NEON
temp0 = VLD(fw0 + j*2);
V re, im;
re = VDUPRE(temp0);
@@ -228,6 +238,7 @@ ffts_plan_t *ffts_init_1d(size_t N, int sign) {
im = VXOR(im, MULI_SIGN);
VST(fw + j*4 , re);
VST(fw + j*4+4, im);
+ #endif
}
w += n/4 * 2;
}else{
OpenPOWER on IntegriCloud