Skip to content

Commit b7c214c

Browse files
New Neon versions
* Neon version for complex number Mat x Mat * Neon version for Mat x Vec * Neon version for Matrix transpose
1 parent e1eb681 commit b7c214c

204 files changed

Lines changed: 3454 additions & 893 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/runneontest.yaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,9 +105,13 @@ jobs:
105105
Testing/build/result.html
106106
Testing/build/result_transform_neon.html
107107
Testing/build/result_binaryf32_neon.html
108+
Testing/build/result_binary_complexf32_neon.html
108109
Testing/build/result_binaryf16_neon.html
110+
Testing/build/result_binary_complexf16_neon.html
109111
Testing/build/result_binaryq31_neon.html
112+
Testing/build/result_binary_complexq31_neon.html
110113
Testing/build/result_binaryq15_neon.html
114+
Testing/build/result_binary_complexq15_neon.html
111115
Testing/build/result_binaryq7_neon.html
112116
Testing/build/result_f16.html
113117
@@ -120,9 +124,13 @@ jobs:
120124
test "$(grep "FAILED" result.html | wc -l)" -eq 0
121125
test "$(grep "FAILED" result_transform_neon.html | wc -l)" -eq 0
122126
test "$(grep "FAILED" result_binaryf32_neon.html | wc -l)" -eq 0
127+
test "$(grep "FAILED" result_binary_complexf32_neon.html | wc -l)" -eq 0
123128
test "$(grep "FAILED" result_binaryf16_neon.html | wc -l)" -eq 0
129+
test "$(grep "FAILED" result_binary_complexf16_neon.html | wc -l)" -eq 0
124130
test "$(grep "FAILED" result_binaryq31_neon.html | wc -l)" -eq 0
131+
test "$(grep "FAILED" result_binary_complexq31_neon.html | wc -l)" -eq 0
125132
test "$(grep "FAILED" result_binaryq15_neon.html | wc -l)" -eq 0
133+
test "$(grep "FAILED" result_binary_complexq15_neon.html | wc -l)" -eq 0
126134
test "$(grep "FAILED" result_binaryq7_neon.html | wc -l)" -eq 0
127135
test "$(grep "FAILED" result_f16.html | wc -l)" -eq 0
128136
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
cbuild-set:
2+
generated-by: vscode-cmsis-csolution version 1.54.0
3+
contexts:
4+
- context: bayes.Release+VHT-Corstone-310
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
CompileFlags:
2+
CompilationDatabase: >-
3+
/Volumes/Ext/Embedded/CMSIS-DSP/Examples/cmsis_build/out/bayes/VHT-Corstone-310/Release
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
2+
<cprj schemaVersion="2.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="CPRJ.xsd">
3+
<created timestamp="2025-06-06T09:14:58" tool="csolution 2.4.0"/>
4+
5+
<info isLayer="false">
6+
<description>Automatically generated project</description>
7+
</info>
8+
9+
<packages/>
10+
11+
<compilers>
12+
<compiler name="AC6" version="6.18.0"/>
13+
</compilers>
14+
15+
<target>
16+
<output elf="bayes.axf" intdir="../tmp/bayes/VHT-Corstone-310/Release" name="bayes" outdir="../out/bayes/VHT-Corstone-310/Release" rtedir="RTE" type="exe"/>
17+
<options debug="on"/>
18+
<asflags add="-masm=auto" compiler="AC6"/>
19+
<cflags add="-DSEMIHOSTING -Wsign-compare -Wdouble-promotion -DNDEBUG -Wall -Wextra -Werror -std=c11 -Ofast -ffast-math -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -Wno-reserved-identifier" compiler="AC6"/>
20+
<cxxflags add="-fno-rtti -DNDEBUG -Wall -Wextra -std=c++11 -Ofast -ffast-math" compiler="AC6"/>
21+
<ldflags add="--entry=Reset_Handler --info=summarysizes --info=sizes --info=totals --info=unused --info=veneers" compiler="AC6"/>
22+
<includes>../../../Include;../../../PrivateInclude</includes>
23+
</target>
24+
</cprj>
25+

Include/arm_math_memory.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,14 @@
4242
#define ARM_MATH_L3_CACHE_SIZE (512*1024)
4343
#endif
4444

45+
#if defined(ARM_MATH_NEON)
46+
47+
48+
extern char ARM_CACHE_PACKEDB[];
49+
extern char ARM_CACHE_PACKEDA[];
50+
// PACKEDC contains the accumulators
51+
extern char ARM_CACHE_PACKEDC[];
52+
#endif
4553

4654
#ifdef __cplusplus
4755
extern "C"

Include/arm_math_types.h

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -88,19 +88,23 @@ extern "C"
8888
#define __STATIC_INLINE static __inline
8989
#define __ALIGNED(x) __declspec(align(x))
9090
#define __WEAK
91+
#define SECTION_NOINIT
9192
#elif defined ( __APPLE_CC__ )
9293
#include <stdint.h>
9394
#define __ALIGNED(x) __attribute__((aligned(x)))
9495
#define __STATIC_FORCEINLINE static inline __attribute__((always_inline))
9596
#define __STATIC_INLINE static inline
9697
#define __WEAK
98+
#define SECTION_NOINIT
9799
#elif defined (__GNUC_PYTHON__)
98100
#include <stdint.h>
99101
#define __ALIGNED(x) __attribute__((aligned(x)))
100102
#define __STATIC_FORCEINLINE static inline __attribute__((always_inline))
101103
#define __STATIC_INLINE static inline
102104
#define __WEAK
105+
#define SECTION_NOINIT __attribute__((section(".noinit")))
103106
#else
107+
#define SECTION_NOINIT
104108
#include "cmsis_compiler.h"
105109
#endif
106110

@@ -120,8 +124,9 @@ extern "C"
120124
*
121125
* ARM_MATH_NEON is used to enable the Neon variants.
122126
* When Neon variants are enabled, the DSP extension are disabled
127+
*
123128
*/
124-
#if !defined(__GNUC_PYTHON__) && !defined(ARM_MATH_NEON) && !defined(ARM_MATH_NEON_EXPERIMENTAL)
129+
#if (!defined(__GNUC_PYTHON__) && !defined(ARM_MATH_NEON) && !defined(ARM_MATH_NEON_EXPERIMENTAL))
125130
#if (defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1))
126131
#define ARM_MATH_DSP 1
127132
#endif
@@ -438,7 +443,7 @@ extern "C"
438443

439444
#endif
440445

441-
#if defined(ARM_MATH_NEON) || (defined(ARM_MATH_MVEF) && !defined(ARM_MATH_AUTOVECTORIZE)) /* floating point vector*/
446+
#if defined(ARM_MATH_NEON) || (defined(ARM_MATH_MVEF) && !defined(ARM_MATH_AUTOVECTORIZE)) /* floating point vector*/
442447

443448
/**
444449
* @brief 32-bit floating-point 128-bit vector type
@@ -466,7 +471,7 @@ extern "C"
466471

467472
#endif
468473

469-
#if defined(ARM_MATH_NEON)
474+
#if defined(ARM_MATH_NEON)
470475
/**
471476
* @brief 32-bit fractional 64-bit vector data type in 1.31 format.
472477
*/

Include/arm_neon_tables.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ extern "C"
3939

4040

4141

42-
#if defined(ARM_MATH_NEON) && !defined(ARM_MATH_AUTOVECTORIZE)
42+
#if defined(ARM_MATH_NEON)
4343

4444

4545
#define ARM_NEON_RFFT_TWIDDLES_16_F32_LEN 24
@@ -456,7 +456,7 @@ extern const uint32_t arm_neon_factors_4096_q15[ARM_NEON_FACTORS_4096_Q15_LEN];
456456
#define ARM_NE10_OFFSET_BACKWARD_TWID_4096_Q15 4092
457457

458458

459-
#endif /* defined(ARM_MATH_NEON) && !defined(ARM_MATH_AUTOVECTORIZE) */
459+
#endif /* defined(ARM_MATH_NEON) */
460460

461461

462462

Include/arm_neon_tables_f16.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ extern "C"
3939

4040

4141

42-
#if defined(ARM_MATH_NEON_FLOAT16) && !defined(ARM_MATH_AUTOVECTORIZE)
42+
#if defined(ARM_MATH_NEON_FLOAT16) && defined(ARM_FLOAT16_SUPPORTED)
4343

4444

4545
#define ARM_NEON_TWIDDLES_16_F16_LEN 24
@@ -206,7 +206,7 @@ extern const float16_t arm_neon_rfft_super_twiddles_neon_4096_f16[ARM_NEON_RFFT_
206206

207207

208208

209-
#endif /* defined(ARM_MATH_NEON_FLOAT16) && !defined(ARM_MATH_AUTOVECTORIZE) */
209+
#endif /* defined(ARM_MATH_NEON_FLOAT16) */
210210

211211

212212

Include/arm_vec_math.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -299,7 +299,7 @@ __STATIC_INLINE f32x4_t vpowq_f32(
299299
#if (defined(ARM_MATH_MVEI) || defined(ARM_MATH_HELIUM)) && !defined(ARM_MATH_AUTOVECTORIZE)
300300
#endif /* (defined(ARM_MATH_MVEI) || defined(ARM_MATH_HELIUM)) */
301301

302-
#if (defined(ARM_MATH_NEON) || defined(ARM_MATH_NEON_EXPERIMENTAL)) && !defined(ARM_MATH_AUTOVECTORIZE)
302+
#if defined(ARM_MATH_NEON) || defined(ARM_MATH_NEON_EXPERIMENTAL)
303303

304304
#include "NEMath.h"
305305
/**
@@ -358,7 +358,7 @@ __STATIC_INLINE int32x4_t __arm_vec_sqrt_q31_neon(int32x4_t vec)
358358
return(vcvtq_n_s32_f32(temp,31));
359359
}
360360

361-
#endif /* (defined(ARM_MATH_NEON) || defined(ARM_MATH_NEON_EXPERIMENTAL)) && !defined(ARM_MATH_AUTOVECTORIZE) */
361+
#endif /* defined(ARM_MATH_NEON) || defined(ARM_MATH_NEON_EXPERIMENTAL)*/
362362

363363
#ifdef __cplusplus
364364
}

Include/dsp/filtering_functions.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1255,7 +1255,7 @@ arm_status arm_fir_decimate_init_f32(
12551255
uint32_t blockSize);
12561256

12571257

1258-
#if defined(ARM_MATH_NEON) || defined(DOXYGEN)
1258+
#if (defined(ARM_MATH_NEON) || defined(DOXYGEN))
12591259
/**
12601260
@brief Compute new coefficient arrays for use in vectorized filter (Neon only).
12611261
@param[in] numStages number of 2nd order stages in the filter.

0 commit comments

Comments
 (0)