111111#define VDUPQ_N_F32 (VAR ) { VAR, VAR, VAR, VAR }
112112
113113#define CONST_TW_81 0.70710678f
114- #define CONST_TW_81N -0.70710678f
115-
116- static const float32x4_t Q_TW_81 = VDUPQ_N_F32 (CONST_TW_81 );
117- static const float32x4_t Q_TW_81N = VDUPQ_N_F32 (CONST_TW_81N );
114+ #define CONST_TW_81N (-0.70710678f)
118115
119116#define DIV_TW81 1.4142136f
120- #define DIV_TW81N -1.4142136f
121-
122- static const float32x4_t DIV_TW81_NEON = VDUPQ_N_F32 (DIV_TW81 );
123- static const float32x4_t DIV_TW81N_NEON = VDUPQ_N_F32 (DIV_TW81N );
117+ #define DIV_TW81N (-1.4142136f)
124118
125119#define NE10_RADIX8x4_R2C_NEON_KERNEL_S1 (Q_OUT ,Q_IN ) do { \
126120 Q_OUT ## 0 = vaddq_f32 (Q_IN ## 0, Q_IN ## 4); \
@@ -131,8 +125,8 @@ static const float32x4_t DIV_TW81N_NEON = VDUPQ_N_F32(DIV_TW81N);
131125 Q_OUT ## 5 = vsubq_f32 (Q_IN ## 2, Q_IN ## 6); \
132126 Q_OUT ## 6 = vaddq_f32 (Q_IN ## 3, Q_IN ## 7); \
133127 Q_OUT ## 7 = vsubq_f32 (Q_IN ## 3, Q_IN ## 7); \
134- Q_OUT ## 3 = vmulq_f32 (Q_OUT ## 3, Q_TW_81 ); \
135- Q_OUT ## 7 = vmulq_f32 (Q_OUT ## 7, Q_TW_81N ); \
128+ Q_OUT ## 3 = vmulq_n_f32 (Q_OUT ## 3, CONST_TW_81 ); \
129+ Q_OUT ## 7 = vmulq_n_f32 (Q_OUT ## 7, CONST_TW_81N ); \
136130} while(0);
137131
138132#define NE10_RADIX8x4_R2C_NEON_KERNEL_S2 (Q_OUT ,Q_IN ) do { \
@@ -172,8 +166,8 @@ static const float32x4_t DIV_TW81N_NEON = VDUPQ_N_F32(DIV_TW81N);
172166} while (0);
173167
174168#define NE10_RADIX8x4_C2R_NEON_KERNEL_S2 (Q_OUT ,Q_IN ) do { \
175- Q_IN ## 3 = vmulq_f32 (Q_IN ## 3,DIV_TW81_NEON ); \
176- Q_IN ## 7 = vmulq_f32 (Q_IN ## 7,DIV_TW81N_NEON ); \
169+ Q_IN ## 3 = vmulq_n_f32 (Q_IN ## 3,DIV_TW81 ); \
170+ Q_IN ## 7 = vmulq_n_f32 (Q_IN ## 7,DIV_TW81N ); \
177171 Q_OUT ## 0 = vaddq_f32(Q_IN ## 0, Q_IN ## 1); \
178172 Q_OUT ## 4 = vsubq_f32(Q_IN ## 0, Q_IN ## 1); \
179173 Q_OUT ## 1 = vaddq_f32(Q_IN ## 2, Q_IN ## 3); \
@@ -330,8 +324,8 @@ static const float32x4_t DIV_TW81N_NEON = VDUPQ_N_F32(DIV_TW81N);
330324
331325#define NE10_RADIX4x4_R2C_TW_NEON_KERNEL_LAST (Q_OUT ,Q_IN ) do { \
332326 float32x4_t Q_TMP; \
333- Q_IN ## 1 = vmulq_f32 (Q_IN ## 1, Q_TW_81 ); \
334- Q_IN ## 3 = vmulq_f32 (Q_IN ## 3, Q_TW_81 ); \
327+ Q_IN ## 1 = vmulq_n_f32 (Q_IN ## 1, CONST_TW_81 ); \
328+ Q_IN ## 3 = vmulq_n_f32 (Q_IN ## 3, CONST_TW_81 ); \
335329 Q_TMP = vsubq_f32(Q_IN ## 1, Q_IN ## 3); \
336330 Q_IN ## 3 = vaddq_f32(Q_IN ## 1, Q_IN ## 3); \
337331 Q_IN ## 1 = Q_TMP; \
@@ -352,8 +346,8 @@ static const float32x4_t DIV_TW81N_NEON = VDUPQ_N_F32(DIV_TW81N);
352346 Q_TMP = vaddq_f32(Q_OUT ## 1, Q_OUT ## 3); \
353347 Q_OUT ## 3 = vsubq_f32(Q_OUT ## 3, Q_OUT ## 1); \
354348 Q_OUT ## 1 = Q_TMP; \
355- Q_OUT ## 1 = vmulq_f32 ( Q_OUT ## 1, DIV_TW81_NEON ); \
356- Q_OUT ## 3 = vmulq_f32 ( Q_OUT ## 3, DIV_TW81_NEON ); \
349+ Q_OUT ## 1 = vmulq_n_f32 ( Q_OUT ## 1, DIV_TW81 ); \
350+ Q_OUT ## 3 = vmulq_n_f32 ( Q_OUT ## 3, DIV_TW81 ); \
357351 Q_OUT ## 0 = vaddq_f32( Q_OUT ## 0, Q_OUT ## 0 ); \
358352 Q_OUT ## 2 = vaddq_f32( Q_OUT ## 2, Q_OUT ## 2 ); \
359353} while(0);
0 commit comments