################################################################################
# Autogenerated by build_tools/bazel_to_cmake/bazel_to_cmake.py from           #
# tools/test/BUILD.bazel                                                       #
#                                                                              #
# Use iree_cmake_extra_content from iree/build_defs.oss.bzl to add arbitrary   #
# CMake-only content.                                                          #
#                                                                              #
# To disable autogeneration for this file entirely, delete this header.        #
################################################################################

iree_add_all_subdirs()

iree_lit_test_suite(
  NAME
    lit
  SRCS
    "benchmark_flags.txt"
    "compile_pipelines.mlir"
    "compile_to_continuation.mlir"
    "compile_to_phase.mlir"
    "executable_benchmarks.mlir"
    "executable_configurations.mlir"
    "executable_sources.mlir"
    "iree-benchmark-executable.mlir"
    "iree-benchmark-module.mlir"
    "iree-dump-parameters.txt"
    "iree-run-mlir.mlir"
    "iree-run-module-expected.mlir"
    "iree-run-module-inputs.mlir"
    "iree-run-module-outputs.mlir"
    "iree-run-module.mlir"
    "multiple_args.mlir"
    "multiple_exported_functions.mlir"
    "null_values.mlir"
    "parameters_scoped.mlir"
    "parameters_unscoped.mlir"
    "repeated_return.mlir"
    "scalars.mlir"
  TOOLS
    ${IREE_LLD_TARGET}
    FileCheck
    iree-benchmark-executable
    iree-benchmark-module
    iree-compile
    iree-dump-parameters
    iree-opt
    iree-run-mlir
    iree-run-module
    not
  DATA
    echo_npy.py
    parameters_a.safetensors
    parameters_b.safetensors
  LABELS
    "driver=local-task"
    "hostonly"
)

### BAZEL_TO_CMAKE_PRESERVES_ALL_CONTENT_BELOW_THIS_LINE ###

if(IREE_BUILD_TESTS AND
   (IREE_TARGET_BACKEND_VMVX OR IREE_HOST_BIN_DIR) AND
   IREE_HAL_DRIVER_LOCAL_SYNC)
  iree_bytecode_module(
    NAME
      iree_run_module_bytecode_module_vmvx
    SRC
      "iree-run-module.mlir"
    MODULE_FILE_NAME
      "iree_run_module_bytecode_module_vmvx.vmfb"
    FLAGS
      "--iree-hal-target-backends=vmvx"
  )

  iree_run_module_test(
    NAME
      iree_run_module_correctness_test
    MODULE_SRC
      "${CMAKE_CURRENT_BINARY_DIR}/iree_run_module_bytecode_module_vmvx.vmfb"
    DRIVER
      "local-sync"
    RUNNER_ARGS
      "--function=abs"
      "--input=2xf32=-10 -5"
    EXPECTED_OUTPUT
      "2xf32=10 5"
    DEPS
      iree_tools_test_iree_run_module_bytecode_module_vmvx
  )
endif()
