Revert "[mlir][test] Make SME e2e tests require an emulator (#86489)"

This reverts commit 7b5255297dca377a37c8df066e9d9749ab96cfad.

Broken bot:
* https://lab.llvm.org/buildbot/#/builders/179/builds/9794
This commit is contained in:
Andrzej Warzynski 2024-04-04 17:12:37 +01:00
parent 5fd9babbfc
commit d3fe2b538d
3 changed files with 1 additions and 116 deletions

View File

@ -1,101 +0,0 @@
# A collection of helper CMake functions to detect hardware capabilities. At
# the moment these are used when configuring MLIR integration tests.
# Checks whether the specified hardware capability is supported by the host
# Linux system. This is implemented by checking auxiliary vector feature
# provided by the Linux kernel.
#
# check_hwcap(
# hwcap_spec
# output_var
# )
#
# hwcap_spec - HWCAP value to check - these are defined in hwcap.h in the Linux
# kernel.
#
# output_var - Output variable to use to save the results (TRUE for supported,
# FALSE for not supported).
#
# EXAMPLES:
#
# check_hwcap("HWCAP2_SME" SME_EMULATOR_REQUIRED)
#
function(check_hwcap hwcap_spec output)
set(hwcap_test_src
[====[
#include <asm/hwcap.h>
#include <sys/auxv.h>
int main(void)
{
long hwcaps = getauxval(AT_<HWCAP_VEC>);
return (hwcaps & <HWCAP_SPEC>) != 0;
}
]====]
)
# Extract from $hwcap_spec whether this is AT_HWCAP or AT_HWCAP2
string(FIND ${hwcap_spec} "_" wsloc)
string(SUBSTRING ${hwcap_spec} 0 ${wsloc} hwcap_vec)
string(REPLACE "<HWCAP_VEC>" ${hwcap_vec} hwcap_test_src "${hwcap_test_src}")
string(REPLACE "<HWCAP_SPEC>" ${hwcap_spec} hwcap_test_src "${hwcap_test_src}")
set(hwcap_test_file ${CMAKE_BINARY_DIR}/${CMAKE_FILES_DIRECTORY}/hwcap_check.c)
file(WRITE ${hwcap_test_file} "${hwcap_test_src}")
# Compile _and_ run
try_run(
test_run_result test_compile_result
${CMAKE_BINARY_DIR}
${hwcap_test_file}
)
# Compilation will fail if hwcap_spec is not defined - this usually means
# that your Linux kernel is too old.
if(${test_compile_result} AND (DEFINED test_run_result))
message(${test_run_result})
message(STATUS "Checking whether ${hwcap_spec} is supported by the host system: ${test_run_result}")
set(${output} ${test_run_result} PARENT_SCOPE)
else()
message(STATUS "Checking whether ${hwcap_spec} is supported by the host system: FALSE")
endif()
endfunction(check_hwcap)
# For the given group of e2e tests (defined by the `mlir_e2e_tests` flag),
# checks whether an emulator is required. If yes, verifies that the
# corresponding CMake var pointing to an emulator (`emulator_exec`) has been
# set.
#
# check_emulator(
# mlir_e2e_tests
# hwcap_spec
# emulator_exec
# )
#
# mlir_e2e_tests - MLIR CMake variables corresponding to the group of e2e tests
# to check
# hwcap_spec - HWCAP value to check. This should correspond to the hardware
# capabilities required by the tests to be checked. Possible
# values are defined in hwcap.h in the Linux kernel.
# emulator_exec - variable the defines the emulator (ought to be set if
# required, can be empty otherwise).
#
# EXAMPLES:
#
# check_emulator(MLIR_RUN_ARM_SVE_TESTS "HWCAP_SVE" ARM_EMULATOR_EXECUTABLE)
#
function(check_emulator mlir_e2e_tests hwcap_spec emulator_exec)
if (NOT ${mlir_e2e_tests})
return()
endif()
check_hwcap(${hwcap_spec} emulator_not_required)
if (${emulator_not_required})
return()
endif()
if (${emulator_exec} STREQUAL "")
message(FATAL_ERROR "${mlir_e2e_tests} requires an emulator, but ${emulator_exec} is not set")
endif()
endfunction()

View File

@ -6,7 +6,7 @@ This dialect defines custom and LLVM IR intrinsic operations that are used to
target Arm Scalable Matrix Extension. Through the available conversion and
ArmSME passes you can, for example, lower a
[linalg.matmul](https://mlir.llvm.org/docs/Dialects/Linalg/#linalgmatmul-linalgmatmulop)
operation to Arm SME
opereation to Arm SME
[FMOPA](https://developer.arm.com/documentation/ddi0602/2023-03/SME-Instructions/FMOPA--widening---Half-precision-floating-point-sum-of-outer-products-and-accumulate-)
(floating-point outer product) operations. See one of the in-tree end-to-end
integration tests for reference:
@ -14,14 +14,6 @@ integration tests for reference:
* [Linalg/CPU/ArmSME/matmul.mlir](https://github.com/llvm/llvm-project/blob/main/mlir/test/Integration/Dialect/Linalg/CPU/ArmSME/matmul.mlir)
* [Vector/CPU/ArmSME/test-outerproduct-f64.mlir](https://github.com/llvm/llvm-project/blob/main/mlir/test/Integration/Dialect/Vector/CPU/ArmSME/test-outerproduct-f64.mlir)
In order to run ArmSME integration tests, include these flags in the CMake
invocation when configuring LLVM and MLIR:
```bash
-DMLIR_INCLUDE_INTEGRATION_TESTS=On
-DMLIR_RUN_ARM_SME_TESTS=On
-DARM_EMULATOR_EXECUTABLE=<path-to-emulator>
```
These tests are run "post-commit" by the
[clang-aarch64-sve-vla](https://lab.llvm.org/buildbot/#/builders/197) LLVM
BuildBot worker.

View File

@ -1,5 +1,3 @@
include(MLIRCheckHardwareFeatures)
add_subdirectory(CAPI)
add_subdirectory(lib)
@ -41,10 +39,6 @@ if (MLIR_INCLUDE_INTEGRATION_TESTS)
option(MLIR_RUN_ARM_SVE_TESTS "Run Arm SVE tests.")
option(MLIR_RUN_ARM_SME_TESTS "Run Arm SME tests.")
# Check whether an emulator is required - if yes then make sure that it's
# been set.
check_emulator(MLIR_RUN_ARM_SVE_TESTS "HWCAP_SVE" ARM_EMULATOR_EXECUTABLE)
check_emulator(MLIR_RUN_ARM_SME_TESTS "HWCAP2_SME" ARM_EMULATOR_EXECUTABLE)
# The native target may not be enabled when cross compiling, raise an error.
if(NOT MLIR_ENABLE_EXECUTION_ENGINE)