################################################################################
# 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
    "compile_pipelines.mlir"
    "compile_to_continuation.mlir"
    "compile_to_phase.mlir"
    "executable_benchmarks.mlir"
    "executable_sources.mlir"
    "iree-benchmark-module.mlir"
    "iree-run-mlir.mlir"
    "iree-run-module-expected.mlir"
    "iree-run-module-outputs.mlir"
    "iree-run-module.mlir"
    "iree-run-trace.mlir"
    "multiple_args.mlir"
    "multiple_exported_functions.mlir"
    "null_values.mlir"
    "repeated_return.mlir"
    "scalars.mlir"
  TOOLS
    ${IREE_LLD_TARGET}
    FileCheck
    iree-benchmark-module
    iree-benchmark-trace
    iree-compile
    iree-opt
    iree-run-mlir
    iree-run-module
    iree-run-trace
    not
  DATA
    echo_npy.py
    iree-run-trace.yml
  LABELS
    "driver=local-task"
    "driver=vulkan"
    "hostonly"
)

iree_lit_test_suite(
  NAME
    benchmark_flags
  SRCS
    "benchmark_flags.txt"
  TOOLS
    FileCheck
    iree-benchmark-module
    iree-compile
  LABELS
    "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=f32=-10"
    EXPECTED_OUTPUT
      "f32=10"
    DEPS
      iree_tools_test_iree_run_module_bytecode_module_vmvx
  )
endif()
