Skip to content

Commit e71a2ba

Browse files
Removed some gcc workarounds for Helium that are no more needed.
1 parent f733b5a commit e71a2ba

File tree

7 files changed

+13
-47
lines changed

7 files changed

+13
-47
lines changed

Source/FilteringFunctions/arm_biquad_cascade_stereo_df2T_f16.c

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -45,12 +45,7 @@
4545
@param[out] pDst points to the block of output data
4646
@param[in] blockSize number of samples to process
4747
*/
48-
49-
#if defined(ARM_MATH_MVE_FLOAT16) && !defined(ARM_MATH_AUTOVECTORIZE) && defined(ARM_DSP_BUILT_WITH_GCC)
50-
#pragma GCC warning "Scalar version of arm_biquad_cascade_stereo_df2T_f16 built. Helium version has build issues with gcc."
51-
#endif
52-
53-
#if (defined(ARM_MATH_MVE_FLOAT16) && defined(ARM_MATH_HELIUM_EXPERIMENTAL)) && !defined(ARM_MATH_AUTOVECTORIZE) && !defined(ARM_DSP_BUILT_WITH_GCC)
48+
#if (defined(ARM_MATH_MVE_FLOAT16) && defined(ARM_MATH_HELIUM_EXPERIMENTAL)) && !defined(ARM_MATH_AUTOVECTORIZE)
5449
ARM_DSP_ATTRIBUTE void arm_biquad_cascade_stereo_df2T_f16(
5550
const arm_biquad_cascade_stereo_df2T_instance_f16 * S,
5651
const float16_t * pSrc,

Source/FilteringFunctions/arm_correlate_q7.c

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -56,11 +56,7 @@
5656
Refer to \ref arm_correlate_opt_q7() for a faster implementation of this function.
5757
*/
5858

59-
#if defined(ARM_MATH_MVE_FLOAT16) && !defined(ARM_MATH_AUTOVECTORIZE) && defined(ARM_DSP_BUILT_WITH_GCC)
60-
#pragma GCC warning "Scalar version of arm_correlate_q7 built. Helium version has build issues with gcc."
61-
#endif
62-
63-
#if defined(ARM_MATH_MVEI) && !defined(ARM_MATH_AUTOVECTORIZE) && !defined(ARM_DSP_BUILT_WITH_GCC)
59+
#if defined(ARM_MATH_MVEI) && !defined(ARM_MATH_AUTOVECTORIZE)
6460
#include "arm_helium_utils.h"
6561

6662
#include "arm_vec_filtering.h"

Source/MatrixFunctions/arm_mat_cmplx_mult_f16.c

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -51,11 +51,7 @@
5151
- \ref ARM_MATH_SIZE_MISMATCH : Matrix size check failed
5252
*/
5353

54-
#if defined(ARM_MATH_MVE_FLOAT16) && !defined(ARM_MATH_AUTOVECTORIZE) && defined(ARM_DSP_BUILT_WITH_GCC)
55-
#pragma GCC warning "Scalar version of arm_mat_cmplx_mult_f16 built. Helium version has build issues with gcc."
56-
#endif
57-
58-
#if defined(ARM_MATH_MVE_FLOAT16) && !defined(ARM_MATH_AUTOVECTORIZE) && !defined(ARM_DSP_BUILT_WITH_GCC)
54+
#if defined(ARM_MATH_MVE_FLOAT16) && !defined(ARM_MATH_AUTOVECTORIZE)
5955

6056
#include "arm_helium_utils.h"
6157

Source/StatisticsFunctions/arm_absmax_q7.c

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -45,12 +45,7 @@
4545
@param[out] pIndex index of maximum value returned here
4646
*/
4747

48-
#if defined(ARM_MATH_MVE_FLOAT16) && !defined(ARM_MATH_AUTOVECTORIZE) && defined(ARM_DSP_BUILT_WITH_GCC)
49-
#pragma GCC warning "Scalar version of arm_absmax_q7 built. Helium version has build issues with gcc."
50-
#endif
51-
52-
53-
#if defined(ARM_MATH_MVEI) && !defined(ARM_MATH_AUTOVECTORIZE) && !defined(ARM_DSP_BUILT_WITH_GCC)
48+
#if defined(ARM_MATH_MVEI) && !defined(ARM_MATH_AUTOVECTORIZE)
5449

5550
#include <stdint.h>
5651
#include "arm_helium_utils.h"

Source/TransformFunctions/arm_rfft_q15.c

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -159,11 +159,6 @@ ARM_DSP_ATTRIBUTE void arm_rfft_q15(
159159
#include "arm_helium_utils.h"
160160
#include "arm_vec_fft.h"
161161

162-
#if defined(ARM_DSP_BUILT_WITH_GCC)
163-
#define MVE_CMPLX_MULT_FX_AxB_S16(A,B) vqdmladhxq_s16(vqdmlsdhq_s16((__typeof(A))vuninitializedq_s16(), A, B), A, B)
164-
#define MVE_CMPLX_MULT_FX_AxConjB_S16(A,B) vqdmladhq_s16(vqdmlsdhxq_s16((__typeof(A))vuninitializedq_s16(), A, B), A, B)
165-
166-
#endif
167162

168163
ARM_DSP_ATTRIBUTE void arm_split_rfft_q15(
169164
q15_t * pSrc,
@@ -205,13 +200,9 @@ ARM_DSP_ATTRIBUTE void arm_split_rfft_q15(
205200
q15x8_t coefA = vldrhq_gather_shifted_offset_s16(pCoefAb, offsetCoef);
206201
q15x8_t coefB = vldrhq_gather_shifted_offset_s16(pCoefBb, offsetCoef);
207202

208-
#if defined(ARM_DSP_BUILT_WITH_GCC)
209-
q15x8_t out = vhaddq_s16(MVE_CMPLX_MULT_FX_AxB_S16(in1, coefA),
210-
MVE_CMPLX_MULT_FX_AxConjB_S16(coefB, in2));
211-
#else
203+
212204
q15x8_t out = vhaddq_s16(MVE_CMPLX_MULT_FX_AxB(in1, coefA, q15x8_t),
213205
MVE_CMPLX_MULT_FX_AxConjB(coefB, in2, q15x8_t));
214-
#endif
215206
vst1q_s16(pOut1, out);
216207
pOut1 += 8;
217208

Source/TransformFunctions/arm_rfft_q31.c

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -157,12 +157,6 @@ ARM_DSP_ATTRIBUTE void arm_rfft_q31(
157157
#include "arm_helium_utils.h"
158158
#include "arm_vec_fft.h"
159159

160-
#if defined(ARM_DSP_BUILT_WITH_GCC)
161-
162-
#define MVE_CMPLX_MULT_FX_AxB_S32(A,B) vqdmladhxq_s32(vqdmlsdhq_s32((__typeof(A))vuninitializedq_s32(), A, B), A, B)
163-
#define MVE_CMPLX_MULT_FX_AxConjB_S32(A,B) vqdmladhq_s32(vqdmlsdhxq_s32((__typeof(A))vuninitializedq_s32(), A, B), A, B)
164-
165-
#endif
166160

167161
ARM_DSP_ATTRIBUTE void arm_split_rfft_q31(
168162
q31_t *pSrc,
@@ -199,12 +193,9 @@ ARM_DSP_ATTRIBUTE void arm_split_rfft_q31(
199193
q31x4_t in2 = vldrwq_gather_shifted_offset_s32(pSrc, offset);
200194
q31x4_t coefA = vldrwq_gather_shifted_offset_s32(pCoefAb, offsetCoef);
201195
q31x4_t coefB = vldrwq_gather_shifted_offset_s32(pCoefBb, offsetCoef);
202-
#if defined(ARM_DSP_BUILT_WITH_GCC)
203-
q31x4_t out = vhaddq_s32(MVE_CMPLX_MULT_FX_AxB_S32(in1, coefA),MVE_CMPLX_MULT_FX_AxConjB_S32(coefB, in2));
204-
#else
196+
205197
q31x4_t out = vhaddq_s32(MVE_CMPLX_MULT_FX_AxB(in1, coefA, q31x4_t),
206198
MVE_CMPLX_MULT_FX_AxConjB(coefB, in2, q31x4_t));
207-
#endif
208199
vst1q(pOut1, out);
209200
pOut1 += 4;
210201

@@ -357,13 +348,9 @@ ARM_DSP_ATTRIBUTE void arm_split_rifft_q31(
357348
q31x4_t coefB = vldrwq_gather_shifted_offset_s32(pCoefBb, offsetCoef);
358349

359350
/* can we avoid the conjugate here ? */
360-
#if defined(ARM_DSP_BUILT_WITH_GCC)
361-
q31x4_t out = vhaddq_s32(MVE_CMPLX_MULT_FX_AxConjB_S32(in1, coefA),
362-
vmulq_s32(conj, MVE_CMPLX_MULT_FX_AxB_S32(in2, coefB)));
363-
#else
364351
q31x4_t out = vhaddq_s32(MVE_CMPLX_MULT_FX_AxConjB(in1, coefA, q31x4_t),
365352
vmulq_s32(conj, MVE_CMPLX_MULT_FX_AxB(in2, coefB, q31x4_t)));
366-
#endif
353+
367354
vst1q_s32(pDst, out);
368355
pDst += 4;
369356

dsppp/Include/dsppp/arch_detection.hpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,12 @@ extern "C"
1616
#elif defined ( __APPLE_CC__ )
1717
#pragma GCC diagnostic ignored "-Wold-style-cast"
1818

19+
#elif defined(__clang__)
20+
#pragma GCC diagnostic push
21+
#pragma GCC diagnostic ignored "-Wsign-conversion"
22+
#pragma GCC diagnostic ignored "-Wconversion"
23+
#pragma GCC diagnostic ignored "-Wunused-parameter"
24+
1925
#elif defined ( __GNUC__ )
2026
#pragma GCC diagnostic push
2127
#pragma GCC diagnostic ignored "-Wsign-conversion"

0 commit comments

Comments
 (0)