Add smoke tests to test inline hal compilation flow (#12731)
Running iree-compile with `--iree-execution-model=inline-{static,
dynamic}` and check if there is any hal IR not registered for inline HALdiff --git a/tests/compiler_driver/BUILD.bazel b/tests/compiler_driver/BUILD.bazel
index 858e0b8..8c3a477 100644
--- a/tests/compiler_driver/BUILD.bazel
+++ b/tests/compiler_driver/BUILD.bazel
@@ -20,6 +20,8 @@
[
"executable_benchmarks.mlir",
"hal_executable.mlir",
+ "inline_dynamic_hal_executable.mlir",
+ "inline_static_hal_executable.mlir",
"preprocessing_flags.mlir",
"smoketest.mlir",
"streams.mlir",
diff --git a/tests/compiler_driver/CMakeLists.txt b/tests/compiler_driver/CMakeLists.txt
index f53008b..67c5ace 100644
--- a/tests/compiler_driver/CMakeLists.txt
+++ b/tests/compiler_driver/CMakeLists.txt
@@ -16,6 +16,8 @@
SRCS
"executable_benchmarks.mlir"
"hal_executable.mlir"
+ "inline_dynamic_hal_executable.mlir"
+ "inline_static_hal_executable.mlir"
"preprocessing_flags.mlir"
"smoketest.mlir"
"streams.mlir"
diff --git a/tests/compiler_driver/inline_dynamic_hal_executable.mlir b/tests/compiler_driver/inline_dynamic_hal_executable.mlir
new file mode 100644
index 0000000..474710d
--- /dev/null
+++ b/tests/compiler_driver/inline_dynamic_hal_executable.mlir
@@ -0,0 +1,18 @@
+// RUN: iree-compile \
+// RUN: --compile-to=hal \
+// RUN: --mlir-print-ir-after-all \
+// RUN: --iree-execution-model=inline-dynamic \
+// RUN: --iree-hal-target-backends=vmvx %s | FileCheck %s
+
+func.func @simple_mul(%arg0: tensor<4xf32>, %arg1: tensor<4xf32>) -> (tensor<4xf32>, tensor<4xf32>) {
+ %0 = arith.mulf %arg0, %arg1 : tensor<4xf32>
+ return %0, %arg0 : tensor<4xf32>, tensor<4xf32>
+}
+
+// Check the IR not registered as iree_hal_module_register_loader_types
+// CHECK-NOT: hal.command_buffer
+// CHECK-NOT: hal.allocator
+// CHECK-NOT: hal.event
+// CHECK-NOT: hal.fence
+// CHECK-NOT: hal.pipeline_layout
+// CHECK-NOT: hal.semaphore
diff --git a/tests/compiler_driver/inline_static_hal_executable.mlir b/tests/compiler_driver/inline_static_hal_executable.mlir
new file mode 100644
index 0000000..9e89943
--- /dev/null
+++ b/tests/compiler_driver/inline_static_hal_executable.mlir
@@ -0,0 +1,22 @@
+// RUN: iree-compile \
+// RUN: --compile-to=hal \
+// RUN: --mlir-print-ir-after-all \
+// RUN: --iree-execution-model=inline-static \
+// RUN: --iree-hal-target-backends=vmvx-inline %s | FileCheck %s
+
+func.func @simple_mul(%arg0: tensor<4xf32>, %arg1: tensor<4xf32>) -> (tensor<4xf32>, tensor<4xf32>) {
+ %0 = arith.mulf %arg0, %arg1 : tensor<4xf32>
+ return %0, %arg0 : tensor<4xf32>, tensor<4xf32>
+}
+
+// Check the IR not registered as iree_hal_module_register_inline_types
+// CHECK-NOT: hal.command_buffer
+// CHECK-NOT: hal.allocator
+// CHECK-NOT: hal.event
+// CHECK-NOT: hal.fence
+// CHECK-NOT: hal.pipeline_layout
+// CHECK-NOT: hal.semaphore
+// CHECK-NOT: hal.executable
+
+// TODO(#12586): Remove this after the issue is fixed.
+// XFAIL: *