diff peck_fft.h @ 4:2d6c49fcafcb

neon2 and neon4 support
author Peter Meerwald <p.meerwald@bct-electronic.com>
date Fri, 16 Sep 2011 14:04:19 +0200
parents 3b31bd44a09f
children
line wrap: on
line diff
--- a/peck_fft.h	Fri Sep 16 13:08:20 2011 +0200
+++ b/peck_fft.h	Fri Sep 16 14:04:19 2011 +0200
@@ -10,14 +10,28 @@
 extern "C" {
 #endif
 
-#ifdef USE_SIMD
-# include <xmmintrin.h>
-# define peck_fft_scalar __m128
-#define PECK_FFT_MALLOC(nbytes) _mm_malloc(nbytes, 16)
-#define PECK_FFT_FREE _mm_free
+#define SIMD_SSE2 1
+#define SIMD_NEON4 2
+#define SIMD_NEON2 3
+
+#if USE_SIMD == SIMD_SSE2
+    #include <xmmintrin.h>
+    #define peck_fft_scalar __m128
+    #define PECK_FFT_MALLOC(nbytes) _mm_malloc(nbytes, 16)
+    #define PECK_FFT_FREE _mm_free
+#elif USE_SIMD == SIMD_NEON4
+    #include <arm_neon.h>
+    #define peck_fft_scalar float32x4_t
+    #define PECK_FFT_MALLOC malloc
+    #define PECK_FFT_FREE free
+#elif USE_SIMD == SIMD_NEON2
+    #include <arm_neon.h>
+    #define peck_fft_scalar float32x2_t
+    #define PECK_FFT_MALLOC malloc
+    #define PECK_FFT_FREE free
 #else	
-#define PECK_FFT_MALLOC malloc
-#define PECK_FFT_FREE free
+    #define PECK_FFT_MALLOC malloc
+    #define PECK_FFT_FREE free
 #endif	
 
 

Repositories maintained by Peter Meerwald, pmeerw@pmeerw.net.