@@ -119,10 +119,10 @@ static inline void FFT4_FCU_INPLACE (ne10_fft_cpx_float32_t scratch_out[4])
119119 NE10_CPX_SUB (scratch_out [2 ], scratch [0 ], scratch [2 ]);
120120 NE10_CPX_ADD (scratch_out [0 ], scratch [0 ], scratch [2 ]);
121121
122- scratch_out [1 ].r = vaddq_f32 ( scratch [1 ].r , scratch [3 ].i ) ;
123- scratch_out [1 ].i = vsubq_f32 ( scratch [1 ].i , scratch [3 ].r ) ;
124- scratch_out [3 ].r = vsubq_f32 ( scratch [1 ].r , scratch [3 ].i ) ;
125- scratch_out [3 ].i = vaddq_f32 ( scratch [1 ].i , scratch [3 ].r ) ;
122+ scratch_out [1 ].r = scratch [1 ].r + scratch [3 ].i ;
123+ scratch_out [1 ].i = scratch [1 ].i - scratch [3 ].r ;
124+ scratch_out [3 ].r = scratch [1 ].r - scratch [3 ].i ;
125+ scratch_out [3 ].i = scratch [1 ].i + scratch [3 ].r ;
126126}
127127
128128static inline void NE10_LOAD_TW_AND_MUL (CPLX * scratch_in ,
@@ -131,8 +131,8 @@ static inline void NE10_LOAD_TW_AND_MUL (CPLX *scratch_in,
131131 CPLX scratch_tw ;
132132 float32x4x2_t tmp = * scratch_in ;
133133 float32x2_t d2_tmp = vld1_f32 ((ne10_float32_t * )ptr_in );
134- scratch_tw .val [0 ] = NE10_REAL_DUP_NEON_F32 (d2_tmp [ 0 ] );
135- scratch_tw .val [1 ] = NE10_REAL_DUP_NEON_F32 (d2_tmp [ 1 ] );
134+ scratch_tw .val [0 ] = NE10_REAL_DUP_NEON_F32 (vget_lane_f32 ( d2_tmp , 0 ) );
135+ scratch_tw .val [1 ] = NE10_REAL_DUP_NEON_F32 (vget_lane_f32 ( d2_tmp , 1 ) );
136136 NE10_CPX_MUL_NEON_F32 (tmp , tmp , scratch_tw );
137137 * scratch_in = tmp ;
138138}
@@ -141,7 +141,7 @@ static inline REAL NE10_S_MUL_NEON_F32 (const REAL vec,
141141 const ne10_float32_t scalar )
142142{
143143 REAL scalar_neon = NE10_REAL_DUP_NEON_F32 (scalar );
144- REAL result = scalar_neon * vec ;
144+ REAL result = vmulq_n_f32 ( vec , scalar_neon ) ;
145145 return result ;
146146}
147147
@@ -241,10 +241,10 @@ static inline void NE10_FFT2_SCALING (CPLX scratch_out[2],
241241 const REAL one_by_fft_neon )
242242{
243243#ifdef NE10_DSP_CFFT_SCALING
244- scratch_out [0 ].val [0 ] = vmulq_n_f32 (scratch_out [0 ].val [0 ] , one_by_fft_neon );
245- scratch_out [0 ].val [1 ] = vmulq_n_f32 (scratch_out [0 ].val [1 ] , one_by_fft_neon );
246- scratch_out [1 ].val [0 ] = vmulq_n_f32 (scratch_out [1 ].val [0 ] , one_by_fft_neon );
247- scratch_out [1 ].val [1 ] = vmulq_n_f32 (scratch_out [1 ].val [1 ] , one_by_fft_neon );
244+ scratch_out [0 ].val [0 ] = vmulq_f32 (scratch_out [0 ].val [0 ] , one_by_fft_neon );
245+ scratch_out [0 ].val [1 ] = vmulq_f32 (scratch_out [0 ].val [1 ] , one_by_fft_neon );
246+ scratch_out [1 ].val [0 ] = vmulq_f32 (scratch_out [1 ].val [0 ] , one_by_fft_neon );
247+ scratch_out [1 ].val [1 ] = vmulq_f32 (scratch_out [1 ].val [1 ] , one_by_fft_neon );
248248#else
249249 (void ) scratch_out ;
250250 (void ) one_by_fft_neon ;
@@ -256,8 +256,8 @@ static inline void NE10_FFT3_SCALING (CPLX scratch_out[3],
256256{
257257#ifdef NE10_DSP_CFFT_SCALING
258258 NE10_FFT2_SCALING (scratch_out , one_by_fft_neon );
259- scratch_out [2 ].val [0 ] = vmulq_n_f32 (scratch_out [2 ].val [0 ] , one_by_fft_neon );
260- scratch_out [2 ].val [1 ] = vmulq_n_f32 (scratch_out [2 ].val [1 ] , one_by_fft_neon );
259+ scratch_out [2 ].val [0 ] = vmulq_f32 (scratch_out [2 ].val [0 ] , one_by_fft_neon );
260+ scratch_out [2 ].val [1 ] = vmulq_f32 (scratch_out [2 ].val [1 ] , one_by_fft_neon );
261261#else
262262 (void ) scratch_out ;
263263 (void ) one_by_fft_neon ;
@@ -269,8 +269,8 @@ static inline void NE10_FFT4_SCALING (CPLX scratch_out[4],
269269{
270270#ifdef NE10_DSP_CFFT_SCALING
271271 NE10_FFT3_SCALING (scratch_out , one_by_fft_neon );
272- scratch_out [3 ].val [0 ] = vmulq_n_f32 (scratch_out [3 ].val [0 ] , one_by_fft_neon );
273- scratch_out [3 ].val [1 ] = vmulq_n_f32 (scratch_out [3 ].val [1 ] , one_by_fft_neon );
272+ scratch_out [3 ].val [0 ] = vmulq_f32 (scratch_out [3 ].val [0 ] , one_by_fft_neon );
273+ scratch_out [3 ].val [1 ] = vmulq_f32 (scratch_out [3 ].val [1 ] , one_by_fft_neon );
274274#else
275275 (void ) scratch_out ;
276276 (void ) one_by_fft_neon ;
@@ -282,8 +282,8 @@ static inline void NE10_FFT5_SCALING (CPLX scratch_out[5],
282282{
283283#ifdef NE10_DSP_CFFT_SCALING
284284 NE10_FFT4_SCALING (scratch_out , one_by_fft_neon );
285- scratch_out [4 ].val [0 ] = vmulq_n_f32 (scratch_out [4 ].val [0 ] , one_by_fft_neon );
286- scratch_out [4 ].val [1 ] = vmulq_n_f32 (scratch_out [4 ].val [1 ] , one_by_fft_neon );
285+ scratch_out [4 ].val [0 ] = vmulq_f32 (scratch_out [4 ].val [0 ] , one_by_fft_neon );
286+ scratch_out [4 ].val [1 ] = vmulq_f32 (scratch_out [4 ].val [1 ] , one_by_fft_neon );
287287#else
288288 (void ) scratch_out ;
289289 (void ) one_by_fft_neon ;
@@ -295,12 +295,12 @@ static inline void NE10_FFT8_SCALING (CPLX scratch_out[8],
295295{
296296#ifdef NE10_DSP_CFFT_SCALING
297297 NE10_FFT5_SCALING (scratch_out , one_by_fft_neon );
298- scratch_out [5 ].val [0 ] = vmulq_n_f32 (scratch_out [5 ].val [0 ] , one_by_fft_neon );
299- scratch_out [5 ].val [1 ] = vmulq_n_f32 (scratch_out [5 ].val [1 ] , one_by_fft_neon );
300- scratch_out [6 ].val [0 ] = vmulq_n_f32 (scratch_out [6 ].val [0 ] , one_by_fft_neon );
301- scratch_out [6 ].val [1 ] = vmulq_n_f32 (scratch_out [6 ].val [1 ] , one_by_fft_neon );
302- scratch_out [7 ].val [0 ] = vmulq_n_f32 (scratch_out [7 ].val [0 ] , one_by_fft_neon );
303- scratch_out [7 ].val [1 ] = vmulq_n_f32 (scratch_out [7 ].val [1 ] , one_by_fft_neon );
298+ scratch_out [5 ].val [0 ] = vmulq_f32 (scratch_out [5 ].val [0 ] , one_by_fft_neon );
299+ scratch_out [5 ].val [1 ] = vmulq_f32 (scratch_out [5 ].val [1 ] , one_by_fft_neon );
300+ scratch_out [6 ].val [0 ] = vmulq_f32 (scratch_out [6 ].val [0 ] , one_by_fft_neon );
301+ scratch_out [6 ].val [1 ] = vmulq_f32 (scratch_out [6 ].val [1 ] , one_by_fft_neon );
302+ scratch_out [7 ].val [0 ] = vmulq_f32 (scratch_out [7 ].val [0 ] , one_by_fft_neon );
303+ scratch_out [7 ].val [1 ] = vmulq_f32 (scratch_out [7 ].val [1 ] , one_by_fft_neon );
304304#else
305305 (void ) scratch_out ;
306306 (void ) one_by_fft_neon ;
@@ -369,10 +369,10 @@ static inline void NE10_FFT4_FUC_INPLACE_NEON_F32 (CPLX scratch_out[4])
369369 NE10_CPX_SUB_NEON_F32 (scratch_out [2 ], scratch [0 ], scratch [2 ]);
370370 NE10_CPX_ADD_NEON_F32 (scratch_out [0 ], scratch [0 ], scratch [2 ]);
371371
372- scratch_out [1 ].val [0 ] = scratch [1 ].val [0 ] + scratch [3 ].val [1 ];
373- scratch_out [1 ].val [1 ] = scratch [1 ].val [1 ] - scratch [3 ].val [0 ];
374- scratch_out [3 ].val [0 ] = scratch [1 ].val [0 ] - scratch [3 ].val [1 ];
375- scratch_out [3 ].val [1 ] = scratch [1 ].val [1 ] + scratch [3 ].val [0 ];
372+ scratch_out [1 ].val [0 ] = vaddq_f32 ( scratch [1 ].val [0 ] , scratch [3 ].val [1 ]) ;
373+ scratch_out [1 ].val [1 ] = vsubq_f32 ( scratch [1 ].val [1 ] , scratch [3 ].val [0 ]) ;
374+ scratch_out [3 ].val [0 ] = vsubq_f32 ( scratch [1 ].val [0 ] , scratch [3 ].val [1 ]) ;
375+ scratch_out [3 ].val [1 ] = vaddq_f32 ( scratch [1 ].val [1 ] , scratch [3 ].val [0 ]) ;
376376}
377377
378378#if 0
@@ -808,8 +808,8 @@ static void ne10_radix_5_butterfly_float32_neon_##ISFIRSTSTAGE##_##ISINVERSE##_#
808808 s[0] = in[0]; \
809809 s[5] = in[0]; \
810810 \
811- in[0].val[0] = in[0].val[0] + s[1].val[0] + s[2].val[0]; \
812- in[0].val[1] = in[0].val[1] + s[1].val[1] + s[2].val[1]; \
811+ in[0].val[0] = vaddq_f32( in[0].val[0] + vaddq_f32( s[1].val[0] + s[2].val[0])) ; \
812+ in[0].val[1] = vaddq_f32( in[0].val[1] + vaddq_f32( s[1].val[1] + s[2].val[1])) ; \
813813 \
814814 s[0].val[0] = NE10_S_MLA_NEON_F32 (s[0].val[0], s[1].val[0], TW_5A_F32.r);\
815815 s[0].val[1] = NE10_S_MLA_NEON_F32 (s[0].val[1], s[1].val[1], TW_5A_F32.r);\
0 commit comments