################################################################################
# Autogenerated by build_tools/bazel_to_cmake/bazel_to_cmake.py from           #
# tests/e2e/stablehlo_ops/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
    "abs.mlir"
    "add.mlir"
    "batch_norm_inference.mlir"
    "bitcast_convert.mlir"
    "broadcast.mlir"
    "broadcast_add.mlir"
    "broadcast_in_dim.mlir"
    "clamp.mlir"
    "compare.mlir"
    "complex.mlir"
    "concatenate.mlir"
    "constant.mlir"
    "convert.mlir"
    "convolution.mlir"
    "cosine.mlir"
    "divide.mlir"
    "dot.mlir"
    "dot_bf16.mlir"
    "dot_general.mlir"
    "dynamic_slice.mlir"
    "dynamic_update_slice.mlir"
    "exponential.mlir"
    "exponential_fp16.mlir"
    "exponential_minus_one.mlir"
    "fft.mlir"
    "finite.mlir"
    "floor.mlir"
    "gather.mlir"
    "householder.mlir"
    "iota.mlir"
    "log.mlir"
    "log_plus_one.mlir"
    "maximum.mlir"
    "minimum.mlir"
    "multiply.mlir"
    "negate.mlir"
    "pad.mlir"
    "philox.mlir"
    "pow.mlir"
    "reduce.mlir"
    "reduce_window.mlir"
    "remainder.mlir"
    "reshape.mlir"
    "reverse.mlir"
    "rng_normal.mlir"
    "rng_uniform.mlir"
    "round.mlir"
    "rsqrt.mlir"
    "scatter.mlir"
    "scatter_dynamic.mlir"
    "select.mlir"
    "shape_assertion.mlir"
    "sine.mlir"
    "slice.mlir"
    "sort.mlir"
    "sqrt.mlir"
    "subtract.mlir"
    "tanh.mlir"
    "three_fry.mlir"
    "torch_index_select.mlir"
    "transpose.mlir"
    "while.mlir"
  TARGET_BACKEND
    "llvm-cpu"
  DRIVER
    "local-task"
  COMPILER_FLAGS
    "--iree-input-demote-f64-to-f32"
    "--iree-llvmcpu-target-cpu=generic"
  INPUT_TYPE
    "stablehlo"
  LABELS
    "nowasm"
)

iree_check_single_backend_test_suite(
  NAME
    check_llvm-cpu-host_local-task
  SRCS
    "abs.mlir"
    "add.mlir"
    "batch_norm_inference.mlir"
    "bitcast_convert.mlir"
    "broadcast.mlir"
    "broadcast_add.mlir"
    "broadcast_in_dim.mlir"
    "clamp.mlir"
    "compare.mlir"
    "complex.mlir"
    "concatenate.mlir"
    "constant.mlir"
    "convert.mlir"
    "convolution.mlir"
    "cosine.mlir"
    "divide.mlir"
    "dot.mlir"
    "dot_bf16.mlir"
    "dot_general.mlir"
    "dynamic_slice.mlir"
    "dynamic_update_slice.mlir"
    "exponential.mlir"
    "exponential_fp16.mlir"
    "exponential_minus_one.mlir"
    "fft.mlir"
    "finite.mlir"
    "floor.mlir"
    "gather.mlir"
    "householder.mlir"
    "iota.mlir"
    "log.mlir"
    "log_plus_one.mlir"
    "maximum.mlir"
    "minimum.mlir"
    "multiply.mlir"
    "negate.mlir"
    "pad.mlir"
    "philox.mlir"
    "pow.mlir"
    "reduce.mlir"
    "reduce_window.mlir"
    "remainder.mlir"
    "reshape.mlir"
    "reverse.mlir"
    "rng_normal.mlir"
    "rng_uniform.mlir"
    "round.mlir"
    "rsqrt.mlir"
    "scatter.mlir"
    "scatter_dynamic.mlir"
    "select.mlir"
    "shape_assertion.mlir"
    "sine.mlir"
    "slice.mlir"
    "sort.mlir"
    "sqrt.mlir"
    "subtract.mlir"
    "tanh.mlir"
    "three_fry.mlir"
    "torch_index_select.mlir"
    "transpose.mlir"
    "while.mlir"
  TARGET_BACKEND
    "llvm-cpu"
  DRIVER
    "local-task"
  COMPILER_FLAGS
    "--iree-input-demote-f64-to-f32"
    "--iree-llvmcpu-target-cpu=host"
  INPUT_TYPE
    "stablehlo"
  LABELS
    "hostonly"
    "local"
)

iree_check_single_backend_test_suite(
  NAME
    check_vmvx_local-task
  SRCS
    "abs.mlir"
    "add.mlir"
    "batch_norm_inference.mlir"
    "bitcast_convert.mlir"
    "broadcast.mlir"
    "broadcast_add.mlir"
    "broadcast_in_dim.mlir"
    "clamp.mlir"
    "compare.mlir"
    "complex.mlir"
    "concatenate.mlir"
    "constant.mlir"
    "convert.mlir"
    "convolution.mlir"
    "cosine.mlir"
    "divide.mlir"
    "dot.mlir"
    "dot_general.mlir"
    "dynamic_slice.mlir"
    "dynamic_update_slice.mlir"
    "exponential.mlir"
    "exponential_minus_one.mlir"
    "fft.mlir"
    "finite.mlir"
    "floor.mlir"
    "gather.mlir"
    "householder.mlir"
    "iota.mlir"
    "log.mlir"
    "log_plus_one.mlir"
    "maximum.mlir"
    "minimum.mlir"
    "multiply.mlir"
    "negate.mlir"
    "pad.mlir"
    "philox.mlir"
    "pow.mlir"
    "reduce.mlir"
    "reduce_window.mlir"
    "remainder.mlir"
    "reshape.mlir"
    "reverse.mlir"
    "rng_normal.mlir"
    "rng_uniform.mlir"
    "round.mlir"
    "rsqrt.mlir"
    "scatter.mlir"
    "scatter_dynamic.mlir"
    "select.mlir"
    "shape_assertion.mlir"
    "sine.mlir"
    "slice.mlir"
    "sort.mlir"
    "sqrt.mlir"
    "subtract.mlir"
    "tanh.mlir"
    "three_fry.mlir"
    "torch_index_select.mlir"
    "transpose.mlir"
    "while.mlir"
  TARGET_BACKEND
    "vmvx"
  DRIVER
    "local-task"
  COMPILER_FLAGS
    "--iree-input-demote-f64-to-f32"
  INPUT_TYPE
    "stablehlo"
)

iree_check_single_backend_test_suite(
  NAME
    check_vulkan-spirv_vulkan
  SRCS
    "abs.mlir"
    "add.mlir"
    "batch_norm_inference.mlir"
    "bitcast_convert.mlir"
    "broadcast.mlir"
    "broadcast_add.mlir"
    "broadcast_in_dim.mlir"
    "clamp.mlir"
    "compare.mlir"
    "complex.mlir"
    "concatenate.mlir"
    "constant.mlir"
    "convert.mlir"
    "convolution.mlir"
    "cosine.mlir"
    "divide.mlir"
    "dot.mlir"
    "dot_bf16.mlir"
    "dot_general.mlir"
    "dynamic_slice.mlir"
    "dynamic_update_slice.mlir"
    "exponential.mlir"
    "exponential_minus_one.mlir"
    "finite.mlir"
    "floor.mlir"
    "gather.mlir"
    "householder.mlir"
    "iota.mlir"
    "log.mlir"
    "log_plus_one.mlir"
    "maximum.mlir"
    "minimum.mlir"
    "multiply.mlir"
    "negate.mlir"
    "pad.mlir"
    "philox.mlir"
    "pow.mlir"
    "reduce.mlir"
    "reduce_window.mlir"
    "remainder.mlir"
    "reshape.mlir"
    "rng_normal.mlir"
    "rng_uniform.mlir"
    "round.mlir"
    "rsqrt.mlir"
    "scatter.mlir"
    "scatter_dynamic.mlir"
    "select.mlir"
    "shape_assertion.mlir"
    "sine.mlir"
    "slice.mlir"
    "sort.mlir"
    "sqrt.mlir"
    "subtract.mlir"
    "tanh.mlir"
    "three_fry.mlir"
    "torch_index_select.mlir"
    "transpose.mlir"
    "while.mlir"
  TARGET_BACKEND
    "vulkan-spirv"
  DRIVER
    "vulkan"
  COMPILER_FLAGS
    "--iree-input-demote-f64-to-f32"
  INPUT_TYPE
    "stablehlo"
)

iree_check_single_backend_test_suite(
  NAME
    check_cuda_graph
  SRCS
    "abs.mlir"
    "add.mlir"
    "batch_norm_inference.mlir"
    "bitcast_convert.mlir"
    "broadcast.mlir"
    "broadcast_add.mlir"
    "broadcast_in_dim.mlir"
    "clamp.mlir"
    "compare.mlir"
    "complex.mlir"
    "concatenate.mlir"
    "constant.mlir"
    "convert.mlir"
    "convolution.mlir"
    "cosine.mlir"
    "divide.mlir"
    "dot.mlir"
    "dot_bf16.mlir"
    "dot_general.mlir"
    "dynamic_slice.mlir"
    "dynamic_update_slice.mlir"
    "exponential.mlir"
    "exponential_fp16.mlir"
    "exponential_minus_one.mlir"
    "fft.mlir"
    "finite.mlir"
    "floor.mlir"
    "gather.mlir"
    "householder.mlir"
    "iota.mlir"
    "log.mlir"
    "log_plus_one.mlir"
    "maximum.mlir"
    "minimum.mlir"
    "multiply.mlir"
    "negate.mlir"
    "pad.mlir"
    "philox.mlir"
    "pow.mlir"
    "reduce.mlir"
    "reduce_window.mlir"
    "remainder.mlir"
    "reshape.mlir"
    "reverse.mlir"
    "rng_normal.mlir"
    "rng_uniform.mlir"
    "round.mlir"
    "rsqrt.mlir"
    "scatter.mlir"
    "scatter_dynamic.mlir"
    "select.mlir"
    "shape_assertion.mlir"
    "sine.mlir"
    "slice.mlir"
    "sort.mlir"
    "sqrt.mlir"
    "subtract.mlir"
    "tanh.mlir"
    "three_fry.mlir"
    "torch_index_select.mlir"
    "transpose.mlir"
    "while.mlir"
  TARGET_BACKEND
    "cuda"
  DRIVER
    "cuda"
  COMPILER_FLAGS
    "--iree-input-demote-f64-to-f32"
    "--iree-stream-emulate-memset"
  INPUT_TYPE
    "stablehlo"
  RUNNER_ARGS
    "--cuda_use_streams=false"
  LABELS
    "noasan"
    "nomsan"
    "notsan"
    "noubsan"
    "requires-gpu-nvidia"
)

iree_check_single_backend_test_suite(
  NAME
    check_cuda_stream
  SRCS
    "abs.mlir"
    "add.mlir"
    "batch_norm_inference.mlir"
    "bitcast_convert.mlir"
    "broadcast.mlir"
    "broadcast_add.mlir"
    "broadcast_in_dim.mlir"
    "clamp.mlir"
    "compare.mlir"
    "complex.mlir"
    "concatenate.mlir"
    "constant.mlir"
    "convert.mlir"
    "convolution.mlir"
    "cosine.mlir"
    "divide.mlir"
    "dot.mlir"
    "dot_bf16.mlir"
    "dot_general.mlir"
    "dynamic_slice.mlir"
    "dynamic_update_slice.mlir"
    "exponential.mlir"
    "exponential_fp16.mlir"
    "exponential_minus_one.mlir"
    "fft.mlir"
    "finite.mlir"
    "floor.mlir"
    "gather.mlir"
    "householder.mlir"
    "iota.mlir"
    "log.mlir"
    "log_plus_one.mlir"
    "maximum.mlir"
    "minimum.mlir"
    "multiply.mlir"
    "negate.mlir"
    "pad.mlir"
    "philox.mlir"
    "pow.mlir"
    "reduce.mlir"
    "reduce_window.mlir"
    "remainder.mlir"
    "reshape.mlir"
    "reverse.mlir"
    "rng_normal.mlir"
    "rng_uniform.mlir"
    "round.mlir"
    "rsqrt.mlir"
    "scatter.mlir"
    "scatter_dynamic.mlir"
    "select.mlir"
    "shape_assertion.mlir"
    "sine.mlir"
    "slice.mlir"
    "sort.mlir"
    "sqrt.mlir"
    "subtract.mlir"
    "tanh.mlir"
    "three_fry.mlir"
    "torch_index_select.mlir"
    "transpose.mlir"
    "while.mlir"
  TARGET_BACKEND
    "cuda"
  DRIVER
    "cuda"
  COMPILER_FLAGS
    "--iree-input-demote-f64-to-f32"
  INPUT_TYPE
    "stablehlo"
  RUNNER_ARGS
    "--cuda_use_streams=true"
  LABELS
    "noasan"
    "nomsan"
    "notsan"
    "noubsan"
    "requires-gpu-nvidia"
)

iree_check_single_backend_test_suite(
  NAME
    check_rocm_hip_stream
  SRCS
    "abs.mlir"
    "add.mlir"
    "batch_norm_inference.mlir"
    "bitcast_convert.mlir"
    "broadcast.mlir"
    "broadcast_add.mlir"
    "broadcast_in_dim.mlir"
    "clamp.mlir"
    "compare.mlir"
    "complex.mlir"
    "concatenate.mlir"
    "constant.mlir"
    "convert.mlir"
    "convolution.mlir"
    "cosine.mlir"
    "divide.mlir"
    "dot.mlir"
    "dot_bf16.mlir"
    "dot_general.mlir"
    "dynamic_slice.mlir"
    "dynamic_update_slice.mlir"
    "exponential.mlir"
    "exponential_fp16.mlir"
    "exponential_minus_one.mlir"
    "fft.mlir"
    "finite.mlir"
    "floor.mlir"
    "gather.mlir"
    "householder.mlir"
    "iota.mlir"
    "log.mlir"
    "log_plus_one.mlir"
    "maximum.mlir"
    "minimum.mlir"
    "multiply.mlir"
    "negate.mlir"
    "pad.mlir"
    "philox.mlir"
    "pow.mlir"
    "reduce.mlir"
    "reduce_window.mlir"
    "remainder.mlir"
    "reshape.mlir"
    "reverse.mlir"
    "rng_normal.mlir"
    "rng_uniform.mlir"
    "round.mlir"
    "rsqrt.mlir"
    "scatter.mlir"
    "scatter_dynamic.mlir"
    "select.mlir"
    "shape_assertion.mlir"
    "sine.mlir"
    "slice.mlir"
    "sort.mlir"
    "sqrt.mlir"
    "subtract.mlir"
    "tanh.mlir"
    "three_fry.mlir"
    "torch_index_select.mlir"
    "transpose.mlir"
    "while.mlir"
  TARGET_BACKEND
    "rocm"
  DRIVER
    "hip"
  INPUT_TYPE
    "stablehlo"
  RUNNER_ARGS
    "--hip_use_streams=true"
)

iree_check_single_backend_test_suite(
  NAME
    check_metal-spirv_metal
  SRCS
    "abs.mlir"
    "add.mlir"
    "batch_norm_inference.mlir"
    "bitcast_convert.mlir"
    "broadcast.mlir"
    "broadcast_add.mlir"
    "broadcast_in_dim.mlir"
    "clamp.mlir"
    "compare.mlir"
    "complex.mlir"
    "concatenate.mlir"
    "constant.mlir"
    "convert.mlir"
    "convolution.mlir"
    "cosine.mlir"
    "divide.mlir"
    "dot.mlir"
    "dot_bf16.mlir"
    "dot_general.mlir"
    "dynamic_slice.mlir"
    "dynamic_update_slice.mlir"
    "exponential.mlir"
    "exponential_fp16.mlir"
    "exponential_minus_one.mlir"
    "fft.mlir"
    "finite.mlir"
    "floor.mlir"
    "gather.mlir"
    "householder.mlir"
    "iota.mlir"
    "log.mlir"
    "log_plus_one.mlir"
    "maximum.mlir"
    "minimum.mlir"
    "multiply.mlir"
    "negate.mlir"
    "pad.mlir"
    "philox.mlir"
    "pow.mlir"
    "reduce.mlir"
    "remainder.mlir"
    "reshape.mlir"
    "reverse.mlir"
    "rng_normal.mlir"
    "rng_uniform.mlir"
    "round.mlir"
    "rsqrt.mlir"
    "scatter.mlir"
    "scatter_dynamic.mlir"
    "select.mlir"
    "shape_assertion.mlir"
    "sine.mlir"
    "slice.mlir"
    "sort.mlir"
    "sqrt.mlir"
    "subtract.mlir"
    "tanh.mlir"
    "three_fry.mlir"
    "torch_index_select.mlir"
    "transpose.mlir"
    "while.mlir"
  TARGET_BACKEND
    "metal-spirv"
  DRIVER
    "metal"
  INPUT_TYPE
    "stablehlo"
)

### BAZEL_TO_CMAKE_PRESERVES_ALL_CONTENT_BELOW_THIS_LINE ###

iree_check_single_backend_test_suite(
  NAME
    check_webgpu
  SRCS
    "abs.mlir"
    "add.mlir"
    "batch_norm_inference.mlir"
    "bitcast_convert.mlir"
    "broadcast.mlir"
    "broadcast_add.mlir"
    "broadcast_in_dim.mlir"
    # "clamp.mlir"  # TODO(#10906): fix (i8/i16?)
    # "compare.mlir"  # TODO(#10906): fix (i8/i16?)
    # "complex.mlir" # TODO(#11054)
    "concatenate.mlir"
    "constant.mlir"
    # "convert.mlir"  # TODO(#10906): fix (i8/i16?)
    "convolution.mlir"
    "cosine.mlir"
    "divide.mlir"
    "dot.mlir"
    "dot_general.mlir"
    # "dynamic_slice.mlir"  # TODO(#13702): update WebGPU to simplified bindings.
    # "dynamic_update_slice.mlir"  # TODO(#13702): update WebGPU to simplified bindings.
    "exponential.mlir"
    "exponential_fp16.mlir"
    "exponential_minus_one.mlir"
    # "fft.mlir"  # TODO(#9583): fix (fft codegen via spirv)
    # "finite.mlir"  # TODO(#11321): error: value cannot be represented as 'f32': inf
    "floor.mlir"
    "gather.mlir"
    "iota.mlir"
    "log.mlir"
    "log_plus_one.mlir"
    # "maximum.mlir"  # TODO(#10906): fix (i8/i16?)
    # "minimum.mlir"  # TODO(#10906): fix (i8/i16?)
    "multiply.mlir"
    "negate.mlir"
    "pad.mlir"
    # "philox.mlir"  # TODO(#12509): WebGPU SPIR-V broken
    "pow.mlir"
    "reduce.mlir"
    "reduce_window.mlir"
    "remainder.mlir"
    "reshape.mlir"
    "reverse.mlir"
    "rng_normal.mlir"
    "rng_uniform.mlir"
    "round.mlir"
    "rsqrt.mlir"
    # "scatter.mlir"  # TODO(#13702): update WebGPU to simplified bindings.
    # "scatter_dynamic.mlir"  # TODO(#13702): update WebGPU to simplified bindings.
    "select.mlir"
    "shape_assertion.mlir"
    "sine.mlir"
    "slice.mlir"
    "sort.mlir"
    "sqrt.mlir"
    "subtract.mlir"
    "tanh.mlir"
    # "three_fry.mlir"  # TODO(#12509): WebGPU SPIR-V broken
    "torch_index_select.mlir"
    "transpose.mlir"
    # "while.mlir"  # TODO(#12509): WebGPU SPIR-V broken
  TARGET_BACKEND
    "webgpu-spirv"
  # Only test compilation for now, the WebGPU driver is not stable/tested yet.
  # DRIVER
  #   "webgpu"
  COMPILER_FLAGS
    "--iree-input-type=stablehlo"
    "--iree-codegen-gpu-native-math-precision=true"  # TODO(#11321): Infer/flip default
)

iree_check_single_backend_test_suite(
  NAME
    check_rocm-rocm
  SRCS
    "abs.mlir"
    "add.mlir"
    "batch_norm_inference.mlir"
    "bitcast_convert.mlir"
    "broadcast.mlir"
    "broadcast_add.mlir"
    "broadcast_in_dim.mlir"
    "clamp.mlir"
    "compare.mlir"
    "complex.mlir"
    "concatenate.mlir"
    "constant.mlir"
    "convert.mlir"
    "convolution.mlir"
    "cosine.mlir"
    "divide.mlir"
    "dot.mlir"
    "dot_bf16.mlir"
    "dot_general.mlir"
    "dynamic_slice.mlir"
    "dynamic_update_slice.mlir"
    "exponential.mlir"
    "exponential_fp16.mlir"
    "exponential_minus_one.mlir"
    "fft.mlir"
    "finite.mlir"
    "floor.mlir"
    "gather.mlir"
    "iota.mlir"
    "log.mlir"
    "log_plus_one.mlir"
    "maximum.mlir"
    "minimum.mlir"
    "multiply.mlir"
    "negate.mlir"
    "pad.mlir"
    "philox.mlir"
    "pow.mlir"
    "reduce.mlir"
    "reduce_window.mlir"
    "remainder.mlir"
    "reshape.mlir"
    "reverse.mlir"
    "rng_normal.mlir"
    "rng_uniform.mlir"
    "round.mlir"
    "rsqrt.mlir"
    "scatter.mlir"
    "scatter_dynamic.mlir"
    "select.mlir"
    "shape_assertion.mlir"
    "sine.mlir"
    "slice.mlir"
    "sort.mlir"
    "sqrt.mlir"
    "subtract.mlir"
    "tanh.mlir"
    "three_fry.mlir"
    "torch_index_select.mlir"
    "transpose.mlir"
    "while.mlir"
  TARGET_BACKEND
    "rocm"
  # Only test compilation for now, the ROCm driver is experimental.
  # DRIVER
  #   "rocm"
  COMPILER_FLAGS
    "--iree-input-type=stablehlo"
)
