Mercurial > hg > peckfft
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