[MLIR] Switch lit tests to %mlir_lib_dir and %mlir_src_dir replacements.
The old replacements will be removed soon: - `%linalg_test_lib_dir` - `%cuda_wrapper_library_dir` - `%spirv_wrapper_library_dir` - `%vulkan_wrapper_library_dir` - `%mlir_runner_utils_dir` - `%mlir_integration_test_dir` Reviewed By: herhut Differential Revision: https://reviews.llvm.org/D133270
This commit is contained in:
@@ -35,15 +35,6 @@ if (MLIR_INCLUDE_INTEGRATION_TESTS)
|
||||
message(FATAL_ERROR "MLIR_INCLUDE_INTEGRATION_TESTS requires a native target")
|
||||
endif()
|
||||
|
||||
# Copy test data over.
|
||||
# TODO: drop copy and load files relative to MLIR_SOURCE_DIR / %mlir_src_root.
|
||||
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/Integration/data/mttkrp_b.tns
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/Integration/data/test.mtx
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/Integration/data/test_symmetric.mtx
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/Integration/data/test_symmetric_complex.mtx
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/Integration/data/test.tns
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/Integration/data/wide.mtx
|
||||
DESTINATION ${MLIR_LIB_DIR}/data/)
|
||||
endif()
|
||||
|
||||
llvm_canonicalize_cmake_booleans(
|
||||
|
||||
@@ -14,9 +14,9 @@
|
||||
// RUN: -reconcile-unrealized-casts \
|
||||
// RUN: | mlir-cpu-runner \
|
||||
// RUN: -e entry -entry-point-result=void -O3 \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_runner_utils%shlibext \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext\
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_async_runtime%shlibext \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_runner_utils%shlibext \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext\
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_async_runtime%shlibext \
|
||||
// RUN: | FileCheck %s --dump-input=always
|
||||
|
||||
// RUN: mlir-opt %s \
|
||||
@@ -28,9 +28,9 @@
|
||||
// RUN: -reconcile-unrealized-casts \
|
||||
// RUN: | mlir-cpu-runner \
|
||||
// RUN: -e entry -entry-point-result=void -O3 \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_runner_utils%shlibext \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext\
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_async_runtime%shlibext \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_runner_utils%shlibext \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext\
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_async_runtime%shlibext \
|
||||
// RUN: | FileCheck %s --dump-input=always
|
||||
|
||||
#map0 = affine_map<(d0, d1) -> (d0, d1)>
|
||||
|
||||
@@ -14,9 +14,9 @@
|
||||
// RUN: -reconcile-unrealized-casts \
|
||||
// RUN: | mlir-cpu-runner \
|
||||
// RUN: -e entry -entry-point-result=void -O3 \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_runner_utils%shlibext \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext\
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_async_runtime%shlibext \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_runner_utils%shlibext \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext\
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_async_runtime%shlibext \
|
||||
// RUN: | FileCheck %s --dump-input=always
|
||||
|
||||
// RUN: mlir-opt %s \
|
||||
@@ -35,9 +35,9 @@
|
||||
// RUN: -reconcile-unrealized-casts \
|
||||
// RUN: | mlir-cpu-runner \
|
||||
// RUN: -e entry -entry-point-result=void -O3 \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_runner_utils%shlibext \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext\
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_async_runtime%shlibext \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_runner_utils%shlibext \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext\
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_async_runtime%shlibext \
|
||||
// RUN: | FileCheck %s --dump-input=always
|
||||
|
||||
// RUN: mlir-opt %s \
|
||||
@@ -49,9 +49,9 @@
|
||||
// RUN: -reconcile-unrealized-casts \
|
||||
// RUN: | mlir-cpu-runner \
|
||||
// RUN: -e entry -entry-point-result=void -O3 \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_runner_utils%shlibext \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext\
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_async_runtime%shlibext \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_runner_utils%shlibext \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext\
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_async_runtime%shlibext \
|
||||
// RUN: | FileCheck %s --dump-input=always
|
||||
|
||||
#map0 = affine_map<(d0, d1) -> (d0, d1)>
|
||||
|
||||
@@ -11,8 +11,8 @@
|
||||
// RUN: -reconcile-unrealized-casts \
|
||||
// RUN: | mlir-cpu-runner \
|
||||
// RUN: -e entry -entry-point-result=void -O0 \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_runner_utils%shlibext \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_async_runtime%shlibext\
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_runner_utils%shlibext \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_async_runtime%shlibext\
|
||||
// RUN: | FileCheck %s --dump-input=always
|
||||
|
||||
// RUN: mlir-opt %s -async-parallel-for \
|
||||
@@ -27,8 +27,8 @@
|
||||
// RUN: -reconcile-unrealized-casts \
|
||||
// RUN: | mlir-cpu-runner \
|
||||
// RUN: -e entry -entry-point-result=void -O0 \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_runner_utils%shlibext \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_async_runtime%shlibext\
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_runner_utils%shlibext \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_async_runtime%shlibext\
|
||||
// RUN: | FileCheck %s --dump-input=always
|
||||
|
||||
// RUN: mlir-opt %s -async-parallel-for="async-dispatch=false \
|
||||
@@ -46,8 +46,8 @@
|
||||
// RUN: -reconcile-unrealized-casts \
|
||||
// RUN: | mlir-cpu-runner \
|
||||
// RUN: -e entry -entry-point-result=void -O0 \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_runner_utils%shlibext \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_async_runtime%shlibext\
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_runner_utils%shlibext \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_async_runtime%shlibext\
|
||||
// RUN: | FileCheck %s --dump-input=always
|
||||
|
||||
// Suppress constant folding by introducing "dynamic" zero value at runtime.
|
||||
|
||||
@@ -10,8 +10,8 @@
|
||||
// RUN: -reconcile-unrealized-casts \
|
||||
// RUN: | mlir-cpu-runner \
|
||||
// RUN: -e entry -entry-point-result=void -O0 \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_runner_utils%shlibext \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_async_runtime%shlibext\
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_runner_utils%shlibext \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_async_runtime%shlibext\
|
||||
// RUN: | FileCheck %s --dump-input=always
|
||||
|
||||
// RUN: mlir-opt %s -async-parallel-for \
|
||||
@@ -25,8 +25,8 @@
|
||||
// RUN: -reconcile-unrealized-casts \
|
||||
// RUN: | mlir-cpu-runner \
|
||||
// RUN: -e entry -entry-point-result=void -O0 \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_runner_utils%shlibext \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_async_runtime%shlibext\
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_runner_utils%shlibext \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_async_runtime%shlibext\
|
||||
// RUN: | FileCheck %s --dump-input=always
|
||||
|
||||
// RUN: mlir-opt %s -async-parallel-for="async-dispatch=false \
|
||||
@@ -43,8 +43,8 @@
|
||||
// RUN: -reconcile-unrealized-casts \
|
||||
// RUN: | mlir-cpu-runner \
|
||||
// RUN: -e entry -entry-point-result=void -O0 \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_runner_utils%shlibext \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_async_runtime%shlibext\
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_runner_utils%shlibext \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_async_runtime%shlibext\
|
||||
// RUN: | FileCheck %s --dump-input=always
|
||||
|
||||
func.func @entry() {
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// RUN: -convert-func-to-llvm -reconcile-unrealized-casts |\
|
||||
// RUN: mlir-cpu-runner \
|
||||
// RUN: -e entry -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext |\
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext |\
|
||||
// RUN: FileCheck %s
|
||||
|
||||
func.func @test_unary(%input: tensor<?xcomplex<f32>>,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// RUN: mlir-opt %s -convert-vector-to-llvm | \
|
||||
// RUN: mlir-cpu-runner -e entry_point_with_all_constants -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext
|
||||
|
||||
module {
|
||||
llvm.func @function_to_run(%a: vector<8xf32>, %b: vector<8xf32>) {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// RUN: mlir-cpu-runner %s -e entry -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: FileCheck %s
|
||||
|
||||
module {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// RUN: mlir-cpu-runner %s -e entry -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: FileCheck %s
|
||||
|
||||
// End-to-end test of all fp reduction intrinsics (not exhaustive unit tests).
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// RUN: mlir-cpu-runner %s -e entry -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: FileCheck %s
|
||||
|
||||
// End-to-end test of all int reduction intrinsics (not exhaustive unit tests).
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// RUN: mlir-opt %s -convert-linalg-to-loops -convert-scf-to-cf -convert-linalg-to-llvm -convert-memref-to-llvm -convert-func-to-llvm -reconcile-unrealized-casts | \
|
||||
// RUN: mlir-cpu-runner -O3 -e main -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_runner_utils%shlibext \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_runner_utils%shlibext \
|
||||
// RUN: | FileCheck %s
|
||||
|
||||
func.func private @printMemrefF32(memref<*xf32>)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// RUN: mlir-opt %s -convert-linalg-to-loops -convert-scf-to-cf -convert-linalg-to-llvm -convert-memref-to-llvm -convert-func-to-llvm -reconcile-unrealized-casts | \
|
||||
// RUN: mlir-cpu-runner -O3 -e main -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_runner_utils%shlibext \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_runner_utils%shlibext \
|
||||
// RUN: | FileCheck %s
|
||||
|
||||
func.func private @printMemrefF32(memref<*xf32>)
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
// RUN: -finalizing-bufferize -buffer-deallocation -convert-linalg-to-llvm \
|
||||
// RUN: -convert-memref-to-llvm -convert-func-to-llvm -reconcile-unrealized-casts | \
|
||||
// RUN: mlir-cpu-runner -e main -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_runner_utils%shlibext \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_runner_utils%shlibext \
|
||||
// RUN: | FileCheck %s
|
||||
|
||||
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
// RUN: mlir-opt %s -convert-linalg-to-loops -convert-scf-to-cf -convert-linalg-to-llvm -lower-affine -convert-scf-to-cf --convert-memref-to-llvm -convert-func-to-llvm -reconcile-unrealized-casts | \
|
||||
// RUN: mlir-cpu-runner -e main -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_runner_utils%shlibext \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_runner_utils%shlibext \
|
||||
// RUN: | FileCheck %s
|
||||
|
||||
// RUN: mlir-opt %s -linalg-tile="tile-sizes=4" -convert-linalg-to-loops -convert-scf-to-cf \
|
||||
// RUN: -convert-linalg-to-llvm -lower-affine -convert-scf-to-cf --convert-memref-to-llvm -convert-func-to-llvm -reconcile-unrealized-casts | \
|
||||
// RUN: mlir-cpu-runner -e main -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_runner_utils%shlibext \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_runner_utils%shlibext \
|
||||
// RUN: | FileCheck %s
|
||||
|
||||
func.func private @printMemrefF32(memref<*xf32>)
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
// RUN: mlir-opt %s -convert-linalg-to-loops -convert-scf-to-cf -convert-linalg-to-llvm -lower-affine -convert-scf-to-cf --convert-memref-to-llvm -convert-func-to-llvm -reconcile-unrealized-casts | \
|
||||
// RUN: mlir-cpu-runner -e main -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_runner_utils%shlibext \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_runner_utils%shlibext \
|
||||
// RUN: | FileCheck %s
|
||||
|
||||
// RUN: mlir-opt %s -linalg-tile="tile-sizes=2,4" -convert-linalg-to-loops -convert-scf-to-cf \
|
||||
// RUN: -convert-linalg-to-llvm -lower-affine -convert-scf-to-cf --convert-memref-to-llvm -convert-func-to-llvm -reconcile-unrealized-casts | \
|
||||
// RUN: mlir-cpu-runner -e main -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_runner_utils%shlibext \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_runner_utils%shlibext \
|
||||
// RUN: | FileCheck %s
|
||||
|
||||
func.func private @printMemrefF32(memref<*xf32>)
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
// RUN: mlir-opt %s -convert-linalg-to-loops -convert-scf-to-cf -convert-linalg-to-llvm -lower-affine -convert-scf-to-cf --convert-memref-to-llvm -convert-func-to-llvm -reconcile-unrealized-casts | \
|
||||
// RUN: mlir-cpu-runner -e main -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_runner_utils%shlibext \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_runner_utils%shlibext \
|
||||
// RUN: | FileCheck %s
|
||||
|
||||
// RUN: mlir-opt %s -linalg-tile="tile-sizes=2,2" -convert-linalg-to-loops -convert-scf-to-cf \
|
||||
// RUN: -convert-linalg-to-llvm -lower-affine -convert-scf-to-cf --convert-memref-to-llvm -convert-func-to-llvm -reconcile-unrealized-casts | \
|
||||
// RUN: mlir-cpu-runner -e main -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_runner_utils%shlibext \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_runner_utils%shlibext \
|
||||
// RUN: | FileCheck %s
|
||||
|
||||
func.func private @printMemrefF32(memref<*xf32>)
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
// RUN: mlir-opt %s -convert-linalg-to-loops -convert-scf-to-cf -convert-linalg-to-llvm -lower-affine -convert-scf-to-cf --convert-memref-to-llvm -convert-func-to-llvm -reconcile-unrealized-casts | \
|
||||
// RUN: mlir-cpu-runner -e main -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_runner_utils%shlibext \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_runner_utils%shlibext \
|
||||
// RUN: | FileCheck %s
|
||||
|
||||
// RUN: mlir-opt %s -linalg-tile="tile-sizes=2,3,3,2" -convert-linalg-to-loops -convert-scf-to-cf \
|
||||
// RUN: -convert-linalg-to-llvm -lower-affine -convert-scf-to-cf --convert-memref-to-llvm -convert-func-to-llvm -reconcile-unrealized-casts | \
|
||||
// RUN: mlir-cpu-runner -e main -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_runner_utils%shlibext \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_runner_utils%shlibext \
|
||||
// RUN: | FileCheck %s
|
||||
|
||||
func.func private @printMemrefF32(memref<*xf32>)
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
// RUN: mlir-opt %s -convert-linalg-to-loops -convert-scf-to-cf -convert-linalg-to-llvm -lower-affine -convert-scf-to-cf --convert-memref-to-llvm -convert-func-to-llvm -reconcile-unrealized-casts | \
|
||||
// RUN: mlir-cpu-runner -e main -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_runner_utils%shlibext \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_runner_utils%shlibext \
|
||||
// RUN: | FileCheck %s
|
||||
|
||||
// RUN: mlir-opt %s -linalg-tile="tile-sizes=2,2,2" -convert-linalg-to-loops -convert-scf-to-cf \
|
||||
// RUN: -convert-linalg-to-llvm -lower-affine -convert-scf-to-cf --convert-memref-to-llvm -convert-func-to-llvm -reconcile-unrealized-casts | \
|
||||
// RUN: mlir-cpu-runner -e main -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_runner_utils%shlibext \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_runner_utils%shlibext \
|
||||
// RUN: | FileCheck %s
|
||||
|
||||
func.func private @printMemrefF32(memref<*xf32>)
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
// RUN: mlir-opt %s -convert-linalg-to-loops -convert-scf-to-cf -convert-linalg-to-llvm -lower-affine -convert-scf-to-cf --convert-memref-to-llvm -convert-func-to-llvm -reconcile-unrealized-casts | \
|
||||
// RUN: mlir-cpu-runner -e main -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_runner_utils%shlibext \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_runner_utils%shlibext \
|
||||
// RUN: | FileCheck %s
|
||||
|
||||
// RUN: mlir-opt %s -linalg-tile="tile-sizes=0,5,5,5" -convert-linalg-to-loops -convert-scf-to-cf \
|
||||
// RUN: -convert-linalg-to-llvm -lower-affine -convert-scf-to-cf --convert-memref-to-llvm -convert-func-to-llvm -reconcile-unrealized-casts | \
|
||||
// RUN: mlir-cpu-runner -e main -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_runner_utils%shlibext \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_runner_utils%shlibext \
|
||||
// RUN: | FileCheck %s
|
||||
|
||||
func.func private @printMemrefF32(memref<*xf32>)
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
// RUN: -convert-linalg-to-llvm --convert-memref-to-llvm -convert-func-to-llvm \
|
||||
// RUN: -reconcile-unrealized-casts | \
|
||||
// RUN: mlir-cpu-runner -e main -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_runner_utils%shlibext \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_runner_utils%shlibext \
|
||||
// RUN: | FileCheck %s
|
||||
|
||||
func.func @main() {
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
// RUN: -finalizing-bufferize -buffer-deallocation -convert-linalg-to-llvm \
|
||||
// RUN: -convert-memref-to-llvm -convert-func-to-llvm -reconcile-unrealized-casts | \
|
||||
// RUN: mlir-cpu-runner -e main -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_runner_utils%shlibext \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_runner_utils%shlibext \
|
||||
// RUN: | FileCheck %s
|
||||
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
// RUN: mlir-opt -pass-pipeline="func.func(canonicalize,convert-scf-to-cf),convert-vector-to-llvm,convert-memref-to-llvm,convert-func-to-llvm,reconcile-unrealized-casts" | \
|
||||
|
||||
// RUN: mlir-cpu-runner -O3 -e main -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_runner_utils%shlibext,%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext |\
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_runner_utils%shlibext,%mlir_lib_dir/libmlir_c_runner_utils%shlibext |\
|
||||
// RUN: FileCheck %s
|
||||
|
||||
#map0 = affine_map<(d0, d1)[s0] -> ((d1 - d0) ceildiv s0)>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
// RUN: -finalizing-bufferize -buffer-deallocation \
|
||||
// RUN: -convert-linalg-to-loops -convert-scf-to-cf -convert-linalg-to-llvm -convert-memref-to-llvm -convert-func-to-llvm -reconcile-unrealized-casts | \
|
||||
// RUN: mlir-cpu-runner -e main -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext,%mlir_integration_test_dir/libmlir_runner_utils%shlibext \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext,%mlir_lib_dir/libmlir_runner_utils%shlibext \
|
||||
// RUN: | FileCheck %s
|
||||
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
// RUN: -finalizing-bufferize -buffer-deallocation \
|
||||
// RUN: -convert-linalg-to-loops -convert-scf-to-cf -convert-linalg-to-llvm --convert-memref-to-llvm -convert-func-to-llvm -reconcile-unrealized-casts | \
|
||||
// RUN: mlir-cpu-runner -e main -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext,%mlir_integration_test_dir/libmlir_runner_utils%shlibext \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext,%mlir_lib_dir/libmlir_runner_utils%shlibext \
|
||||
// RUN: | FileCheck %s
|
||||
|
||||
func.func @main() {
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
// RUN: -finalizing-bufferize -buffer-deallocation \
|
||||
// RUN: -convert-linalg-to-loops -convert-scf-to-cf -convert-linalg-to-llvm --convert-memref-to-llvm -convert-func-to-llvm -reconcile-unrealized-casts | \
|
||||
// RUN: mlir-cpu-runner -e main -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_runner_utils%shlibext \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_runner_utils%shlibext \
|
||||
// RUN: | FileCheck %s
|
||||
|
||||
func.func @main() {
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
// RUN: -tensor-bufferize -func-bufferize -finalizing-bufferize -buffer-deallocation -convert-linalg-to-loops \
|
||||
// RUN: -convert-linalg-to-llvm --convert-memref-to-llvm -convert-func-to-llvm -reconcile-unrealized-casts | \
|
||||
// RUN: mlir-cpu-runner -e main -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_runner_utils%shlibext \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_runner_utils%shlibext \
|
||||
// RUN: | FileCheck %s
|
||||
|
||||
func.func @foo() -> tensor<4xf32> {
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
// RUN: -tensor-bufferize -func-bufferize -finalizing-bufferize -buffer-deallocation -convert-linalg-to-loops -convert-scf-to-cf \
|
||||
// RUN: -convert-linalg-to-llvm -lower-affine -convert-scf-to-cf --convert-memref-to-llvm -convert-func-to-llvm -reconcile-unrealized-casts | \
|
||||
// RUN: mlir-cpu-runner -e main -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext,%mlir_integration_test_dir/libmlir_runner_utils%shlibext \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext,%mlir_lib_dir/libmlir_runner_utils%shlibext \
|
||||
// RUN: | FileCheck %s
|
||||
|
||||
// RUN: mlir-opt %s -linalg-tile="tile-sizes=1,2,3" -linalg-bufferize \
|
||||
@@ -12,7 +12,7 @@
|
||||
// RUN: -finalizing-bufferize -convert-linalg-to-loops -convert-scf-to-cf -convert-scf-to-cf \
|
||||
// RUN: -convert-linalg-to-llvm -lower-affine -convert-scf-to-cf --convert-memref-to-llvm -convert-func-to-llvm -reconcile-unrealized-casts | \
|
||||
// RUN: mlir-cpu-runner -e main -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext,%mlir_integration_test_dir/libmlir_runner_utils%shlibext \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext,%mlir_lib_dir/libmlir_runner_utils%shlibext \
|
||||
// RUN: | FileCheck %s
|
||||
|
||||
func.func @main() {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// RUN: mlir-opt %s --sparse-compiler | \
|
||||
// RUN: mlir-cpu-runner \
|
||||
// RUN: -e entry -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: FileCheck %s
|
||||
|
||||
#MAT_C_C = #sparse_tensor.encoding<{dimLevelType = ["compressed", "compressed"]}>
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
// RUN: mlir-opt %s --sparse-compiler | \
|
||||
// RUN: TENSOR0="%mlir_integration_test_dir/data/test.mtx" \
|
||||
// RUN: TENSOR0="%mlir_src_dir/test/Integration/data/test.mtx" \
|
||||
// RUN: mlir-cpu-runner \
|
||||
// RUN: -e entry -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: FileCheck %s
|
||||
|
||||
!Filename = !llvm.ptr<i8>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// RUN: mlir-opt %s --sparse-compiler | \
|
||||
// RUN: mlir-cpu-runner \
|
||||
// RUN: -e entry -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: FileCheck %s
|
||||
|
||||
#SparseVector = #sparse_tensor.encoding<{dimLevelType = ["compressed"]}>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// RUN: mlir-opt %s --sparse-compiler | \
|
||||
// RUN: mlir-cpu-runner \
|
||||
// RUN: -e entry -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: FileCheck %s
|
||||
|
||||
#SparseVector = #sparse_tensor.encoding<{dimLevelType = ["compressed"]}>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// RUN: mlir-opt %s --sparse-compiler | \
|
||||
// RUN: mlir-cpu-runner \
|
||||
// RUN: -e entry -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: FileCheck %s
|
||||
|
||||
#SparseVector = #sparse_tensor.encoding<{ dimLevelType = [ "compressed" ] }>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// RUN: mlir-opt %s --sparse-compiler | \
|
||||
// RUN: mlir-cpu-runner \
|
||||
// RUN: -e entry -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: FileCheck %s
|
||||
|
||||
#SparseVector = #sparse_tensor.encoding<{dimLevelType = ["compressed"]}>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// RUN: mlir-opt %s --sparse-compiler | \
|
||||
// RUN: mlir-cpu-runner \
|
||||
// RUN: -e entry -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: FileCheck %s
|
||||
//
|
||||
// Do the same run, but now with SIMDization as well. This should not change the outcome.
|
||||
@@ -9,7 +9,7 @@
|
||||
// RUN: mlir-opt %s --sparse-compiler="vectorization-strategy=any-storage-inner-loop vl=2" | \
|
||||
// RUN: mlir-cpu-runner \
|
||||
// RUN: -e entry -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: FileCheck %s
|
||||
|
||||
#SV = #sparse_tensor.encoding<{ dimLevelType = [ "compressed" ] }>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// RUN: mlir-opt %s --sparse-compiler | \
|
||||
// RUN: mlir-cpu-runner \
|
||||
// RUN: -e entry -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: FileCheck %s
|
||||
|
||||
#SparseVector = #sparse_tensor.encoding<{dimLevelType = ["compressed"]}>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// RUN: mlir-opt %s --sparse-compiler | \
|
||||
// RUN: mlir-cpu-runner \
|
||||
// RUN: -e entry -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: FileCheck %s
|
||||
|
||||
#SparseVector = #sparse_tensor.encoding<{dimLevelType = ["compressed"]}>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// RUN: mlir-opt %s --sparse-compiler | \
|
||||
// RUN: mlir-cpu-runner \
|
||||
// RUN: -e entry -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: FileCheck %s
|
||||
|
||||
#SparseVector = #sparse_tensor.encoding<{dimLevelType = ["compressed"]}>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// RUN: mlir-opt %s --sparse-compiler | \
|
||||
// RUN: mlir-cpu-runner \
|
||||
// RUN: -e entry -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: FileCheck %s
|
||||
|
||||
#Tensor1 = #sparse_tensor.encoding<{
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// RUN: mlir-opt %s --sparse-compiler | \
|
||||
// RUN: mlir-cpu-runner \
|
||||
// RUN: -e entry -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: FileCheck %s
|
||||
|
||||
#Tensor1 = #sparse_tensor.encoding<{
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// RUN: mlir-opt %s --sparse-compiler | \
|
||||
// RUN: mlir-cpu-runner \
|
||||
// RUN: -e entry -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: FileCheck %s
|
||||
|
||||
#DCSR = #sparse_tensor.encoding<{
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// RUN: mlir-opt %s --sparse-compiler | \
|
||||
// RUN: mlir-cpu-runner \
|
||||
// RUN: -e entry -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: FileCheck %s
|
||||
|
||||
#DCSR = #sparse_tensor.encoding<{
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// RUN: mlir-opt %s --sparse-compiler | \
|
||||
// RUN: mlir-cpu-runner \
|
||||
// RUN: -e entry -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext \
|
||||
// RUN: | \
|
||||
// RUN: FileCheck %s
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// Force this file to use the kDirect method for sparse2sparse.
|
||||
// RUN: mlir-opt %s --sparse-compiler="s2s-strategy=2" | \
|
||||
// RUN: mlir-cpu-runner -e entry -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: FileCheck %s
|
||||
|
||||
#Tensor1 = #sparse_tensor.encoding<{
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// RUN: mlir-opt %s --sparse-compiler | \
|
||||
// RUN: mlir-cpu-runner -e entry -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: FileCheck %s
|
||||
|
||||
#SparseVector = #sparse_tensor.encoding<{ dimLevelType = [ "compressed" ] }>
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
// RUN: mlir-opt %s --sparse-compiler | \
|
||||
// RUN: mlir-cpu-runner -e entry -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: FileCheck %s
|
||||
//
|
||||
// Do the same run, but now with SIMDization as well. This should not change the outcome.
|
||||
//
|
||||
// RUN: mlir-opt %s --sparse-compiler="vectorization-strategy=any-storage-inner-loop vl=2" | \
|
||||
// RUN: mlir-cpu-runner -e entry -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: FileCheck %s
|
||||
|
||||
#DCSR = #sparse_tensor.encoding<{ dimLevelType = [ "compressed", "compressed" ] }>
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
// RUN: mlir-opt %s --sparse-compiler | \
|
||||
// RUN: TENSOR0="%mlir_integration_test_dir/data/test.tns" \
|
||||
// RUN: TENSOR0="%mlir_src_dir/test/Integration/data/test.tns" \
|
||||
// RUN: mlir-cpu-runner \
|
||||
// RUN: -e entry -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: FileCheck %s
|
||||
//
|
||||
// Do the same run, but now with SIMDization as well. This should not change the outcome.
|
||||
//
|
||||
// RUN: mlir-opt %s --sparse-compiler="vectorization-strategy=any-storage-inner-loop vl=4" | \
|
||||
// RUN: TENSOR0="%mlir_integration_test_dir/data/test.tns" \
|
||||
// RUN: TENSOR0="%mlir_src_dir/test/Integration/data/test.tns" \
|
||||
// RUN: mlir-cpu-runner \
|
||||
// RUN: -e entry -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: FileCheck %s
|
||||
|
||||
!Filename = !llvm.ptr<i8>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// RUN: mlir-opt %s --sparse-compiler | \
|
||||
// RUN: mlir-cpu-runner -e entry -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: FileCheck %s
|
||||
|
||||
#SparseVector = #sparse_tensor.encoding<{
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
// RUN: mlir-opt %s --sparse-compiler | \
|
||||
// RUN: mlir-cpu-runner -e entry -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: FileCheck %s
|
||||
//
|
||||
// Do the same run, but now with SIMDization as well. This should not change the outcome.
|
||||
//
|
||||
// RUN: mlir-opt %s --sparse-compiler="vectorization-strategy=any-storage-inner-loop vl=4" | \
|
||||
// RUN: mlir-cpu-runner -e entry -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: FileCheck %s
|
||||
|
||||
#SparseVector = #sparse_tensor.encoding<{
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// RUN: mlir-opt %s --sparse-compiler | \
|
||||
// RUN: mlir-cpu-runner -e entry -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: FileCheck %s
|
||||
|
||||
#CSR = #sparse_tensor.encoding<{
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// RUN: mlir-opt %s --sparse-compiler | \
|
||||
// RUN: mlir-cpu-runner \
|
||||
// RUN: -e entry -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: FileCheck %s
|
||||
|
||||
#DCSR = #sparse_tensor.encoding<{dimLevelType = ["compressed", "compressed"]}>
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
// RUN: mlir-opt %s --sparse-compiler | \
|
||||
// RUN: TENSOR0="%mlir_integration_test_dir/data/wide.mtx" \
|
||||
// RUN: TENSOR0="%mlir_src_dir/test/Integration/data/wide.mtx" \
|
||||
// RUN: mlir-cpu-runner \
|
||||
// RUN: -e entry -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: FileCheck %s
|
||||
//
|
||||
// Do the same run, but now with SIMDization as well. This should not change the outcome.
|
||||
//
|
||||
// RUN: mlir-opt %s \
|
||||
// RUN: --sparse-compiler="vectorization-strategy=any-storage-inner-loop vl=16 enable-simd-index32" | \
|
||||
// RUN: TENSOR0="%mlir_integration_test_dir/data/wide.mtx" \
|
||||
// RUN: TENSOR0="%mlir_src_dir/test/Integration/data/wide.mtx" \
|
||||
// RUN: mlir-cpu-runner \
|
||||
// RUN: -e entry -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: FileCheck %s
|
||||
|
||||
!Filename = !llvm.ptr<i8>
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
// RUN: mlir-opt %s --sparse-compiler | \
|
||||
// RUN: TENSOR0="%mlir_integration_test_dir/data/mttkrp_b.tns" \
|
||||
// RUN: TENSOR0="%mlir_src_dir/test/Integration/data/mttkrp_b.tns" \
|
||||
// RUN: mlir-cpu-runner \
|
||||
// RUN: -e entry -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: FileCheck %s
|
||||
//
|
||||
// Do the same run, but now with SIMDization as well. This should not change the outcome.
|
||||
//
|
||||
// RUN: mlir-opt %s --sparse-compiler="vectorization-strategy=any-storage-inner-loop vl=4" | \
|
||||
// RUN: TENSOR0="%mlir_integration_test_dir/data/mttkrp_b.tns" \
|
||||
// RUN: TENSOR0="%mlir_src_dir/test/Integration/data/mttkrp_b.tns" \
|
||||
// RUN: mlir-cpu-runner \
|
||||
// RUN: -e entry -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: FileCheck %s
|
||||
|
||||
!Filename = !llvm.ptr<i8>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// RUN: mlir-opt %s --sparse-compiler | \
|
||||
// RUN: mlir-cpu-runner \
|
||||
// RUN: -e entry -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: FileCheck %s
|
||||
|
||||
#DCSR = #sparse_tensor.encoding<{
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// RUN: mlir-opt %s --sparse-compiler | \
|
||||
// RUN: mlir-cpu-runner \
|
||||
// RUN: -e entry -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: FileCheck %s
|
||||
|
||||
#SparseMatrix = #sparse_tensor.encoding<{
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
// RUN: mlir-opt %s --sparse-compiler | \
|
||||
// RUN: TENSOR0="%mlir_integration_test_dir/data/test.mtx" \
|
||||
// RUN: TENSOR0="%mlir_src_dir/test/Integration/data/test.mtx" \
|
||||
// RUN: mlir-cpu-runner \
|
||||
// RUN: -e entry -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: FileCheck %s
|
||||
//
|
||||
// Do the same run, but now with SIMDization as well. This should not change the outcome.
|
||||
//
|
||||
// RUN: mlir-opt %s --sparse-compiler="vectorization-strategy=any-storage-inner-loop vl=4" | \
|
||||
// RUN: TENSOR0="%mlir_integration_test_dir/data/test.mtx" \
|
||||
// RUN: TENSOR0="%mlir_src_dir/test/Integration/data/test.mtx" \
|
||||
// RUN: mlir-cpu-runner \
|
||||
// RUN: -e entry -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: FileCheck %s
|
||||
|
||||
!Filename = !llvm.ptr<i8>
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
// RUN: mlir-opt %s --sparse-compiler | \
|
||||
// RUN: mlir-cpu-runner -e entry -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: FileCheck %s
|
||||
//
|
||||
// Do the same run, but now with SIMDization as well. This should not change the outcome.
|
||||
//
|
||||
// RUN: mlir-opt %s --sparse-compiler="vectorization-strategy=any-storage-inner-loop vl=2" | \
|
||||
// RUN: mlir-cpu-runner -e entry -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: FileCheck %s
|
||||
|
||||
#DCSR = #sparse_tensor.encoding<{ dimLevelType = [ "compressed", "compressed" ] }>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// RUN: mlir-opt %s --sparse-compiler | \
|
||||
// RUN: mlir-cpu-runner \
|
||||
// RUN: -e entry -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: FileCheck %s
|
||||
|
||||
#SparseVector = #sparse_tensor.encoding<{dimLevelType = ["compressed"]}>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// RUN: mlir-opt %s --sparse-compiler | \
|
||||
// RUN: mlir-cpu-runner \
|
||||
// RUN: -e entry -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: FileCheck %s
|
||||
|
||||
#SparseVector = #sparse_tensor.encoding<{dimLevelType = ["compressed"]}>
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
// RUN: mlir-opt %s --sparse-compiler | \
|
||||
// RUN: mlir-cpu-runner -e entry -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: FileCheck %s
|
||||
//
|
||||
// Do the same run, but now with SIMDization as well. This should not change the outcome.
|
||||
//
|
||||
// RUN: mlir-opt %s -sparse-compiler="vectorization-strategy=any-storage-inner-loop vl=8" | \
|
||||
// RUN: mlir-cpu-runner -e entry -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: FileCheck %s
|
||||
|
||||
#SV = #sparse_tensor.encoding<{ dimLevelType = [ "compressed" ] }>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// RUN: mlir-opt %s --sparse-compiler | \
|
||||
// RUN: mlir-cpu-runner -e entry -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: FileCheck %s
|
||||
|
||||
#SparseVector = #sparse_tensor.encoding<{
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
// RUN: mlir-opt %s --sparse-compiler | \
|
||||
// RUN: TENSOR0="%mlir_integration_test_dir/data/test.mtx" \
|
||||
// RUN: TENSOR0="%mlir_src_dir/test/Integration/data/test.mtx" \
|
||||
// RUN: mlir-cpu-runner \
|
||||
// RUN: -e entry -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: FileCheck %s
|
||||
//
|
||||
// Do the same run, but now with SIMDization as well. This should not change the outcome.
|
||||
//
|
||||
// RUN: mlir-opt %s \
|
||||
// RUN: --sparse-compiler="vectorization-strategy=any-storage-inner-loop vl=4 enable-simd-index32" | \
|
||||
// RUN: TENSOR0="%mlir_integration_test_dir/data/test.mtx" \
|
||||
// RUN: TENSOR0="%mlir_src_dir/test/Integration/data/test.mtx" \
|
||||
// RUN: mlir-cpu-runner \
|
||||
// RUN: -e entry -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: FileCheck %s
|
||||
//
|
||||
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
// RUN: mlir-opt %s --sparse-compiler | \
|
||||
// RUN: mlir-cpu-runner -e entry -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: FileCheck %s
|
||||
//
|
||||
// Do the same run, but now with SIMDization as well. This should not change the outcome.
|
||||
//
|
||||
// RUN: mlir-opt %s -sparse-compiler="vl=8" | \
|
||||
// RUN: mlir-cpu-runner -e entry -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: FileCheck %s
|
||||
|
||||
#SM = #sparse_tensor.encoding<{ dimLevelType = [ "compressed", "compressed" ] }>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// RUN: mlir-opt %s --sparse-compiler | \
|
||||
// RUN: mlir-cpu-runner \
|
||||
// RUN: -e entry -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: FileCheck %s
|
||||
//
|
||||
// Do the same run, but now with SIMDization as well. This should not change the outcome.
|
||||
@@ -9,7 +9,7 @@
|
||||
// RUN: mlir-opt %s --sparse-compiler="vectorization-strategy=any-storage-inner-loop vl=4" | \
|
||||
// RUN: mlir-cpu-runner \
|
||||
// RUN: -e entry -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: FileCheck %s
|
||||
|
||||
#CSR = #sparse_tensor.encoding<{ dimLevelType = [ "dense", "compressed" ] }>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// RUN: mlir-opt %s --sparse-compiler | \
|
||||
// RUN: mlir-cpu-runner \
|
||||
// RUN: -e entry -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: FileCheck %s
|
||||
|
||||
#map = affine_map<(d0, d1, d2) -> (d0, d1, d2)>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// RUN: mlir-opt %s --sparse-compiler | \
|
||||
// RUN: mlir-cpu-runner \
|
||||
// RUN: -e entry -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: FileCheck %s
|
||||
|
||||
#SparseVector = #sparse_tensor.encoding<{ dimLevelType = [ "compressed" ] }>
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
// RUN: mlir-opt %s --sparse-compiler | \
|
||||
// RUN: TENSOR0="%mlir_integration_test_dir/data/wide.mtx" \
|
||||
// RUN: TENSOR0="%mlir_src_dir/test/Integration/data/wide.mtx" \
|
||||
// RUN: mlir-cpu-runner \
|
||||
// RUN: -e entry -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: FileCheck %s
|
||||
//
|
||||
// Do the same run, but now with SIMDization as well. This should not change the outcome.
|
||||
//
|
||||
// RUN: mlir-opt %s --sparse-compiler="vectorization-strategy=any-storage-inner-loop vl=2" | \
|
||||
// RUN: TENSOR0="%mlir_integration_test_dir/data/wide.mtx" \
|
||||
// RUN: TENSOR0="%mlir_src_dir/test/Integration/data/wide.mtx" \
|
||||
// RUN: mlir-cpu-runner \
|
||||
// RUN: -e entry -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: FileCheck %s
|
||||
|
||||
!Filename = !llvm.ptr<i8>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// RUN: mlir-opt %s --sparse-compiler | \
|
||||
// RUN: mlir-cpu-runner \
|
||||
// RUN: -e entry -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: FileCheck %s
|
||||
|
||||
//
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
// RUN: mlir-opt %s --sparse-compiler | \
|
||||
// RUN: TENSOR0="%mlir_integration_test_dir/data/test_symmetric.mtx" \
|
||||
// RUN: TENSOR0="%mlir_src_dir/test/Integration/data/test_symmetric.mtx" \
|
||||
// RUN: mlir-cpu-runner \
|
||||
// RUN: -e entry -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: FileCheck %s
|
||||
//
|
||||
// Do the same run, but now with SIMDization as well. This should not change the outcome.
|
||||
//
|
||||
// RUN: mlir-opt %s --sparse-compiler="vectorization-strategy=any-storage-inner-loop vl=2" | \
|
||||
// RUN: TENSOR0="%mlir_integration_test_dir/data/test_symmetric.mtx" \
|
||||
// RUN: TENSOR0="%mlir_src_dir/test/Integration/data/test_symmetric.mtx" \
|
||||
// RUN: mlir-cpu-runner \
|
||||
// RUN: -e entry -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: FileCheck %s
|
||||
|
||||
!Filename = !llvm.ptr<i8>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// RUN: mlir-opt %s --sparse-compiler | \
|
||||
// RUN: mlir-cpu-runner \
|
||||
// RUN: -e entry -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: FileCheck %s
|
||||
|
||||
!Filename = !llvm.ptr<i8>
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
// RUN: mlir-opt %s --sparse-compiler | \
|
||||
// RUN: TENSOR0="%mlir_integration_test_dir/data/test_symmetric_complex.mtx" \
|
||||
// RUN: TENSOR0="%mlir_src_dir/test/Integration/data/test_symmetric_complex.mtx" \
|
||||
// RUN: mlir-cpu-runner \
|
||||
// RUN: -e entry -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: FileCheck %s
|
||||
|
||||
!Filename = !llvm.ptr<i8>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// RUN: mlir-opt %s --sparse-compiler | \
|
||||
// RUN: mlir-cpu-runner \
|
||||
// RUN: -e entry -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: FileCheck %s
|
||||
|
||||
!Filename = !llvm.ptr<i8>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// RUN: mlir-opt %s --sparse-compiler | \
|
||||
// RUN: mlir-cpu-runner \
|
||||
// RUN: -e entry -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: FileCheck %s
|
||||
|
||||
#SparseVector = #sparse_tensor.encoding<{ dimLevelType = [ "compressed" ] }>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// RUN: mlir-opt %s --sparse-compiler | \
|
||||
// RUN: mlir-cpu-runner \
|
||||
// RUN: -e entry -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: FileCheck %s
|
||||
|
||||
#ST = #sparse_tensor.encoding<{dimLevelType = ["compressed", "compressed", "compressed"]}>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// RUN: mlir-opt %s --sparse-compiler | \
|
||||
// RUN: mlir-cpu-runner \
|
||||
// RUN: -e entry -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: FileCheck %s
|
||||
|
||||
#ST1 = #sparse_tensor.encoding<{dimLevelType = ["compressed", "compressed", "compressed"]}>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// RUN: mlir-opt %s --sparse-compiler | \
|
||||
// RUN: mlir-cpu-runner -e entry -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: FileCheck %s
|
||||
|
||||
#DCSR = #sparse_tensor.encoding<{
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// RUN: mlir-opt %s --sparse-compiler | \
|
||||
// RUN: mlir-cpu-runner \
|
||||
// RUN: -e entry -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: FileCheck %s
|
||||
|
||||
#SparseVector = #sparse_tensor.encoding<{dimLevelType = ["compressed"]}>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// RUN: mlir-opt %s --sparse-compiler | \
|
||||
// RUN: mlir-cpu-runner \
|
||||
// RUN: -e entry -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: FileCheck %s
|
||||
|
||||
#SparseVector = #sparse_tensor.encoding<{dimLevelType = ["compressed"]}>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# RUN: SUPPORT_LIB=%mlir_runner_utils_dir/libmlir_c_runner_utils%shlibext \
|
||||
# RUN: SUPPORT_LIB=%mlir_lib_dir/libmlir_c_runner_utils%shlibext \
|
||||
# RUN: %PYTHON %s | FileCheck %s
|
||||
|
||||
import ctypes
|
||||
@@ -24,36 +24,36 @@ def sddmm_dsl(
|
||||
B=dsl.TensorDef(dsl.T, dsl.S.K, dsl.S.N),
|
||||
S=dsl.TensorDef(dsl.T, dsl.S.M, dsl.S.N),
|
||||
C=dsl.TensorDef(dsl.T, dsl.S.M, dsl.S.N, output=True)):
|
||||
C[dsl.D.m,
|
||||
dsl.D.n] += S[dsl.D.m, dsl.D.n] * A[dsl.D.m, dsl.D.k] * B[dsl.D.k, dsl.D.n]
|
||||
C[dsl.D.m,
|
||||
dsl.D.n] += S[dsl.D.m, dsl.D.n] * A[dsl.D.m, dsl.D.k] * B[dsl.D.k, dsl.D.n]
|
||||
|
||||
|
||||
def build_SDDMM(attr: st.EncodingAttr):
|
||||
"""Build SDDMM kernel.
|
||||
"""Build SDDMM kernel.
|
||||
|
||||
This method generates a linalg op with for matrix multiplication using
|
||||
just the Python API. Effectively, a generic linalg op is constructed
|
||||
that computes C(i,j) += S(i,j) SUM_k A(i,k) B(k,j) for sparse S.
|
||||
"""
|
||||
module = ir.Module.create()
|
||||
f64 = ir.F64Type.get()
|
||||
a = ir.RankedTensorType.get([8, 8], f64)
|
||||
b = ir.RankedTensorType.get([8, 8], f64)
|
||||
c = ir.RankedTensorType.get([8, 8], f64)
|
||||
s = ir.RankedTensorType.get([8, 8], f64, attr)
|
||||
arguments = [a, b, s, c]
|
||||
with ir.InsertionPoint(module.body):
|
||||
module = ir.Module.create()
|
||||
f64 = ir.F64Type.get()
|
||||
a = ir.RankedTensorType.get([8, 8], f64)
|
||||
b = ir.RankedTensorType.get([8, 8], f64)
|
||||
c = ir.RankedTensorType.get([8, 8], f64)
|
||||
s = ir.RankedTensorType.get([8, 8], f64, attr)
|
||||
arguments = [a, b, s, c]
|
||||
with ir.InsertionPoint(module.body):
|
||||
|
||||
@func.FuncOp.from_py_func(*arguments)
|
||||
def sddmm(*args):
|
||||
return sddmm_dsl(args[0], args[1], args[2], outs=[args[3]])
|
||||
@func.FuncOp.from_py_func(*arguments)
|
||||
def sddmm(*args):
|
||||
return sddmm_dsl(args[0], args[1], args[2], outs=[args[3]])
|
||||
|
||||
return module
|
||||
return module
|
||||
|
||||
|
||||
def boilerplate(attr: st.EncodingAttr):
|
||||
"""Returns boilerplate code for main driver."""
|
||||
return f"""
|
||||
"""Returns boilerplate code for main driver."""
|
||||
return f"""
|
||||
func.func @main(%a: tensor<8x8xf64>,
|
||||
%b: tensor<8x8xf64>,
|
||||
%c: tensor<8x8xf64>) -> tensor<8x8xf64> attributes {{ llvm.emit_c_interface }} {{
|
||||
@@ -69,98 +69,97 @@ func.func @main(%a: tensor<8x8xf64>,
|
||||
|
||||
|
||||
def build_compile_and_run_SDDMMM(attr: st.EncodingAttr, compiler):
|
||||
# Build.
|
||||
module = build_SDDMM(attr)
|
||||
func = str(module.operation.regions[0].blocks[0].operations[0].operation)
|
||||
module = ir.Module.parse(func + boilerplate(attr))
|
||||
# Build.
|
||||
module = build_SDDMM(attr)
|
||||
func = str(module.operation.regions[0].blocks[0].operations[0].operation)
|
||||
module = ir.Module.parse(func + boilerplate(attr))
|
||||
|
||||
# Compile.
|
||||
engine = compiler.compile_and_jit(module)
|
||||
# Compile.
|
||||
engine = compiler.compile_and_jit(module)
|
||||
|
||||
# Set up numpy input and buffer for output.
|
||||
a = np.array([[1.1, 2.1, 3.1, 4.1, 5.1, 6.1, 7.1, 8.1],
|
||||
[1.2, 2.2, 3.2, 4.2, 5.2, 6.2, 7.2, 8.2],
|
||||
[1.3, 2.3, 3.3, 4.3, 5.3, 6.3, 7.3, 8.3],
|
||||
[1.4, 2.4, 3.4, 4.4, 5.4, 6.4, 7.4, 8.4],
|
||||
[1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5],
|
||||
[1.6, 2.6, 3.6, 4.6, 5.6, 6.6, 7.6, 8.6],
|
||||
[1.7, 2.7, 3.7, 4.7, 5.7, 6.7, 7.7, 8.7],
|
||||
[1.8, 2.8, 3.8, 4.8, 5.8, 6.8, 7.8, 8.8]], np.float64)
|
||||
b = np.ones((8, 8), np.float64)
|
||||
c = np.zeros((8, 8), np.float64)
|
||||
# Set up numpy input and buffer for output.
|
||||
a = np.array([[1.1, 2.1, 3.1, 4.1, 5.1, 6.1, 7.1, 8.1],
|
||||
[1.2, 2.2, 3.2, 4.2, 5.2, 6.2, 7.2, 8.2],
|
||||
[1.3, 2.3, 3.3, 4.3, 5.3, 6.3, 7.3, 8.3],
|
||||
[1.4, 2.4, 3.4, 4.4, 5.4, 6.4, 7.4, 8.4],
|
||||
[1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5],
|
||||
[1.6, 2.6, 3.6, 4.6, 5.6, 6.6, 7.6, 8.6],
|
||||
[1.7, 2.7, 3.7, 4.7, 5.7, 6.7, 7.7, 8.7],
|
||||
[1.8, 2.8, 3.8, 4.8, 5.8, 6.8, 7.8, 8.8]], np.float64)
|
||||
b = np.ones((8, 8), np.float64)
|
||||
c = np.zeros((8, 8), np.float64)
|
||||
|
||||
mem_a = ctypes.pointer(ctypes.pointer(rt.get_ranked_memref_descriptor(a)))
|
||||
mem_b = ctypes.pointer(ctypes.pointer(rt.get_ranked_memref_descriptor(b)))
|
||||
mem_c = ctypes.pointer(ctypes.pointer(rt.get_ranked_memref_descriptor(c)))
|
||||
mem_a = ctypes.pointer(ctypes.pointer(rt.get_ranked_memref_descriptor(a)))
|
||||
mem_b = ctypes.pointer(ctypes.pointer(rt.get_ranked_memref_descriptor(b)))
|
||||
mem_c = ctypes.pointer(ctypes.pointer(rt.get_ranked_memref_descriptor(c)))
|
||||
|
||||
# Allocate a MemRefDescriptor to receive the output tensor.
|
||||
# The buffer itself is allocated inside the MLIR code generation.
|
||||
ref_out = rt.make_nd_memref_descriptor(2, ctypes.c_double)()
|
||||
mem_out = ctypes.pointer(ctypes.pointer(ref_out))
|
||||
# Allocate a MemRefDescriptor to receive the output tensor.
|
||||
# The buffer itself is allocated inside the MLIR code generation.
|
||||
ref_out = rt.make_nd_memref_descriptor(2, ctypes.c_double)()
|
||||
mem_out = ctypes.pointer(ctypes.pointer(ref_out))
|
||||
|
||||
# Invoke the kernel and get numpy output.
|
||||
# Built-in bufferization uses in-out buffers.
|
||||
# TODO: replace with inplace comprehensive bufferization.
|
||||
engine.invoke('main', mem_out, mem_a, mem_b, mem_c)
|
||||
# Invoke the kernel and get numpy output.
|
||||
# Built-in bufferization uses in-out buffers.
|
||||
# TODO: replace with inplace comprehensive bufferization.
|
||||
engine.invoke('main', mem_out, mem_a, mem_b, mem_c)
|
||||
|
||||
# Sanity check on computed result. Only a few elements
|
||||
# are sampled from the full dense matrix multiplication.
|
||||
full_matmul = np.matmul(a, b)
|
||||
expected = np.zeros((8, 8), np.float64)
|
||||
expected[0, 0] = 1.0 * full_matmul[0, 0]
|
||||
expected[0, 2] = 2.0 * full_matmul[0, 2]
|
||||
expected[4, 1] = 3.0 * full_matmul[4, 1]
|
||||
c = rt.ranked_memref_to_numpy(mem_out[0])
|
||||
if np.allclose(c, expected):
|
||||
pass
|
||||
else:
|
||||
quit(f'FAILURE')
|
||||
# Sanity check on computed result. Only a few elements
|
||||
# are sampled from the full dense matrix multiplication.
|
||||
full_matmul = np.matmul(a, b)
|
||||
expected = np.zeros((8, 8), np.float64)
|
||||
expected[0, 0] = 1.0 * full_matmul[0, 0]
|
||||
expected[0, 2] = 2.0 * full_matmul[0, 2]
|
||||
expected[4, 1] = 3.0 * full_matmul[4, 1]
|
||||
c = rt.ranked_memref_to_numpy(mem_out[0])
|
||||
if np.allclose(c, expected):
|
||||
pass
|
||||
else:
|
||||
quit(f'FAILURE')
|
||||
|
||||
|
||||
def main():
|
||||
support_lib = os.getenv('SUPPORT_LIB')
|
||||
assert support_lib is not None, 'SUPPORT_LIB is undefined'
|
||||
if not os.path.exists(support_lib):
|
||||
raise FileNotFoundError(errno.ENOENT, os.strerror(errno.ENOENT),
|
||||
support_lib)
|
||||
support_lib = os.getenv('SUPPORT_LIB')
|
||||
assert support_lib is not None, 'SUPPORT_LIB is undefined'
|
||||
if not os.path.exists(support_lib):
|
||||
raise FileNotFoundError(errno.ENOENT, os.strerror(errno.ENOENT),
|
||||
support_lib)
|
||||
|
||||
# CHECK-LABEL: TEST: testSDDMMM
|
||||
print('\nTEST: testSDDMMM')
|
||||
with ir.Context() as ctx, ir.Location.unknown():
|
||||
count = 0
|
||||
# Loop over various ways to compile and annotate the SDDMM kernel with
|
||||
# a *single* sparse tensor. Note that we deliberate do not exhaustively
|
||||
# search the full state space to reduce runtime of the test. It is
|
||||
# straightforward to adapt the code below to explore more combinations.
|
||||
levels = [[st.DimLevelType.dense, st.DimLevelType.dense],
|
||||
[st.DimLevelType.dense, st.DimLevelType.compressed],
|
||||
[st.DimLevelType.compressed, st.DimLevelType.dense],
|
||||
[st.DimLevelType.compressed, st.DimLevelType.compressed]]
|
||||
orderings = [
|
||||
ir.AffineMap.get_permutation([0, 1]),
|
||||
ir.AffineMap.get_permutation([1, 0])
|
||||
]
|
||||
vec_strategy = [
|
||||
# CHECK-LABEL: TEST: testSDDMMM
|
||||
print('\nTEST: testSDDMMM')
|
||||
with ir.Context() as ctx, ir.Location.unknown():
|
||||
count = 0
|
||||
# Loop over various ways to compile and annotate the SDDMM kernel with
|
||||
# a *single* sparse tensor. Note that we deliberate do not exhaustively
|
||||
# search the full state space to reduce runtime of the test. It is
|
||||
# straightforward to adapt the code below to explore more combinations.
|
||||
levels = [[st.DimLevelType.dense, st.DimLevelType.dense],
|
||||
[st.DimLevelType.dense, st.DimLevelType.compressed],
|
||||
[st.DimLevelType.compressed, st.DimLevelType.dense],
|
||||
[st.DimLevelType.compressed, st.DimLevelType.compressed]]
|
||||
orderings = [
|
||||
ir.AffineMap.get_permutation([0, 1]),
|
||||
ir.AffineMap.get_permutation([1, 0])
|
||||
]
|
||||
vec_strategy = [
|
||||
'none', 'dense-inner-loop'
|
||||
]
|
||||
for level in levels:
|
||||
for ordering in orderings:
|
||||
for pwidth in [32]:
|
||||
for iwidth in [32]:
|
||||
for vec in vec_strategy:
|
||||
for e in [True]:
|
||||
vl = 1 if vec == 0 else 16
|
||||
attr = st.EncodingAttr.get(level, ordering, pwidth, iwidth)
|
||||
opt = (f'parallelization-strategy=none '
|
||||
f'vectorization-strategy={vec} '
|
||||
f'vl={vl} enable-simd-index32={e}')
|
||||
compiler = sparse_compiler.SparseCompiler(
|
||||
options=opt, opt_level=0, shared_libs=[support_lib])
|
||||
build_compile_and_run_SDDMMM(attr, compiler)
|
||||
count = count + 1
|
||||
# CHECK: Passed 16 tests
|
||||
print('Passed ', count, 'tests')
|
||||
]for level in levels:
|
||||
for ordering in orderings:
|
||||
for pwidth in [32]:
|
||||
for iwidth in [32]:
|
||||
for vec in vec_strategy:
|
||||
for e in [True]:
|
||||
vl = 1 if vec == 0 else 16
|
||||
attr = st.EncodingAttr.get(level, ordering, pwidth, iwidth)
|
||||
opt = (f'parallelization-strategy=none '
|
||||
f'vectorization-strategy={vec} '
|
||||
f'vl={vl} enable-simd-index32={e}')
|
||||
compiler = sparse_compiler.SparseCompiler(
|
||||
options=opt, opt_level=0, shared_libs=[support_lib])
|
||||
build_compile_and_run_SDDMMM(attr, compiler)
|
||||
count = count + 1
|
||||
# CHECK: Passed 16 tests
|
||||
print('Passed ', count, 'tests')
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
main()
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# RUN: SUPPORT_LIB=%mlir_runner_utils_dir/libmlir_c_runner_utils%shlibext \
|
||||
# RUN: SUPPORT_LIB=%mlir_lib_dir/libmlir_c_runner_utils%shlibext \
|
||||
# RUN: %PYTHON %s | FileCheck %s
|
||||
|
||||
import ctypes
|
||||
@@ -23,40 +23,40 @@ def matmul_dsl(
|
||||
A=dsl.TensorDef(dsl.T, dsl.S.M, dsl.S.K),
|
||||
B=dsl.TensorDef(dsl.T, dsl.S.K, dsl.S.N),
|
||||
C=dsl.TensorDef(dsl.T, dsl.S.M, dsl.S.N, output=True)):
|
||||
C[dsl.D.m, dsl.D.n] += A[dsl.D.m, dsl.D.k] * B[dsl.D.k, dsl.D.n]
|
||||
C[dsl.D.m, dsl.D.n] += A[dsl.D.m, dsl.D.k] * B[dsl.D.k, dsl.D.n]
|
||||
|
||||
|
||||
def build_SpMM(attr: st.EncodingAttr):
|
||||
"""Build SpMM kernel.
|
||||
"""Build SpMM kernel.
|
||||
|
||||
This method generates a linalg op with for matrix multiplication using
|
||||
just the Python API. Effectively, a generic linalg op is constructed
|
||||
that computes C(i,j) += A(i,k) * B(k,j) for annotated matrix A.
|
||||
"""
|
||||
module = ir.Module.create()
|
||||
f64 = ir.F64Type.get()
|
||||
a = ir.RankedTensorType.get([3, 4], f64, attr)
|
||||
b = ir.RankedTensorType.get([4, 2], f64)
|
||||
c = ir.RankedTensorType.get([3, 2], f64)
|
||||
arguments = [a, b, c]
|
||||
with ir.InsertionPoint(module.body):
|
||||
module = ir.Module.create()
|
||||
f64 = ir.F64Type.get()
|
||||
a = ir.RankedTensorType.get([3, 4], f64, attr)
|
||||
b = ir.RankedTensorType.get([4, 2], f64)
|
||||
c = ir.RankedTensorType.get([3, 2], f64)
|
||||
arguments = [a, b, c]
|
||||
with ir.InsertionPoint(module.body):
|
||||
|
||||
@func.FuncOp.from_py_func(*arguments)
|
||||
def spMxM(*args):
|
||||
return matmul_dsl(args[0], args[1], outs=[args[2]])
|
||||
@func.FuncOp.from_py_func(*arguments)
|
||||
def spMxM(*args):
|
||||
return matmul_dsl(args[0], args[1], outs=[args[2]])
|
||||
|
||||
return module
|
||||
return module
|
||||
|
||||
|
||||
def boilerplate(attr: st.EncodingAttr):
|
||||
"""Returns boilerplate main method.
|
||||
"""Returns boilerplate main method.
|
||||
|
||||
This method sets up a boilerplate main method that takes three tensors
|
||||
(a, b, c), converts the first tensor a into s sparse tensor, and then
|
||||
calls the sparse kernel for matrix multiplication. For convenience,
|
||||
this part is purely done as string input.
|
||||
"""
|
||||
return f"""
|
||||
return f"""
|
||||
func.func @main(%ad: tensor<3x4xf64>, %b: tensor<4x2xf64>, %c: tensor<3x2xf64>) -> tensor<3x2xf64>
|
||||
attributes {{ llvm.emit_c_interface }} {{
|
||||
%a = sparse_tensor.convert %ad : tensor<3x4xf64> to tensor<3x4xf64, {attr}>
|
||||
@@ -69,83 +69,84 @@ func.func @main(%ad: tensor<3x4xf64>, %b: tensor<4x2xf64>, %c: tensor<3x2xf64>)
|
||||
|
||||
|
||||
def build_compile_and_run_SpMM(attr: st.EncodingAttr, compiler):
|
||||
# Build.
|
||||
module = build_SpMM(attr)
|
||||
func = str(module.operation.regions[0].blocks[0].operations[0].operation)
|
||||
module = ir.Module.parse(func + boilerplate(attr))
|
||||
# Build.
|
||||
module = build_SpMM(attr)
|
||||
func = str(module.operation.regions[0].blocks[0].operations[0].operation)
|
||||
module = ir.Module.parse(func + boilerplate(attr))
|
||||
|
||||
# Compile.
|
||||
engine = compiler.compile_and_jit(module)
|
||||
# Compile.
|
||||
engine = compiler.compile_and_jit(module)
|
||||
|
||||
# Set up numpy input and buffer for output.
|
||||
a = np.array(
|
||||
[[1.1, 0.0, 0.0, 1.4], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 3.3, 0.0]],
|
||||
np.float64)
|
||||
b = np.array([[1.0, 2.0], [4.0, 3.0], [5.0, 6.0], [8.0, 7.0]], np.float64)
|
||||
c = np.zeros((3, 2), np.float64)
|
||||
# Set up numpy input and buffer for output.
|
||||
a = np.array(
|
||||
[[1.1, 0.0, 0.0, 1.4], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 3.3, 0.0]],
|
||||
np.float64)
|
||||
b = np.array([[1.0, 2.0], [4.0, 3.0], [5.0, 6.0], [8.0, 7.0]], np.float64)
|
||||
c = np.zeros((3, 2), np.float64)
|
||||
|
||||
mem_a = ctypes.pointer(ctypes.pointer(rt.get_ranked_memref_descriptor(a)))
|
||||
mem_b = ctypes.pointer(ctypes.pointer(rt.get_ranked_memref_descriptor(b)))
|
||||
mem_c = ctypes.pointer(ctypes.pointer(rt.get_ranked_memref_descriptor(c)))
|
||||
# Allocate a MemRefDescriptor to receive the output tensor.
|
||||
# The buffer itself is allocated inside the MLIR code generation.
|
||||
ref_out = rt.make_nd_memref_descriptor(2, ctypes.c_double)()
|
||||
mem_out = ctypes.pointer(ctypes.pointer(ref_out))
|
||||
mem_a = ctypes.pointer(ctypes.pointer(rt.get_ranked_memref_descriptor(a)))
|
||||
mem_b = ctypes.pointer(ctypes.pointer(rt.get_ranked_memref_descriptor(b)))
|
||||
mem_c = ctypes.pointer(ctypes.pointer(rt.get_ranked_memref_descriptor(c)))
|
||||
# Allocate a MemRefDescriptor to receive the output tensor.
|
||||
# The buffer itself is allocated inside the MLIR code generation.
|
||||
ref_out = rt.make_nd_memref_descriptor(2, ctypes.c_double)()
|
||||
mem_out = ctypes.pointer(ctypes.pointer(ref_out))
|
||||
|
||||
# Invoke the kernel and get numpy output.
|
||||
# Built-in bufferization uses in-out buffers.
|
||||
# TODO: replace with inplace comprehensive bufferization.
|
||||
engine.invoke('main', mem_out, mem_a, mem_b, mem_c)
|
||||
# Invoke the kernel and get numpy output.
|
||||
# Built-in bufferization uses in-out buffers.
|
||||
# TODO: replace with inplace comprehensive bufferization.
|
||||
engine.invoke('main', mem_out, mem_a, mem_b, mem_c)
|
||||
|
||||
# Sanity check on computed result.
|
||||
expected = np.matmul(a, b);
|
||||
c = rt.ranked_memref_to_numpy(mem_out[0])
|
||||
if np.allclose(c, expected):
|
||||
pass
|
||||
else:
|
||||
quit(f'FAILURE')
|
||||
# Sanity check on computed result.
|
||||
expected = np.matmul(a, b);
|
||||
c = rt.ranked_memref_to_numpy(mem_out[0])
|
||||
if np.allclose(c, expected):
|
||||
pass
|
||||
else:
|
||||
quit(f'FAILURE')
|
||||
|
||||
|
||||
def main():
|
||||
support_lib = os.getenv('SUPPORT_LIB')
|
||||
assert support_lib is not None, 'SUPPORT_LIB is undefined'
|
||||
if not os.path.exists(support_lib):
|
||||
raise FileNotFoundError(errno.ENOENT, os.strerror(errno.ENOENT), support_lib)
|
||||
support_lib = os.getenv('SUPPORT_LIB')
|
||||
assert support_lib is not None, 'SUPPORT_LIB is undefined'
|
||||
if not os.path.exists(support_lib):
|
||||
raise FileNotFoundError(errno.ENOENT, os.strerror(errno.ENOENT), support_lib)
|
||||
|
||||
# CHECK-LABEL: TEST: testSpMM
|
||||
print('\nTEST: testSpMM')
|
||||
with ir.Context() as ctx, ir.Location.unknown():
|
||||
count = 0
|
||||
# Loop over various ways to compile and annotate the SpMM kernel with
|
||||
# a *single* sparse tensor. Note that we deliberate do not exhaustively
|
||||
# search the full state space to reduce runtime of the test. It is
|
||||
# straightforward to adapt the code below to explore more combinations.
|
||||
vl = 1
|
||||
e = False
|
||||
opt = (f'parallelization-strategy=none '
|
||||
f'vectorization-strategy=none '
|
||||
f'vl={vl} enable-simd-index32={e}')
|
||||
levels = [[st.DimLevelType.dense, st.DimLevelType.dense],
|
||||
[st.DimLevelType.dense, st.DimLevelType.compressed],
|
||||
[st.DimLevelType.compressed, st.DimLevelType.dense],
|
||||
[st.DimLevelType.compressed, st.DimLevelType.compressed]]
|
||||
orderings = [
|
||||
ir.AffineMap.get_permutation([0, 1]),
|
||||
ir.AffineMap.get_permutation([1, 0])
|
||||
]
|
||||
bitwidths = [0]
|
||||
compiler = sparse_compiler.SparseCompiler(
|
||||
options=opt, opt_level=0, shared_libs=[support_lib])
|
||||
for level in levels:
|
||||
for ordering in orderings:
|
||||
for pwidth in bitwidths:
|
||||
for iwidth in bitwidths:
|
||||
attr = st.EncodingAttr.get(level, ordering, pwidth, iwidth)
|
||||
build_compile_and_run_SpMM(attr, compiler)
|
||||
count = count + 1
|
||||
# CHECK: Passed 8 tests
|
||||
print('Passed ', count, 'tests')
|
||||
# CHECK-LABEL: TEST: testSpMM
|
||||
print('\nTEST: testSpMM')
|
||||
with ir.Context() as ctx, ir.Location.unknown():
|
||||
count = 0
|
||||
# Loop over various ways to compile and annotate the SpMM kernel with
|
||||
# a *single* sparse tensor. Note that we deliberate do not exhaustively
|
||||
# search the full state space to reduce runtime of the test. It is
|
||||
# straightforward to adapt the code below to explore more combinations.
|
||||
|
||||
vl = 1
|
||||
e = False
|
||||
opt = (f'parallelization-strategy=none '
|
||||
f'vectorization-strategy=none '
|
||||
f'vl={vl} enable-simd-index32={e}')
|
||||
levels = [[st.DimLevelType.dense, st.DimLevelType.dense],
|
||||
[st.DimLevelType.dense, st.DimLevelType.compressed],
|
||||
[st.DimLevelType.compressed, st.DimLevelType.dense],
|
||||
[st.DimLevelType.compressed, st.DimLevelType.compressed]]
|
||||
orderings = [
|
||||
ir.AffineMap.get_permutation([0, 1]),
|
||||
ir.AffineMap.get_permutation([1, 0])
|
||||
]
|
||||
bitwidths = [0]
|
||||
compiler = sparse_compiler.SparseCompiler(
|
||||
options=opt, opt_level=0, shared_libs=[support_lib])
|
||||
for level in levels:
|
||||
for ordering in orderings:
|
||||
for pwidth in bitwidths:
|
||||
for iwidth in bitwidths:
|
||||
attr = st.EncodingAttr.get(level, ordering, pwidth, iwidth)
|
||||
build_compile_and_run_SpMM(attr, compiler)
|
||||
count = count + 1
|
||||
# CHECK: Passed 8 tests
|
||||
print('Passed ', count, 'tests')
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
main()
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# RUN: SUPPORT_LIB=%mlir_runner_utils_dir/libmlir_c_runner_utils%shlibext %PYTHON %s | FileCheck %s
|
||||
# RUN: SUPPORT_LIB=%mlir_lib_dir/libmlir_c_runner_utils%shlibext %PYTHON %s | FileCheck %s
|
||||
|
||||
import ctypes
|
||||
import numpy as np
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# RUN: SUPPORT_LIB=%mlir_runner_utils_dir/libmlir_c_runner_utils%shlibext \
|
||||
# RUN: SUPPORT_LIB=%mlir_lib_dir/libmlir_c_runner_utils%shlibext \
|
||||
# RUN: %PYTHON %s | FileCheck %s
|
||||
|
||||
import ctypes
|
||||
@@ -18,8 +18,8 @@ from tools import sparse_compiler
|
||||
|
||||
# TODO: move more into actual IR building.
|
||||
def boilerplate(attr: st.EncodingAttr):
|
||||
"""Returns boilerplate main method."""
|
||||
return f"""
|
||||
"""Returns boilerplate main method."""
|
||||
return f"""
|
||||
func.func @main(%p : !llvm.ptr<i8>) -> () attributes {{ llvm.emit_c_interface }} {{
|
||||
%d = arith.constant sparse<[[0, 0], [1, 1], [0, 9], [9, 0], [4, 4]],
|
||||
[1.0, 2.0, 3.0, 4.0, 5.0]> : tensor<10x10xf64>
|
||||
@@ -31,13 +31,13 @@ func.func @main(%p : !llvm.ptr<i8>) -> () attributes {{ llvm.emit_c_interface }}
|
||||
|
||||
|
||||
def expected():
|
||||
"""Returns expected contents of output.
|
||||
"""Returns expected contents of output.
|
||||
|
||||
Regardless of the dimension ordering, compression, and bitwidths that are
|
||||
used in the sparse tensor, the output is always lexicographically sorted
|
||||
by natural index order.
|
||||
"""
|
||||
return f"""; extended FROSTT format
|
||||
return f"""; extended FROSTT format
|
||||
2 5
|
||||
10 10
|
||||
1 1 1
|
||||
@@ -49,53 +49,53 @@ def expected():
|
||||
|
||||
|
||||
def build_compile_and_run_output(attr: st.EncodingAttr, compiler):
|
||||
# Build and Compile.
|
||||
module = ir.Module.parse(boilerplate(attr))
|
||||
engine = compiler.compile_and_jit(module)
|
||||
# Build and Compile.
|
||||
module = ir.Module.parse(boilerplate(attr))
|
||||
engine = compiler.compile_and_jit(module)
|
||||
|
||||
# Invoke the kernel and compare output.
|
||||
with tempfile.TemporaryDirectory() as test_dir:
|
||||
out = os.path.join(test_dir, 'out.tns')
|
||||
buf = out.encode('utf-8')
|
||||
mem_a = ctypes.pointer(ctypes.pointer(ctypes.create_string_buffer(buf)))
|
||||
engine.invoke('main', mem_a)
|
||||
# Invoke the kernel and compare output.
|
||||
with tempfile.TemporaryDirectory() as test_dir:
|
||||
out = os.path.join(test_dir, 'out.tns')
|
||||
buf = out.encode('utf-8')
|
||||
mem_a = ctypes.pointer(ctypes.pointer(ctypes.create_string_buffer(buf)))
|
||||
engine.invoke('main', mem_a)
|
||||
|
||||
actual = open(out).read()
|
||||
if actual != expected():
|
||||
quit('FAILURE')
|
||||
actual = open(out).read()
|
||||
if actual != expected():
|
||||
quit('FAILURE')
|
||||
|
||||
|
||||
def main():
|
||||
support_lib = os.getenv('SUPPORT_LIB')
|
||||
assert support_lib is not None, 'SUPPORT_LIB is undefined'
|
||||
if not os.path.exists(support_lib):
|
||||
raise FileNotFoundError(errno.ENOENT, os.strerror(errno.ENOENT),
|
||||
support_lib)
|
||||
support_lib = os.getenv('SUPPORT_LIB')
|
||||
assert support_lib is not None, 'SUPPORT_LIB is undefined'
|
||||
if not os.path.exists(support_lib):
|
||||
raise FileNotFoundError(errno.ENOENT, os.strerror(errno.ENOENT),
|
||||
support_lib)
|
||||
|
||||
# CHECK-LABEL: TEST: test_output
|
||||
print('\nTEST: test_output')
|
||||
count = 0
|
||||
with ir.Context() as ctx, ir.Location.unknown():
|
||||
# Loop over various sparse types: CSR, DCSR, CSC, DCSC.
|
||||
levels = [[st.DimLevelType.dense, st.DimLevelType.compressed],
|
||||
[st.DimLevelType.compressed, st.DimLevelType.compressed]]
|
||||
orderings = [
|
||||
ir.AffineMap.get_permutation([0, 1]),
|
||||
ir.AffineMap.get_permutation([1, 0])
|
||||
]
|
||||
bitwidths = [8, 16, 32, 64]
|
||||
compiler = sparse_compiler.SparseCompiler(
|
||||
options='', opt_level=2, shared_libs=[support_lib])
|
||||
for level in levels:
|
||||
for ordering in orderings:
|
||||
for bwidth in bitwidths:
|
||||
attr = st.EncodingAttr.get(level, ordering, bwidth, bwidth)
|
||||
build_compile_and_run_output(attr, compiler)
|
||||
count = count + 1
|
||||
# CHECK-LABEL: TEST: test_output
|
||||
print('\nTEST: test_output')
|
||||
count = 0
|
||||
with ir.Context() as ctx, ir.Location.unknown():
|
||||
# Loop over various sparse types: CSR, DCSR, CSC, DCSC.
|
||||
levels = [[st.DimLevelType.dense, st.DimLevelType.compressed],
|
||||
[st.DimLevelType.compressed, st.DimLevelType.compressed]]
|
||||
orderings = [
|
||||
ir.AffineMap.get_permutation([0, 1]),
|
||||
ir.AffineMap.get_permutation([1, 0])
|
||||
]
|
||||
bitwidths = [8, 16, 32, 64]
|
||||
compiler = sparse_compiler.SparseCompiler(
|
||||
options='', opt_level=2, shared_libs=[support_lib])
|
||||
for level in levels:
|
||||
for ordering in orderings:
|
||||
for bwidth in bitwidths:
|
||||
attr = st.EncodingAttr.get(level, ordering, bwidth, bwidth)
|
||||
build_compile_and_run_output(attr, compiler)
|
||||
count = count + 1
|
||||
|
||||
# CHECK: Passed 16 tests
|
||||
print('Passed', count, 'tests')
|
||||
# CHECK: Passed 16 tests
|
||||
print('Passed', count, 'tests')
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
main()
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# RUN: SUPPORT_LIB=%mlir_runner_utils_dir/libmlir_c_runner_utils%shlibext \
|
||||
# RUN: SUPPORT_LIB=%mlir_lib_dir/libmlir_c_runner_utils%shlibext \
|
||||
# RUN: %PYTHON %s | FileCheck %s
|
||||
|
||||
import ctypes
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# RUN: SUPPORTLIB=%mlir_runner_utils_dir/libmlir_c_runner_utils%shlibext %PYTHON %s | FileCheck %s
|
||||
# RUN: SUPPORTLIB=%mlir_lib_dir/libmlir_c_runner_utils%shlibext %PYTHON %s | FileCheck %s
|
||||
|
||||
import numpy as np
|
||||
import os
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# RUN: SUPPORTLIB=%mlir_runner_utils_dir/libmlir_c_runner_utils%shlibext %PYTHON %s | FileCheck %s
|
||||
# RUN: SUPPORTLIB=%mlir_lib_dir/libmlir_c_runner_utils%shlibext %PYTHON %s | FileCheck %s
|
||||
|
||||
import filecmp
|
||||
import numpy as np
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# RUN: SUPPORTLIB=%mlir_runner_utils_dir/libmlir_c_runner_utils%shlibext %PYTHON %s | FileCheck %s
|
||||
# RUN: SUPPORTLIB=%mlir_lib_dir/libmlir_c_runner_utils%shlibext %PYTHON %s | FileCheck %s
|
||||
|
||||
import filecmp
|
||||
import numpy as np
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# RUN: SUPPORTLIB=%mlir_runner_utils_dir/libmlir_c_runner_utils%shlibext %PYTHON %s | FileCheck %s
|
||||
# RUN: SUPPORTLIB=%mlir_lib_dir/libmlir_c_runner_utils%shlibext %PYTHON %s | FileCheck %s
|
||||
|
||||
import numpy as np
|
||||
import os
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# RUN: SUPPORTLIB=%mlir_runner_utils_dir/libmlir_c_runner_utils%shlibext %PYTHON %s | FileCheck %s
|
||||
# RUN: SUPPORTLIB=%mlir_lib_dir/libmlir_c_runner_utils%shlibext %PYTHON %s | FileCheck %s
|
||||
|
||||
import filecmp
|
||||
import numpy as np
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# RUN: SUPPORTLIB=%mlir_runner_utils_dir/libmlir_c_runner_utils%shlibext %PYTHON %s | FileCheck %s
|
||||
# RUN: SUPPORTLIB=%mlir_lib_dir/libmlir_c_runner_utils%shlibext %PYTHON %s | FileCheck %s
|
||||
|
||||
import numpy as np
|
||||
import os
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# RUN: SUPPORTLIB=%mlir_runner_utils_dir/libmlir_c_runner_utils%shlibext %PYTHON %s | FileCheck %s
|
||||
# RUN: SUPPORTLIB=%mlir_lib_dir/libmlir_c_runner_utils%shlibext %PYTHON %s | FileCheck %s
|
||||
|
||||
import numpy as np
|
||||
import os
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# RUN: SUPPORTLIB=%mlir_runner_utils_dir/libmlir_c_runner_utils%shlibext %PYTHON %s | FileCheck %s
|
||||
# RUN: SUPPORTLIB=%mlir_lib_dir/libmlir_c_runner_utils%shlibext %PYTHON %s | FileCheck %s
|
||||
import numpy as np
|
||||
import os
|
||||
import sys
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# RUN: SUPPORTLIB=%mlir_runner_utils_dir/libmlir_c_runner_utils%shlibext %PYTHON %s | FileCheck %s
|
||||
# RUN: SUPPORTLIB=%mlir_lib_dir/libmlir_c_runner_utils%shlibext %PYTHON %s | FileCheck %s
|
||||
|
||||
import numpy as np
|
||||
import os
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# RUN: SUPPORTLIB=%mlir_runner_utils_dir/libmlir_c_runner_utils%shlibext %PYTHON %s | FileCheck %s
|
||||
# RUN: SUPPORTLIB=%mlir_lib_dir/libmlir_c_runner_utils%shlibext %PYTHON %s | FileCheck %s
|
||||
|
||||
import numpy as np
|
||||
import os
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# RUN: SUPPORTLIB=%mlir_runner_utils_dir/libmlir_c_runner_utils%shlibext %PYTHON %s | FileCheck %s
|
||||
# RUN: SUPPORTLIB=%mlir_lib_dir/libmlir_c_runner_utils%shlibext %PYTHON %s | FileCheck %s
|
||||
|
||||
import numpy as np
|
||||
import os
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# RUN: SUPPORTLIB=%mlir_runner_utils_dir/libmlir_c_runner_utils%shlibext %PYTHON %s | FileCheck %s
|
||||
# RUN: SUPPORTLIB=%mlir_lib_dir/libmlir_c_runner_utils%shlibext %PYTHON %s | FileCheck %s
|
||||
|
||||
from string import Template
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# RUN: SUPPORTLIB=%mlir_runner_utils_dir/libmlir_c_runner_utils%shlibext %PYTHON %s | FileCheck %s
|
||||
# RUN: SUPPORTLIB=%mlir_lib_dir/libmlir_c_runner_utils%shlibext %PYTHON %s | FileCheck %s
|
||||
|
||||
from string import Template
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# RUN: SUPPORTLIB=%mlir_runner_utils_dir/libmlir_c_runner_utils%shlibext %PYTHON %s | FileCheck %s
|
||||
# RUN: SUPPORTLIB=%mlir_lib_dir/libmlir_c_runner_utils%shlibext %PYTHON %s | FileCheck %s
|
||||
|
||||
from typing import Sequence
|
||||
import dataclasses
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// RUN: mlir-opt %s -pass-pipeline="func.func(convert-vector-to-scf,lower-affine,convert-scf-to-cf,memref-expand,arith-expand),convert-vector-to-llvm,convert-memref-to-llvm,convert-func-to-llvm,reconcile-unrealized-casts" | \
|
||||
// RUN: mlir-cpu-runner -e entry -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: FileCheck %s
|
||||
|
||||
func.func @transfer_read_2d(%A : memref<40xi32>, %base1: index) {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// RUN: mlir-opt %s -convert-memref-to-llvm -convert-func-to-llvm -reconcile-unrealized-casts | \
|
||||
// RUN: mlir-cpu-runner -e main -entry-point-result=void \
|
||||
// RUN: -shared-libs=%mlir_integration_test_dir/libmlir_runner_utils%shlibext | FileCheck %s
|
||||
// RUN: -shared-libs=%mlir_lib_dir/libmlir_runner_utils%shlibext | FileCheck %s
|
||||
|
||||
memref.global "private" constant @__constant_5x3xf32 : memref<5x3xf32> =
|
||||
dense<[[0.0, 1.0, 2.0],
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
// RUN: -convert-memref-to-llvm -convert-func-to-llvm -reconcile-unrealized-casts | \
|
||||
// RUN: mlir-translate -mlir-to-llvmir | \
|
||||
// RUN: %lli --entry-function=entry --mattr="+amx-tile,+amx-int8,+amx-bf16" \
|
||||
// RUN: --dlopen=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: --dlopen=%mlir_lib_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: FileCheck %s
|
||||
|
||||
// Note: To run this test, your CPU must support AMX.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// RUN: mlir-opt %s -convert-vector-to-scf -lower-affine -convert-scf-to-cf -convert-vector-to-llvm="enable-amx" -convert-memref-to-llvm -convert-func-to-llvm -reconcile-unrealized-casts | \
|
||||
// RUN: mlir-translate -mlir-to-llvmir | \
|
||||
// RUN: %lli --entry-function=entry --mattr="+amx-tile,+amx-int8,+amx-bf16" --dlopen=%mlir_integration_test_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: %lli --entry-function=entry --mattr="+amx-tile,+amx-int8,+amx-bf16" --dlopen=%mlir_lib_dir/libmlir_c_runner_utils%shlibext | \
|
||||
// RUN: FileCheck %s
|
||||
|
||||
// Note: To run this test, your CPU must support AMX.
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user