CMSIS-DSP: Added more control for MVE compilation flags.

Now there are ARM_MATH_MVEF and ARM_MATH_MVEI.
pull/19/head
Christophe Favergeon 6 years ago
parent 0e915a0458
commit 2d3a2166d6

@ -29,7 +29,12 @@
#ifndef _ARM_UTILS_HELIUM_H_
#define _ARM_UTILS_HELIUM_H_
#if defined (ARM_MATH_HELIUM)
/***************************************
Definitions available for MVEF and MVEI
***************************************/
#if defined (ARM_MATH_HELIUM) || defined(ARM_MATH_MVEF) || defined(ARM_MATH_MVEI)
#define nbLanes(sz) (128/sz)
@ -56,6 +61,18 @@
const float16_t*: VEC_LANES_F16, \
default: "err")
#define post_incr_vec_size(ptr) ptr += nb_vec_lanes(ptr)
#endif /* defined (ARM_MATH_HELIUM) || defined(ARM_MATH_MVEF) || defined(ARM_MATH_MVEI) */
/***************************************
Definitions available for MVEF only
***************************************/
#if defined (ARM_MATH_HELIUM) || defined(ARM_MATH_MVEF)
__STATIC_FORCEINLINE float32_t vecAddAcrossF32Mve(float32x4_t in)
{
float32_t acc;
@ -65,9 +82,14 @@ __STATIC_FORCEINLINE float32_t vecAddAcrossF32Mve(float32x4_t in)
return acc;
}
#endif /* defined (ARM_MATH_HELIUM) || defined(ARM_MATH_MVEF) */
#define post_incr_vec_size(ptr) ptr += nb_vec_lanes(ptr)
/***************************************
#endif
Definitions available for MVEI only
***************************************/
#if defined (ARM_MATH_HELIUM) || defined(ARM_MATH_MVEI)
#endif /* defined (ARM_MATH_HELIUM) || defined(ARM_MATH_MVEI) */
#endif

@ -17,7 +17,9 @@ option(NEONEXPERIMENTAL "Neon experimental acceleration" OFF)
option(LOOPUNROLL "Loop unrolling" ON)
option(ROUNDING "Rounding" OFF)
option(MATRIXCHECK "Matrix Checks" OFF)
option(HELIUM "Helium acceleration" OFF)
option(HELIUM "Helium acceleration (MVEF and MVEI supported)" OFF)
option(MVEF "MVEF intrinsics supported" OFF)
option(MVEI "MVEI intrinsics supported" OFF)
# Select which parts of the CMSIS-DSP must be compiled.
# There are some dependencies between the parts but they are not tracked

@ -33,7 +33,7 @@ function(writeConfig path)
list(APPEND output ",0")
endif()
if (HELIUM)
if (HELIUM OR MVEI OR MVEF)
list(APPEND output ",1")
else()
list(APPEND output ",0")

@ -192,6 +192,14 @@ function(configcore PROJECTNAME ROOT)
target_compile_definitions(${PROJECTNAME} PRIVATE ARM_MATH_HELIUM)
endif()
if (MVEF AND CORTEXM)
target_compile_definitions(${PROJECTNAME} PRIVATE ARM_MATH_MVEF)
endif()
if (MVEI AND CORTEXM)
target_compile_definitions(${PROJECTNAME} PRIVATE ARM_MATH_MVEI)
endif()
compilerSpecificCompileOptions(${PROJECTNAME} ${ROOT})
endfunction()
Loading…
Cancel
Save