################################################################################
# Autogenerated by build_tools/bazel_to_cmake/bazel_to_cmake.py from           #
# tests/e2e/linalg/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_check_single_backend_test_suite(
  NAME
    check_llvm-cpu_local-task
  SRCS
    "conv2d.mlir"
    "fp4_f32_conversion.mlir"
    "fp_to_subbyte.mlir"
    "narrow_n_matmuls.mlir"
    "pack.mlir"
    "pack_dynamic_inner_tiles.mlir"
    "pack_i8.mlir"
    "softmax.mlir"
    "subbyte_to_fp.mlir"
    "unpack.mlir"
  TARGET_BACKEND
    "llvm-cpu"
  DRIVER
    "local-task"
  COMPILER_FLAGS
    "--iree-llvmcpu-target-cpu=generic"
  LABELS
    "nowasm"
)

iree_check_single_backend_test_suite(
  NAME
    check_llvm-cpu_dt_fusion_local-task
  SRCS
    "narrow_n_matmuls.mlir"
  TARGET_BACKEND
    "llvm-cpu"
  DRIVER
    "local-task"
  COMPILER_FLAGS
    "--iree-dispatch-creation-data-tiling"
    "--iree-llvmcpu-target-cpu=generic"
    "--iree-opt-data-tiling=false"
  LABELS
    "nowasm"
)

iree_check_single_backend_test_suite(
  NAME
    check_vmvx_local-task
  SRCS
    "conv2d.mlir"
    "narrow_n_matmuls.mlir"
    "pack.mlir"
    "pack_dynamic_inner_tiles.mlir"
    "pack_i8.mlir"
    "softmax.mlir"
    "unpack.mlir"
  TARGET_BACKEND
    "vmvx"
  DRIVER
    "local-task"
)

iree_check_single_backend_test_suite(
  NAME
    check_vmvx_ukernel_local-task
  SRCS
    "pack.mlir"
    "pack_dynamic_inner_tiles.mlir"
    "unpack.mlir"
  TARGET_BACKEND
    "vmvx"
  DRIVER
    "local-task"
  COMPILER_FLAGS
    "--iree-vmvx-enable-microkernels"
    "--iree-vmvx-enable-ukernels-decompose-linalg-generic=false"
)

iree_check_single_backend_test_suite(
  NAME
    check_vulkan-spirv_vulkan
  SRCS
    "conv2d.mlir"
    "narrow_n_matmuls.mlir"
    "softmax.mlir"
    "subbyte_to_fp.mlir"
  TARGET_BACKEND
    "vulkan-spirv"
  DRIVER
    "vulkan"
)

iree_check_single_backend_test_suite(
  NAME
    check_winograd_llvm-cpu_local-task
  SRCS
    "conv2d.mlir"
  TARGET_BACKEND
    "llvm-cpu"
  DRIVER
    "local-task"
  COMPILER_FLAGS
    "--iree-preprocessing-pass-pipeline=builtin.module\(func.func\(iree-linalg-ext-convert-conv2d-to-winograd\)\)"
    "--iree-llvmcpu-target-cpu=generic"
)

iree_check_single_backend_test_suite(
  NAME
    check_winograd_vulkan-spirv_vulkan
  SRCS
    "conv2d.mlir"
  TARGET_BACKEND
    "vulkan-spirv"
  DRIVER
    "vulkan"
  COMPILER_FLAGS
    "--iree-preprocessing-pass-pipeline=builtin.module\(func.func\(iree-linalg-ext-convert-conv2d-to-winograd\)\)"
)

iree_check_single_backend_test_suite(
  NAME
    check_large_linalg_matmul_cuda
  SRCS
    "conv2d.mlir"
    "fp_to_subbyte.mlir"
    "large_linalg_matmul.mlir"
    "narrow_n_matmuls.mlir"
    "pack_i8.mlir"
    "softmax.mlir"
    "subbyte_to_fp.mlir"
    "unpack.mlir"
  TARGET_BACKEND
    "cuda"
  DRIVER
    "cuda"
  LABELS
    "noasan"
    "nomsan"
    "notsan"
    "noubsan"
    "requires-gpu-nvidia"
)

iree_check_single_backend_test_suite(
  NAME
    check_rocm_hip
  SRCS
    "argmax.mlir"
    "pack_i8.mlir"
    "softmax.mlir"
    "unpack.mlir"
  TARGET_BACKEND
    "rocm"
  DRIVER
    "hip"
)

iree_check_single_backend_test_suite(
  NAME
    check_index_llvm-cpu_local-task
  SRCS
    "index.mlir"
  TARGET_BACKEND
    "llvm-cpu"
  DRIVER
    "local-task"
  COMPILER_FLAGS
    "--iree-llvmcpu-target-cpu=generic"
  LABELS
    "noriscv"
)

iree_check_single_backend_test_suite(
  NAME
    check_argmax_llvm-cpu_local-task
  SRCS
    "argmax.mlir"
  TARGET_BACKEND
    "llvm-cpu"
  DRIVER
    "local-task"
  COMPILER_FLAGS
    "--iree-llvmcpu-target-cpu=generic"
)

### BAZEL_TO_CMAKE_PRESERVES_ALL_CONTENT_BELOW_THIS_LINE ###
