CHECK_INCLUDE_FILE_CXX(arm_neon.h HAVE_C_ARM_NEON_H)
if (BUILD_SVE OR BUILD_SVE2 OR BUILD_SVE2_BITPERM)
CHECK_INCLUDE_FILE_CXX(arm_sve.h HAVE_C_ARM_SVE_H)
+ if (NOT HAVE_C_ARM_SVE_H)
+ message(FATAL_ERROR "arm_sve.h is required to build for SVE.")
+ endif()
endif()
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -flax-vector-conversions")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -flax-vector-conversions")
svuint8_t a = svbsl(svdup_u8(1), svdup_u8(2), svdup_u8(3));
(void)a;
}" HAVE_SVE2)
- if (HAVE_SVE2)
- add_definitions(-DHAVE_SVE2)
- endif ()
endif()
+ if (HAVE_SVE2 OR HAVE_SVE2_BITPERM)
+ add_definitions(-DHAVE_SVE2)
+ endif ()
if (BUILD_SVE)
set(CMAKE_C_FLAGS "-march=${GNUCC_ARCH} ${CMAKE_C_FLAGS}")
CHECK_C_SOURCE_COMPILES("#include <arm_sve.h>
svuint8_t a = svdup_u8(1);
(void)a;
}" HAVE_SVE)
- if (HAVE_SVE)
- add_definitions(-DHAVE_SVE)
- endif ()
+ endif ()
+ if (HAVE_SVE OR HAVE_SVE2 OR HAVE_SVE2_BITPERM)
+ add_definitions(-DHAVE_SVE)
endif ()
set(CMAKE_C_FLAGS "${PREV_FLAGS}")
endif()
#if defined(HAVE_C_ARM_NEON_H)
# define USE_ARM_NEON_H
-# if defined(HAVE_C_ARM_SVE_H)
-# define USE_ARM_SVE
-# if defined(BUILD_SVE2)
-# define USE_ARM_SVE2
-# if defined(BUILD_SVE2_BITPERM)
-# define USE_ARM_SVE2_BITPERM
-# endif
-# endif
-# endif
#endif
#ifdef __cplusplus
#include <intrin.h>
#elif defined(USE_ARM_NEON_H)
#include <arm_neon.h>
-# if defined(USE_ARM_SVE)
+# if defined(HAVE_SVE)
# include <arm_sve.h>
# endif
#else