if(NOT IREE_ENABLE_THREADING)
  return()
endif()

### BAZEL_TO_CMAKE_PRESERVES_ALL_CONTENT_ABOVE_THIS_LINE ###
################################################################################
# Autogenerated by build_tools/bazel_to_cmake/bazel_to_cmake.py from           #
# tools/testing/e2e/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_cc_library(
  NAME
    e2e_test_util
  HDRS
    "test_utils.h"
  SRCS
    "test_utils.c"
  DEPS
    iree::base
    iree::base::internal
    iree::base::internal::cpu
    iree::base::internal::path
    iree::base::tooling::flags
    iree::hal
    iree::hal::replay::recorder
    iree::modules::hal
    iree::tooling::context_util
    iree::tooling::device_util
    iree::vm
    iree::vm::cc
  TESTONLY
  PUBLIC
)

iree_cc_binary(
  NAME
    iree-e2e-matmul-test
  SRCS
    "iree-e2e-matmul-test.cc"
  DEPS
    ::e2e_test_util
    iree::base
    iree::base::internal
    iree::base::internal::cpu
    iree::base::internal::path
    iree::base::tooling::flags
    iree::hal
    iree::modules::hal
    iree::tooling::context_util
    iree::tooling::device_util
    iree::vm
    iree::vm::cc
  TESTONLY
)

iree_cc_binary(
  NAME
    iree-e2e-conv2d-test
  SRCS
    "iree-e2e-conv2d-test.cc"
  DEPS
    ::e2e_test_util
    iree::base
    iree::base::internal
    iree::base::internal::cpu
    iree::base::internal::path
    iree::base::tooling::flags
    iree::hal
    iree::modules::hal
    iree::tooling::context_util
    iree::tooling::device_util
    iree::vm
    iree::vm::cc
  TESTONLY
)

iree_cc_binary(
  NAME
    iree-e2e-attention-test
  SRCS
    "iree-e2e-attention-test.cc"
  DEPS
    ::e2e_test_util
    iree::base
    iree::base::internal
    iree::base::internal::cpu
    iree::base::internal::path
    iree::base::tooling::flags
    iree::hal
    iree::modules::hal
    iree::tooling::context_util
    iree::tooling::device_util
    iree::vm
    iree::vm::cc
  TESTONLY
)

### BAZEL_TO_CMAKE_PRESERVES_ALL_CONTENT_BELOW_THIS_LINE ###
