From 3cde598ea250cb5622e42a63def25ca25a747124 Mon Sep 17 00:00:00 2001 From: Martin Kroeker Date: Mon, 4 May 2026 23:33:22 +0200 Subject: [PATCH 1/2] Correct file extension of assembly testcase for SME support --- cmake/system_check.cmake | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cmake/system_check.cmake b/cmake/system_check.cmake index 38a04b7aff..5336a2974c 100644 --- a/cmake/system_check.cmake +++ b/cmake/system_check.cmake @@ -157,12 +157,12 @@ endif() endif() if (NOT NO_SME) - file(WRITE ${PROJECT_BINARY_DIR}/sme.c ".text \n.global sme_test\n\nsme_test:\nsmstart\nsmstop\nret\n") - execute_process(COMMAND ${CMAKE_C_COMPILER} -march=armv9-a+sve2+sme -c -v -o ${PROJECT_BINARY_DIR}/sme.o ${PROJECT_BINARY_DIR}/sme.c OUTPUT_QUIET ERROR_QUIET RESULT_VARIABLE NO_SME) + file(WRITE ${PROJECT_BINARY_DIR}/sme.S ".text \n.global sme_test\n\nsme_test:\nsmstart\nsmstop\nret\n") + execute_process(COMMAND ${CMAKE_C_COMPILER} -march=armv9-a+sve2+sme -c -v -o ${PROJECT_BINARY_DIR}/sme.o ${PROJECT_BINARY_DIR}/sme.S OUTPUT_QUIET ERROR_QUIET RESULT_VARIABLE NO_SME) if (NO_SME EQUAL 1) set (CCOMMON_OPT "${CCOMMON_OPT} -DNO_SME") endif() - file(REMOVE "${PROJECT_BINARY_DIR}/sme.c" "${PROJECT_BINARY_DIR}/sme.o") + file(REMOVE "${PROJECT_BINARY_DIR}/sme.S" "${PROJECT_BINARY_DIR}/sme.o") endif() endif() From d4d02fee71ed9f1d4200c9f15943592c74e73088 Mon Sep 17 00:00:00 2001 From: Martin Kroeker Date: Wed, 6 May 2026 22:59:53 +0200 Subject: [PATCH 2/2] Separate LLVM prerequisites for ARMV9SME and VORTEXM4 --- cmake/arch.cmake | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/cmake/arch.cmake b/cmake/arch.cmake index 0337e16cda..b902937a05 100644 --- a/cmake/arch.cmake +++ b/cmake/arch.cmake @@ -48,9 +48,13 @@ if (DYNAMIC_ARCH) if (${CMAKE_C_COMPILER_VERSION} VERSION_GREATER_EQUAL 11) # SVE ACLE supported in LLVM >= 11 set(DYNAMIC_CORE ${DYNAMIC_CORE} NEOVERSEV1 NEOVERSEN2 ARMV8SVE A64FX) endif () + if (${CMAKE_C_COMPILER_VERSION} VERSION_GREATER_EQUAL 17) # SME ACLE supported in LLVM >= 17 + set(DYNAMIC_CORE ${DYNAMIC_CORE} ARMV9SME) + endif() + if (NOT ${CMAKE_SYSTEM_NAME} STREQUAL "Windows") - if (${CMAKE_C_COMPILER_VERSION} VERSION_GREATER_EQUAL 19 OR (${CMAKE_C_COMPILER_ID} MATCHES AppleClang AND ${CMAKE_C_COMPILER_VERSION} VERSION_GREATER_EQUAL 17) ) # SME ACLE supported in LLVM >= 19 and AppleClang >= 17 - set(DYNAMIC_CORE ${DYNAMIC_CORE} ARMV9SME VORTEXM4) + if (${CMAKE_C_COMPILER_VERSION} VERSION_GREATER_EQUAL 19 OR (${CMAKE_C_COMPILER_ID} MATCHES AppleClang AND ${CMAKE_C_COMPILER_VERSION} VERSION_GREATER_EQUAL 17) ) # SME w/out SVE supported in LLVM >= 19 and AppleClang >= 17 + set(DYNAMIC_CORE ${DYNAMIC_CORE} VORTEXM4) endif() endif() endif ()