Uncouples integrations/tensorflow from the CMake build. (#8078)

* Removes CMake files and options.
* Makes real Python packages for the projects.
* Moves a high value subset of the existing TF test suite to be lit-based with no build system integration:
  * Uncategorized tests (includes mobilebert)
  * Math tests
  * Layer tests
  * Excludes big, whole model TF tests. We will replace them with corresponding tflite tests in an (immediate) followup (just would like to not add new features to such a large patch).
* Updates CI to build/test the new configuration.
* Will require a bit of work on the release pipeline after this. Will do in a follow-up.
* Add test timeout
* Remove bindings/python dir
* Fix benchmark build so it can find iree-import-tflite.
* Delete e2e directory
* Deflake mobile bert squad test by not writing to global tmp dir
* Enables a bunch of tests that were asserting in debug builds (but passing in release builds) once restricting a buggy pattern to static shapes (which is all it was coded to handle). See: https://github.com/google/iree/issues/8083
diff --git a/CMakeLists.txt b/CMakeLists.txt
index b4a0e3c..1edccca 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -42,32 +42,16 @@
 option(IREE_BUILD_SAMPLES "Builds IREE sample projects." ON)
 option(IREE_BUILD_TRACY "Builds tracy server tools." OFF)
 
-option(IREE_BUILD_TENSORFLOW_ALL "Builds all TensorFlow compiler frontends." OFF)
-option(IREE_BUILD_TENSORFLOW_COMPILER "Builds TensorFlow compiler frontend." "${IREE_BUILD_TENSORFLOW_ALL}")
-option(IREE_BUILD_TFLITE_COMPILER "Builds the TFLite compiler frontend." "${IREE_BUILD_TENSORFLOW_ALL}")
-option(IREE_BUILD_XLA_COMPILER "Builds TensorFlow XLA compiler frontend." "${IREE_BUILD_TENSORFLOW_ALL}")
-
 # Properties controlling version and naming of release artifacts.
 set(IREE_RELEASE_PACKAGE_SUFFIX "" CACHE STRING "Suffix to append to distributed package names")
 set(IREE_RELEASE_VERSION "0.1a1" CACHE STRING "Version to embed in distributed packages")
 set(IREE_RELEASE_REVISION "HEAD" CACHE STRING "Version control revision information to embed in distributed packages")
 
-# Master enable for tensorflow build support.
-# Note that this is a normal CMake variable used to gate build features (not
-# a cache variable that is user-settable).
-set(IREE_ENABLE_TENSORFLOW OFF)
-if(${IREE_BUILD_TENSORFLOW_ALL} OR
-   ${IREE_BUILD_TENSORFLOW_COMPILER} OR
-   ${IREE_BUILD_TFLITE_COMPILER} OR
-   ${IREE_BUILD_XLA_COMPILER})
-  set(IREE_ENABLE_TENSORFLOW ON)
-endif()
-
 option(IREE_BUILD_BINDINGS_TFLITE "Builds the IREE TFLite C API compatibility shim" ON)
 option(IREE_BUILD_BINDINGS_TFLITE_JAVA "Builds the IREE TFLite Java bindings with the C API compatibility shim" ON)
 
 # Default python bindings to enabled for some features.
-option(IREE_BUILD_PYTHON_BINDINGS "Builds the IREE python bindings" "${IREE_ENABLE_TENSORFLOW}")
+option(IREE_BUILD_PYTHON_BINDINGS "Builds the IREE python bindings" OFF)
 
 #-------------------------------------------------------------------------------
 # Experimental project flags
@@ -75,9 +59,6 @@
 
 option(IREE_BUILD_EXPERIMENTAL_REMOTING "Builds experimental remoting support." OFF)
 option(IREE_BUILD_EXPERIMENTAL_ROCM "Builds the experimental ROCm Backend." OFF)
-option(IREE_ENABLE_OLD_INTEGRATION_TESTS "Enables old integration tests." OFF)
-option(IREE_ENABLE_NEW_INTEGRATION_TESTS "Enables new integration tests." OFF)
-option(IREE_ENABLE_TFLITE_INTEGRATION_TESTS "Enables tflite integration tests." OFF)
 
 #-------------------------------------------------------------------------------
 # Derived flags based on primary options
@@ -502,6 +483,12 @@
 add_subdirectory(iree/vm)
 
 if(${IREE_BUILD_BENCHMARKS})
+  find_program(IREE_IMPORT_TFLITE_PATH iree-import-tflite)
+  if(IREE_IMPORT_TFLITE_PATH)
+    message(STATUS "Found ${IREE_IMPORT_TFLITE_PATH} to generate benchmark artifacts")
+  else()
+    message(STATUS "iree-import-tflite not found. Some benchmarks may not configure")
+  endif()
   add_subdirectory(benchmarks)
 endif()
 
@@ -551,10 +538,6 @@
   add_subdirectory(experimental/remoting)
 endif()
 
-if(${IREE_ENABLE_TENSORFLOW})
-  add_subdirectory(integrations/tensorflow)
-endif()
-
 set(IREE_PUBLIC_INCLUDE_DIRS "${IREE_COMMON_INCLUDE_DIRS}"
     CACHE INTERNAL "IREE: Include Directories" FORCE)
 
diff --git a/build_tools/cmake/iree_benchmark_suite.cmake b/build_tools/cmake/iree_benchmark_suite.cmake
index 96ea40f..54a224d 100644
--- a/build_tools/cmake/iree_benchmark_suite.cmake
+++ b/build_tools/cmake/iree_benchmark_suite.cmake
@@ -133,9 +133,10 @@
 
     # If the source is a TFLite file, import it.
     if("${_MODULE_SOURCE}" MATCHES "\.tflite$")
-      if (NOT IREE_BUILD_TFLITE_COMPILER)
+      if (NOT IREE_IMPORT_TFLITE_PATH)
         message(SEND_ERROR "Benchmarks of ${_MODULE_SOURCE} require"
-                          " IREE_BUILD_TFLITE_COMPILER to be ON")
+                          " that iree-import-tflite be available "
+                          " (either on PATH or via IREE_IMPORT_TFLITE_PATH)")
       endif()
       set(_TFLITE_FILE "${_MODULE_SOURCE}")
       set(_MODULE_SOURCE "${_TFLITE_FILE}.mlir")
@@ -145,11 +146,10 @@
         add_custom_command(
           OUTPUT "${_MODULE_SOURCE}"
           COMMAND
-            "$<TARGET_FILE:integrations::tensorflow::iree_tf_compiler::iree-import-tflite>"
+            "${IREE_IMPORT_TFLITE_PATH}"
             "${_TFLITE_FILE}"
             "-o=${_MODULE_SOURCE}"
           DEPENDS
-            integrations::tensorflow::iree_tf_compiler::iree-import-tflite
             "${_TFLITE_FILE}"
           COMMENT "Importing TFLite file ${_TFLITE_FILE_BASENAME}"
         )
diff --git a/build_tools/kokoro/gcp_ubuntu/cmake-bazel/linux/x86-swiftshader/build.sh b/build_tools/kokoro/gcp_ubuntu/cmake-bazel/linux/x86-swiftshader/build.sh
index dfad1ab..5784e83 100755
--- a/build_tools/kokoro/gcp_ubuntu/cmake-bazel/linux/x86-swiftshader/build.sh
+++ b/build_tools/kokoro/gcp_ubuntu/cmake-bazel/linux/x86-swiftshader/build.sh
@@ -32,6 +32,7 @@
 ./scripts/git/submodule_versions.py init
 
 # BUILD the integrations binaries with Bazel and run any lit tests
+IREE_SRC_DIR="$PWD"
 pushd integrations/tensorflow
 BAZEL_CMD=(bazel --noworkspace_rc --bazelrc=build_tools/bazel/iree-tf.bazelrc)
 BAZEL_BINDIR="$(${BAZEL_CMD[@]?} info bazel-bin)"
@@ -45,6 +46,7 @@
       --config=generic_clang \
       --test_tag_filters="-nokokoro" \
       --build_tag_filters="-nokokoro"
+bash ./symlink_binaries.sh
 popd
 
 CMAKE_BUILD_DIR="$HOME/iree/build/tf"
@@ -59,11 +61,7 @@
    -DIREE_BUILD_COMPILER=ON \
    -DIREE_BUILD_TESTS=ON \
    -DIREE_BUILD_SAMPLES=OFF \
-   -DIREE_BUILD_XLA_COMPILER=ON \
-   -DIREE_BUILD_TFLITE_COMPILER=ON \
-   -DIREE_BUILD_TENSORFLOW_COMPILER=ON \
-   -DIREE_ENABLE_OLD_INTEGRATION_TESTS=ON \
-   -DIREE_ENABLE_TFLITE_INTEGRATION_TESTS=ON \
+   -DIREE_BUILD_PYTHON_BINDINGS=ON \
    .
 
 echo "Building with Ninja"
@@ -72,7 +70,30 @@
 
 export CTEST_PARALLEL_LEVEL=${CTEST_PARALLEL_LEVEL:-$(nproc)}
 
-echo "Testing with CTest"
-ctest --timeout 900 --output-on-failure \
+tests_passed=true
+
+echo "***** Testing with CTest *****"
+if ! ctest --timeout 900 --output-on-failure \
    --tests-regex "^integrations/tensorflow/|^bindings/python/" \
    --label-exclude "^nokokoro$|^vulkan_uses_vk_khr_shader_float16_int8$"
+then
+   tests_passed=false
+fi
+
+echo "***** Running TensorFlow integration tests *****"
+# TODO: Use "--timeout 900" instead of --max-time below. Requires that
+# `psutil` python package be installed in the VM for per test timeout.
+cd "$IREE_SRC_DIR"
+source "${CMAKE_BUILD_DIR?}/.env" && export PYTHONPATH
+LIT_SCRIPT="$IREE_SRC_DIR/third_party/llvm-project/llvm/utils/lit/lit.py"
+if ! python3 "$LIT_SCRIPT" -v integrations/tensorflow/test \
+   --max-time 1800 \
+   -D FEATURES=vulkan
+then
+   tests_passed=false
+fi
+
+if ! $tests_passed; then
+   echo "Some tests failed!!!"
+   exit 1
+fi
diff --git a/build_tools/kokoro/gcp_ubuntu/cmake-bazel/linux/x86-turing/build.sh b/build_tools/kokoro/gcp_ubuntu/cmake-bazel/linux/x86-turing/build.sh
index 4bf2f32..34e0efa 100755
--- a/build_tools/kokoro/gcp_ubuntu/cmake-bazel/linux/x86-turing/build.sh
+++ b/build_tools/kokoro/gcp_ubuntu/cmake-bazel/linux/x86-turing/build.sh
@@ -33,6 +33,7 @@
 ./scripts/git/submodule_versions.py init
 
 # BUILD the integrations binaries with Bazel
+IREE_SRC_DIR="$PWD"
 pushd integrations/tensorflow
 BAZEL_CMD=(bazel --noworkspace_rc --bazelrc=build_tools/bazel/iree-tf.bazelrc)
 BAZEL_BINDIR="$(${BAZEL_CMD[@]?} info bazel-bin)"
@@ -46,6 +47,7 @@
    --config=generic_clang \
    --config=remote_cache_bazel_ci \
    //iree_tf_compiler:all
+bash ./symlink_binaries.sh
 popd
 
 
@@ -62,9 +64,8 @@
    -DIREE_BUILD_COMPILER=ON \
    -DIREE_BUILD_TESTS=ON \
    -DIREE_BUILD_SAMPLES=OFF \
-   -DIREE_BUILD_XLA_COMPILER=ON \
-   -DIREE_BUILD_TFLITE_COMPILER=ON \
-   -DIREE_BUILD_TENSORFLOW_COMPILER=ON .
+   -DIREE_BUILD_PYTHON_BINDINGS=ON \
+   .
 
 echo "Building with Ninja"
 cd "${CMAKE_BUILD_DIR?}"
@@ -74,10 +75,34 @@
 # TODO(#5162): Handle this more robustly
 export CTEST_PARALLEL_LEVEL=${CTEST_PARALLEL_LEVEL:-1}
 
+tests_passed=true
+
 # Only test drivers that use the GPU, since we run all tests on non-GPU machines
 # as well.
-echo "Testing with CTest"
-ctest --timeout 900 --output-on-failure \
+echo "***** Testing with CTest *****"
+if ! ctest --timeout 900 --output-on-failure \
    --tests-regex "^integrations/tensorflow/|^bindings/python/" \
    --label-regex "^driver=vulkan$|^driver=cuda$" \
    --label-exclude "^nokokoro$"
+then
+   tests_passed=false
+fi
+
+echo "***** Running TensorFlow integration tests *****"
+# TODO: Use "--timeout 900" instead of --max-time below. Requires that
+# `psutil` python package be installed in the VM for per test timeout.
+cd "$IREE_SRC_DIR"
+source "${CMAKE_BUILD_DIR?}/.env" && export PYTHONPATH
+LIT_SCRIPT="$IREE_SRC_DIR/third_party/llvm-project/llvm/utils/lit/lit.py"
+if ! python3 "$LIT_SCRIPT" -v integrations/tensorflow/test \
+   --max-time 1800 \
+   -D DISABLE_FEATURES=llvmaot \
+   -D FEATURES=vulkan
+then
+   tests_passed=false
+fi
+
+if ! $tests_passed; then
+   echo "Some tests failed!!!"
+   exit 1
+fi
diff --git a/build_tools/kokoro/gcp_ubuntu/cmake/android/build.sh b/build_tools/kokoro/gcp_ubuntu/cmake/android/build.sh
index dbcf06c..18611c6 100755
--- a/build_tools/kokoro/gcp_ubuntu/cmake/android/build.sh
+++ b/build_tools/kokoro/gcp_ubuntu/cmake/android/build.sh
@@ -48,6 +48,8 @@
 "${BAZEL_CMD[@]}" build //iree_tf_compiler:iree-import-tflite \
       --config=generic_clang \
       --config=remote_cache_bazel_ci
+# So the benchmark build below can find the importer binaries that were built.
+export PATH="$PWD/bazel-bin/iree_tf_compiler:$PATH"
 
 # --------------------------------------------------------------------------- #
 # Build for the host.
@@ -70,8 +72,8 @@
   -DIREE_BUILD_COMPILER=ON \
   -DIREE_BUILD_TESTS=OFF \
   -DIREE_BUILD_BENCHMARKS=ON \
-  -DIREE_BUILD_TFLITE_COMPILER=ON \
   -DIREE_BUILD_SAMPLES=OFF
+
 "${CMAKE_BIN}" --build . --target install
 # Also make sure that we can generate artifacts for benchmarking on Android.
 "${CMAKE_BIN}" --build . --target iree-benchmark-suites
diff --git a/integrations/tensorflow/CMakeLists.txt b/integrations/tensorflow/CMakeLists.txt
deleted file mode 100644
index 6e8f443..0000000
--- a/integrations/tensorflow/CMakeLists.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-# Copyright 2020 The IREE Authors
-#
-# Licensed under the Apache License v2.0 with LLVM Exceptions.
-# See https://llvm.org/LICENSE.txt for license information.
-# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-
-# TensorFlow builds through bazel, and IREE maintains all of its TensorFlow
-# dependent code under this directory tree. The CMake support is limited to
-# compiler binaries and python bindings.
-#
-# If this directory is included, then building TensorFlow is assumed (the
-# config option happens at the higher level).
-
-add_subdirectory(iree_tf_compiler)
-
-if(${IREE_BUILD_PYTHON_BINDINGS})
-  add_subdirectory(bindings/python)
-endif()
-
-if(${IREE_BUILD_TESTS} AND ${IREE_BUILD_PYTHON_BINDINGS})
-  add_subdirectory(test)
-  if(${IREE_ENABLE_OLD_INTEGRATION_TESTS})
-    list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/e2e/")
-    include(iree_e2e_cartesian_product_test_suite)
-    add_subdirectory(e2e)
-  endif()
-endif()
diff --git a/integrations/tensorflow/README.md b/integrations/tensorflow/README.md
index 1fcad82..65abc4a 100644
--- a/integrations/tensorflow/README.md
+++ b/integrations/tensorflow/README.md
@@ -6,7 +6,6 @@
 ## Quick Development Setup
 
 This assumes that you have an appropriate `bazel` installed.
-
 Build the importer binaries:
 
 ```
@@ -19,9 +18,43 @@
 bazel build iree_tf_compiler:iree-import-tf
 ```
 
-## Notes:
+Symlink binaries into python packages (only needs to be done once):
 
-This directory is in a transitional state to its own project. Currently it
-has its directory structure set up for that eventuality. Specifically,
-`iree-dialects` is a symlink to the directory from the main repo. When split,
-this will be a copy.
\ No newline at end of file
+```
+./symlink_binaries.sh
+```
+
+Pip install editable (recommend to do this in a virtual environment):
+
+```
+pip install -e python_projects/iree_tflite
+pip install -e python_projects/iree_xla
+pip install -e python_projects/iree_tf
+```
+
+Test installed:
+
+```
+iree-import-tflite -help
+iree-import-xla -help
+iree-import-tf -help
+```
+
+## Run test suite
+
+You need to make sure that the iree compiler and runtime are on your PYTHONPATH.
+The easiest way to do this is to install wheels with pip. For development,
+the following should do it:
+
+```
+source ~/path/to/iree-build/.env && export PYTHONPATH
+```
+
+Run the test suite with:
+
+```
+lit -v test/
+```
+
+Note that you can specify arbitrary sub-directories or individual files/globs
+as needed.
diff --git a/integrations/tensorflow/bindings/python/CMakeLists.txt b/integrations/tensorflow/bindings/python/CMakeLists.txt
deleted file mode 100644
index 788b527..0000000
--- a/integrations/tensorflow/bindings/python/CMakeLists.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-# Copyright 2020 The IREE Authors
-#
-# Licensed under the Apache License v2.0 with LLVM Exceptions.
-# See https://llvm.org/LICENSE.txt for license information.
-# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-
-# Overlays a subdirectory into the main python bindings directory.
-function(_add_overlay_subdirectory dir)
-  # Overlay binary directories onto the main bindings directory.
-  set(_MAIN_PYTHON_DIR "${CMAKE_BINARY_DIR}/bindings/python")
-  add_subdirectory(${dir} "${_MAIN_PYTHON_DIR}/${dir}")
-endfunction()
-
-if(${IREE_BUILD_TENSORFLOW_COMPILER} OR ${IREE_BUILD_TENSORFLOW_ALL})
-  _add_overlay_subdirectory(iree/tools/tf)
-endif()
-
-if(${IREE_BUILD_TFLITE_COMPILER} OR ${IREE_BUILD_TENSORFLOW_ALL})
-  _add_overlay_subdirectory(iree/tools/tflite)
-endif()
-
-if(${IREE_BUILD_XLA_COMPILER} OR ${IREE_BUILD_TENSORFLOW_ALL})
-  _add_overlay_subdirectory(iree/tools/xla)
-endif()
-
-# TODO: Find another place for the TF support library.
-# Pure python so can just always be generated.
-_add_overlay_subdirectory(iree/tf/support)
diff --git a/integrations/tensorflow/bindings/python/build_requirements.txt b/integrations/tensorflow/bindings/python/build_requirements.txt
deleted file mode 100644
index 38547ff..0000000
--- a/integrations/tensorflow/bindings/python/build_requirements.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-tf-nightly>=2.7.0.dev20210802
-tensorflow-model-optimization==0.5.1.dev0
-PyYAML
diff --git a/integrations/tensorflow/bindings/python/iree/tf/support/CMakeLists.txt b/integrations/tensorflow/bindings/python/iree/tf/support/CMakeLists.txt
deleted file mode 100644
index 0876d34..0000000
--- a/integrations/tensorflow/bindings/python/iree/tf/support/CMakeLists.txt
+++ /dev/null
@@ -1,57 +0,0 @@
-# Copyright 2020 The IREE Authors
-#
-# Licensed under the Apache License v2.0 with LLVM Exceptions.
-# See https://llvm.org/LICENSE.txt for license information.
-# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-
-iree_py_library(
-  NAME
-    support
-  SRCS
-    "__init__.py"
-    "module_utils.py"
-    "tf_test_driver.py"
-    "tf_test_utils.py"
-    "tf_utils.py"
-    "trace_utils.py"
-)
-
-# TODO(#5147): Replace the hack below with something more thought out.
-# Make the base dir that run_test.sh expects to exist. This dir doesn't exist
-# by default because we symlink these python files into bindings/python/iree.
-file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/integrations/tensorflow/bindings/python/iree/tf/support")
-
-iree_py_test(
-  NAME
-    module_utils_test
-  SRCS
-    "module_utils_test.py"
-)
-
-iree_py_test(
-  NAME
-    tf_test_utils_test
-  SRCS
-    "tf_test_utils_test.py"
-)
-
-iree_py_test(
-  NAME
-    tf_utils_test
-  SRCS
-    "tf_utils_test.py"
-)
-
-iree_py_test(
-  NAME
-    trace_utils_test
-  SRCS
-    "trace_utils_test.py"
-)
-
-iree_py_install_package(
-  AUGMENT_EXISTING_PACKAGE
-  COMPONENT IreePythonPackage-tools-tf
-  PACKAGE_NAME iree_tools_tf
-  MODULE_PATH iree/tf/support
-)
diff --git a/integrations/tensorflow/bindings/python/iree/tools/tf/CMakeLists.txt b/integrations/tensorflow/bindings/python/iree/tools/tf/CMakeLists.txt
deleted file mode 100644
index 77fd6c1..0000000
--- a/integrations/tensorflow/bindings/python/iree/tools/tf/CMakeLists.txt
+++ /dev/null
@@ -1,41 +0,0 @@
-# Copyright 2020 The IREE Authors
-#
-# Licensed under the Apache License v2.0 with LLVM Exceptions.
-# See https://llvm.org/LICENSE.txt for license information.
-# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-
-set(_srcs
-  "__init__.py"
-  "scripts/iree_import_tf/__main__.py"
-)
-
-iree_py_library(
-  NAME
-    tf
-  SRCS ${_srcs}
-  DEPS
-  integrations::tensorflow::iree_tf_compiler::iree-import-tf
-)
-
-iree_symlink_tool(
-  TARGET tf
-  FROM_TOOL_TARGET integrations::tensorflow::iree_tf_compiler::iree-import-tf
-  TO_EXE_NAME iree-import-tf
-)
-
-iree_py_install_package(
-  COMPONENT IreePythonPackage-tools-tf
-  PACKAGE_NAME iree_tools_tf
-  MODULE_PATH iree/tools/tf
-  FILES_MATCHING ${_srcs}
-  DEPS
-    integrations::tensorflow::iree_tf_compiler::iree-import-tf
-)
-
-# Since imported, need to resolve the TARGET_FILE ourselves instead of
-# install TARGETS form.
-install(
-  PROGRAMS "$<TARGET_FILE:integrations::tensorflow::iree_tf_compiler::iree-import-tf>"
-  DESTINATION "${PY_INSTALL_MODULE_DIR}"
-  COMPONENT "${PY_INSTALL_COMPONENT}"
-)
diff --git a/integrations/tensorflow/bindings/python/iree/tools/tf/setup.py.in b/integrations/tensorflow/bindings/python/iree/tools/tf/setup.py.in
deleted file mode 100644
index df15598..0000000
--- a/integrations/tensorflow/bindings/python/iree/tools/tf/setup.py.in
+++ /dev/null
@@ -1,90 +0,0 @@
-#!/usr/bin/python3
-
-# Copyright 2020 The IREE Authors
-#
-# Licensed under the Apache License v2.0 with LLVM Exceptions.
-# See https://llvm.org/LICENSE.txt for license information.
-# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-
-# Build platform specific wheel files for the iree.runtime package.
-# Built artifacts are per-platform and build out of the build tree.
-
-from distutils.command.install import install
-import os
-import platform
-from setuptools import setup, find_namespace_packages
-
-README = r'''
-TensorFlow XLA Compiler Tools
-'''
-
-exe_suffix = ".exe" if platform.system() == "Windows" else ""
-
-# Force platform specific wheel.
-# https://stackoverflow.com/questions/45150304
-try:
-  from wheel.bdist_wheel import bdist_wheel as _bdist_wheel
-
-  class bdist_wheel(_bdist_wheel):
-
-    def finalize_options(self):
-      _bdist_wheel.finalize_options(self)
-      self.root_is_pure = False
-
-    def get_tag(self):
-      python, abi, plat = _bdist_wheel.get_tag(self)
-      # We don't contain any python extensions so are version agnostic
-      # but still want to be platform specific.
-      python, abi = 'py3', 'none'
-      return python, abi, plat
-
-except ImportError:
-  bdist_wheel = None
-
-
-# Force installation into platlib.
-# Since this is a pure-python library with platform binaries, it is
-# mis-detected as "pure", which fails audit. Usually, the presence of an
-# extension triggers non-pure install. We force it here.
-class platlib_install(install):
-
-  def finalize_options(self):
-    install.finalize_options(self)
-    self.install_lib = self.install_platlib
-
-
-setup(
-    name="iree-tools-tf@IREE_RELEASE_PACKAGE_SUFFIX@",
-    version="@IREE_RELEASE_VERSION@",
-    author="The IREE Team",
-    author_email="iree-discuss@googlegroups.com",
-    description="IREE TensorFlow Compiler Tools",
-    long_description=README,
-    long_description_content_type="text/markdown",
-    license="Apache-2.0",
-    classifiers=[
-        "Programming Language :: Python :: 3.7",
-        "Programming Language :: Python :: 3.8",
-        "Programming Language :: Python :: 3.9",
-    ],
-    url="https://github.com/google/iree",
-    python_requires=">=3.7",
-    packages=find_namespace_packages(include=[
-        "iree.tools.tf",
-        "iree.tools.tf.*",
-        "iree.tf.support",
-    ]),
-    package_data={
-        "iree.tools.tf": [f"iree-import-tf{exe_suffix}",],
-    },
-    cmdclass={
-        'bdist_wheel': bdist_wheel,
-        'install': platlib_install,
-    },
-    entry_points={
-        "console_scripts": [
-            "iree-import-tf = iree.tools.tf.scripts.iree_import_tf.__main__:main",
-        ],
-    },
-    zip_safe=False,  # This package is fine but not zipping is more versatile.
-)
diff --git a/integrations/tensorflow/bindings/python/iree/tools/tf/version.py.in b/integrations/tensorflow/bindings/python/iree/tools/tf/version.py.in
deleted file mode 100644
index e69de29..0000000
--- a/integrations/tensorflow/bindings/python/iree/tools/tf/version.py.in
+++ /dev/null
diff --git a/integrations/tensorflow/bindings/python/iree/tools/tflite/CMakeLists.txt b/integrations/tensorflow/bindings/python/iree/tools/tflite/CMakeLists.txt
deleted file mode 100644
index d5cbb65..0000000
--- a/integrations/tensorflow/bindings/python/iree/tools/tflite/CMakeLists.txt
+++ /dev/null
@@ -1,41 +0,0 @@
-# Copyright 2020 The IREE Authors
-#
-# Licensed under the Apache License v2.0 with LLVM Exceptions.
-# See https://llvm.org/LICENSE.txt for license information.
-# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-
-set(_srcs
-  "__init__.py"
-  "scripts/iree_import_tflite/__main__.py"
-)
-
-iree_py_library(
-  NAME
-    tflite
-  SRCS ${_srcs}
-  DEPS
-    integrations::tensorflow::iree_tf_compiler::iree-import-tflite
-)
-
-iree_symlink_tool(
-  TARGET tflite
-  FROM_TOOL_TARGET integrations::tensorflow::iree_tf_compiler::iree-import-tflite
-  TO_EXE_NAME iree-import-tflite
-)
-
-iree_py_install_package(
-  COMPONENT IreePythonPackage-tools-tflite
-  PACKAGE_NAME iree_tools_tflite
-  MODULE_PATH iree/tools/tflite
-  FILES_MATCHING ${_srcs}
-  DEPS
-    integrations::tensorflow::iree_tf_compiler::iree-import-tflite
-)
-
-# Since imported, need to resolve the TARGET_FILE ourselves instead of
-# install TARGETS form.
-install(
-  PROGRAMS "$<TARGET_FILE:integrations::tensorflow::iree_tf_compiler::iree-import-tflite>"
-  DESTINATION "${PY_INSTALL_MODULE_DIR}"
-  COMPONENT "${PY_INSTALL_COMPONENT}"
-)
diff --git a/integrations/tensorflow/bindings/python/iree/tools/tflite/setup.py.in b/integrations/tensorflow/bindings/python/iree/tools/tflite/setup.py.in
deleted file mode 100644
index f26ad3e..0000000
--- a/integrations/tensorflow/bindings/python/iree/tools/tflite/setup.py.in
+++ /dev/null
@@ -1,89 +0,0 @@
-#!/usr/bin/python3
-
-# Copyright 2020 The IREE Authors
-#
-# Licensed under the Apache License v2.0 with LLVM Exceptions.
-# See https://llvm.org/LICENSE.txt for license information.
-# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-
-# Build platform specific wheel files for the iree.runtime package.
-# Built artifacts are per-platform and build out of the build tree.
-
-from distutils.command.install import install
-import os
-import platform
-from setuptools import setup, find_namespace_packages
-
-README = r'''
-TensorFlow TFLite Compiler Tools
-'''
-
-exe_suffix = ".exe" if platform.system() == "Windows" else ""
-
-# Force platform specific wheel.
-# https://stackoverflow.com/questions/45150304
-try:
-  from wheel.bdist_wheel import bdist_wheel as _bdist_wheel
-
-  class bdist_wheel(_bdist_wheel):
-
-    def finalize_options(self):
-      _bdist_wheel.finalize_options(self)
-      self.root_is_pure = False
-
-    def get_tag(self):
-      python, abi, plat = _bdist_wheel.get_tag(self)
-      # We don't contain any python extensions so are version agnostic
-      # but still want to be platform specific.
-      python, abi = 'py3', 'none'
-      return python, abi, plat
-
-except ImportError:
-  bdist_wheel = None
-
-
-# Force installation into platlib.
-# Since this is a pure-python library with platform binaries, it is
-# mis-detected as "pure", which fails audit. Usually, the presence of an
-# extension triggers non-pure install. We force it here.
-class platlib_install(install):
-
-  def finalize_options(self):
-    install.finalize_options(self)
-    self.install_lib = self.install_platlib
-
-
-setup(
-    name="iree-tools-tflite@IREE_RELEASE_PACKAGE_SUFFIX@",
-    version="@IREE_RELEASE_VERSION@",
-    author="The IREE Team",
-    author_email="iree-discuss@googlegroups.com",
-    description="IREE TFLite Compiler Tools",
-    long_description=README,
-    long_description_content_type="text/markdown",
-    license="Apache-2.0",
-    classifiers=[
-        "Programming Language :: Python :: 3.7",
-        "Programming Language :: Python :: 3.8",
-        "Programming Language :: Python :: 3.9",
-    ],
-    url="https://github.com/google/iree",
-    python_requires=">=3.7",
-    packages=find_namespace_packages(include=[
-      "iree.tools.tflite",
-      "iree.tools.tflite.*",
-    ]),
-    package_data={
-        "iree.tools.tflite": [f"iree-import-tflite{exe_suffix}",],
-    },
-    cmdclass={
-        'bdist_wheel': bdist_wheel,
-        'install': platlib_install,
-    },
-    entry_points={
-        "console_scripts": [
-            "iree-import-tflite = iree.tools.tflite.scripts.iree_import_tflite.__main__:main",
-        ],
-    },
-    zip_safe=False,  # This package is fine but not zipping is more versatile.
-)
diff --git a/integrations/tensorflow/bindings/python/iree/tools/tflite/version.py.in b/integrations/tensorflow/bindings/python/iree/tools/tflite/version.py.in
deleted file mode 100644
index e660b02..0000000
--- a/integrations/tensorflow/bindings/python/iree/tools/tflite/version.py.in
+++ /dev/null
@@ -1,9 +0,0 @@
-# Copyright 2020 The IREE Authors
-#
-# Licensed under the Apache License v2.0 with LLVM Exceptions.
-# See https://llvm.org/LICENSE.txt for license information.
-# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-
-PACKAGE_SUFFIX = "@IREE_RELEASE_PACKAGE_SUFFIX@"
-VERSION = "@IREE_RELEASE_VERSION@"
-REVISION = "@IREE_RELEASE_REVISION@"
diff --git a/integrations/tensorflow/bindings/python/iree/tools/xla/CMakeLists.txt b/integrations/tensorflow/bindings/python/iree/tools/xla/CMakeLists.txt
deleted file mode 100644
index 637bb81..0000000
--- a/integrations/tensorflow/bindings/python/iree/tools/xla/CMakeLists.txt
+++ /dev/null
@@ -1,41 +0,0 @@
-# Copyright 2020 The IREE Authors
-#
-# Licensed under the Apache License v2.0 with LLVM Exceptions.
-# See https://llvm.org/LICENSE.txt for license information.
-# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-
-set(_srcs
-  "__init__.py"
-  "scripts/iree_import_xla/__main__.py"
-)
-
-iree_py_library(
-  NAME
-    xla
-  SRCS ${_srcs}
-  DEPS
-    integrations::tensorflow::iree_tf_compiler::iree-import-xla
-)
-
-iree_symlink_tool(
-  TARGET xla
-  FROM_TOOL_TARGET integrations::tensorflow::iree_tf_compiler::iree-import-xla
-  TO_EXE_NAME iree-import-xla
-)
-
-iree_py_install_package(
-  COMPONENT IreePythonPackage-tools-xla
-  PACKAGE_NAME iree_tools_xla
-  MODULE_PATH iree/tools/xla
-  FILES_MATCHING ${_srcs}
-  DEPS
-    integrations::tensorflow::iree_tf_compiler::iree-import-xla
-)
-
-# Since imported, need to resolve the TARGET_FILE ourselves instead of
-# install TARGETS form.
-install(
-  PROGRAMS "$<TARGET_FILE:integrations::tensorflow::iree_tf_compiler::iree-import-xla>"
-  DESTINATION "${PY_INSTALL_MODULE_DIR}"
-  COMPONENT "${PY_INSTALL_COMPONENT}"
-)
diff --git a/integrations/tensorflow/bindings/python/iree/tools/xla/setup.py.in b/integrations/tensorflow/bindings/python/iree/tools/xla/setup.py.in
deleted file mode 100644
index 192824d..0000000
--- a/integrations/tensorflow/bindings/python/iree/tools/xla/setup.py.in
+++ /dev/null
@@ -1,89 +0,0 @@
-#!/usr/bin/python3
-
-# Copyright 2020 The IREE Authors
-#
-# Licensed under the Apache License v2.0 with LLVM Exceptions.
-# See https://llvm.org/LICENSE.txt for license information.
-# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-
-# Build platform specific wheel files for the iree.runtime package.
-# Built artifacts are per-platform and build out of the build tree.
-
-from distutils.command.install import install
-import os
-import platform
-from setuptools import setup, find_namespace_packages
-
-README = r'''
-TensorFlow XLA Compiler Tools
-'''
-
-exe_suffix = ".exe" if platform.system() == "Windows" else ""
-
-# Force platform specific wheel.
-# https://stackoverflow.com/questions/45150304
-try:
-  from wheel.bdist_wheel import bdist_wheel as _bdist_wheel
-
-  class bdist_wheel(_bdist_wheel):
-
-    def finalize_options(self):
-      _bdist_wheel.finalize_options(self)
-      self.root_is_pure = False
-
-    def get_tag(self):
-      python, abi, plat = _bdist_wheel.get_tag(self)
-      # We don't contain any python extensions so are version agnostic
-      # but still want to be platform specific.
-      python, abi = 'py3', 'none'
-      return python, abi, plat
-
-except ImportError:
-  bdist_wheel = None
-
-
-# Force installation into platlib.
-# Since this is a pure-python library with platform binaries, it is
-# mis-detected as "pure", which fails audit. Usually, the presence of an
-# extension triggers non-pure install. We force it here.
-class platlib_install(install):
-
-  def finalize_options(self):
-    install.finalize_options(self)
-    self.install_lib = self.install_platlib
-
-
-setup(
-    name="iree-tools-xla@IREE_RELEASE_PACKAGE_SUFFIX@",
-    version="@IREE_RELEASE_VERSION@",
-    author="The IREE Team",
-    author_email="iree-discuss@googlegroups.com",
-    description="IREE XLA Compiler Tools",
-    long_description=README,
-    long_description_content_type="text/markdown",
-    license="Apache-2.0",
-    classifiers=[
-        "Programming Language :: Python :: 3.7",
-        "Programming Language :: Python :: 3.8",
-        "Programming Language :: Python :: 3.9",
-    ],
-    url="https://github.com/google/iree",
-    python_requires=">=3.7",
-    packages=find_namespace_packages(include=[
-      "iree.tools.xla",
-      "iree.tools.xla.*",
-    ]),
-    package_data={
-        "iree.tools.xla": [f"iree-import-xla{exe_suffix}",],
-    },
-    cmdclass={
-        'bdist_wheel': bdist_wheel,
-        'install': platlib_install,
-    },
-    entry_points={
-        "console_scripts": [
-            "iree-import-xla = iree.tools.xla.scripts.iree_import_xla.__main__:main",
-        ],
-    },
-    zip_safe=False,  # This package is fine but not zipping is more versatile.
-)
diff --git a/integrations/tensorflow/bindings/python/iree/tools/xla/version.py.in b/integrations/tensorflow/bindings/python/iree/tools/xla/version.py.in
deleted file mode 100644
index e660b02..0000000
--- a/integrations/tensorflow/bindings/python/iree/tools/xla/version.py.in
+++ /dev/null
@@ -1,9 +0,0 @@
-# Copyright 2020 The IREE Authors
-#
-# Licensed under the Apache License v2.0 with LLVM Exceptions.
-# See https://llvm.org/LICENSE.txt for license information.
-# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-
-PACKAGE_SUFFIX = "@IREE_RELEASE_PACKAGE_SUFFIX@"
-VERSION = "@IREE_RELEASE_VERSION@"
-REVISION = "@IREE_RELEASE_REVISION@"
diff --git a/integrations/tensorflow/e2e/BUILD b/integrations/tensorflow/e2e/BUILD
deleted file mode 100644
index c640bd7..0000000
--- a/integrations/tensorflow/e2e/BUILD
+++ /dev/null
@@ -1,204 +0,0 @@
-# Copyright 2019 The IREE Authors
-#
-# Licensed under the Apache License v2.0 with LLVM Exceptions.
-# See https://llvm.org/LICENSE.txt for license information.
-# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-
-# ***THIS FILE DOES NOT BUILD WITH BAZEL***
-#
-# It is open sourced to enable Bazel->CMake conversion to maintain test coverage
-# of our integration tests in open source while we figure out a long term plan
-# for our integration testing.
-
-load("//build_tools/bazel:enforce_glob.bzl", "enforce_glob")
-load(
-    "@iree//integrations/tensorflow/e2e:iree_e2e_cartesian_product_test_suite.bzl",
-    "iree_e2e_cartesian_product_test_suite",
-)
-
-package(
-    default_visibility = ["//visibility:public"],
-    features = ["layering_check"],
-    licenses = ["notice"],  # Apache 2.0
-)
-
-# Create binaries for all test srcs to allow them to be run manually.
-[
-    py_binary(
-        name = src.replace(".py", "_manual"),
-        srcs = [src],
-        main = src,
-        python_version = "PY3",
-        deps = [
-            "//third_party/py/absl:app",
-            "//third_party/py/absl/flags",
-            "//third_party/py/iree:pylib_tf_support",
-            "//third_party/py/numpy",
-            "//third_party/py/tensorflow",
-            "//util/debuginfo:signalsafe_addr2line_installer",
-        ],
-    )
-    for src in glob(["*_test.py"])
-]
-
-ALL_SRCS = [
-    "batch_norm_test.py",
-    "batch_to_space_nd_test.py",
-    "broadcast_to_test.py",
-    "broadcasting_test.py",
-    "concat_test.py",
-    "control_flow_test.py",
-    "conv_test.py",
-    "conv_transpose_test.py",
-    "depth_conv_test.py",
-    "dynamic_mlp_relu_test.py",
-    "dynamic_mlp_test.py",
-    "einsum_dynamic_test.py",
-    "einsum_static_test.py",
-    "einsum_vector_test.py",
-    "fft_test.py",
-    "fill_test.py",
-    "gather_test.py",
-    "image_resize_test.py",
-    "linspace_test.py",
-    "mandelbrot_test.py",
-    "matrix_ops_dynamic_test.py",
-    "matrix_ops_static_test.py",
-    "pytree_test.py",
-    "quantization_dyn_test.py",
-    "quantization_test.py",
-    "range_test.py",
-    "resource_ops_test.py",
-    "ring_buffer_test.py",
-    "scatter_update_test.py",
-    "simple_arithmetic_test.py",
-    "simple_stateful_test.py",
-    "sliding_window_test.py",
-    "space_to_batch_nd_test.py",
-]
-
-# keep sorted
-TFLITE_FAILING = [
-    "concat_test.py",
-    "einsum_dynamic_test.py",
-    "einsum_static_test.py",
-    "einsum_vector_test.py",
-    "fft_test.py",
-    "image_resize_test.py",
-    "mandelbrot_test.py",
-    "pytree_test.py",
-    "resource_ops_test.py",
-    "ring_buffer_test.py",
-    "scatter_update_test.py",
-    "simple_stateful_test.py",
-    "sliding_window_test.py",
-]
-
-# keep sorted
-LLVM_FAILING = [
-    "broadcast_to_test.py",
-    "broadcasting_test.py",
-    "conv_transpose_test.py",
-    "einsum_dynamic_test.py",
-    "einsum_static_test.py",
-    "einsum_vector_test.py",
-    "fft_test.py",  # TODO(natashaknk): Get this working after kernel is in.
-    "fill_test.py",  # TODO(jennik): Get this test working on IREE.
-    "mandelbrot_test.py",  # TODO(silvasean): Get this working on IREE.
-    "matrix_ops_dynamic_test.py",
-    "quantization_dyn_test.py",
-    "range_test.py",
-    "ring_buffer_test.py",  # TODO(b/148747011)
-    "scatter_update_test.py",
-]
-
-# keep sorted
-VULKAN_FAILING = [
-    "broadcast_to_test.py",
-    "broadcasting_test.py",
-    "conv_transpose_test.py",
-    "dynamic_mlp_relu_test.py",
-    "dynamic_mlp_test.py",
-    "einsum_dynamic_test.py",
-    "einsum_static_test.py",
-    "einsum_vector_test.py",
-    "fft_test.py",  # TODO(natashaknk): Get this working after kernel is in.
-    "fill_test.py",  # TODO(jennik): Get this test working on IREE.
-    "mandelbrot_test.py",  # TODO(silvasean): Get this working on IREE.
-    "matrix_ops_dynamic_test.py",
-    "quantization_dyn_test.py",
-    "range_test.py",
-    "ring_buffer_test.py",  # TODO(b/148747011)
-    "scatter_update_test.py",
-]
-
-iree_e2e_cartesian_product_test_suite(
-    name = "e2e_tests",
-    failing_configurations = [
-        {
-            "target_backends": "tflite",
-            "src": TFLITE_FAILING,
-        },
-        {
-            "target_backends": "iree_llvmaot",
-            "src": LLVM_FAILING,
-        },
-        {
-            "target_backends": "iree_vulkan",
-            "src": VULKAN_FAILING,
-        },
-    ],
-    matrix = {
-        "src": enforce_glob(
-            ALL_SRCS,
-            include = ["*_test.py"],
-            exclude = ["mobile_bert_squad_test.py"],
-        ),
-        "target_backends": [
-            "tf",
-            "tflite",
-            "iree_llvmaot",
-            "iree_vulkan",
-        ],
-        "reference_backend": "tf",
-    },
-    deps = [
-        "//third_party/py/absl:app",
-        "//third_party/py/absl/flags",
-        "//third_party/py/iree:pylib_tf_support",
-        "//third_party/py/numpy",
-        "//third_party/py/tensorflow",
-        "//util/debuginfo:signalsafe_addr2line_installer",
-    ],
-)
-
-iree_e2e_cartesian_product_test_suite(
-    name = "mobile_bert_squad_tests",
-    size = "enormous",
-    matrix = {
-        "src": "mobile_bert_squad_test.py",
-        "reference_backend": "tf",
-        "target_backends": [
-            "tf",
-            "tflite",
-            "iree_llvmaot",
-            "iree_vulkan",
-        ],
-    },
-    tags = [
-        "external",
-        "guitar",
-        "manual",
-        "no-remote",
-        "nokokoro",
-        "notap",
-    ],
-    deps = [
-        "//third_party/py/absl:app",
-        "//third_party/py/absl/flags",
-        "//third_party/py/iree:pylib_tf_support",
-        "//third_party/py/numpy",
-        "//third_party/py/tensorflow",
-        "//util/debuginfo:signalsafe_addr2line_installer",
-    ],
-)
diff --git a/integrations/tensorflow/e2e/CMakeLists.txt b/integrations/tensorflow/e2e/CMakeLists.txt
deleted file mode 100644
index 460c956..0000000
--- a/integrations/tensorflow/e2e/CMakeLists.txt
+++ /dev/null
@@ -1,91 +0,0 @@
-################################################################################
-# Autogenerated by build_tools/bazel_to_cmake/bazel_to_cmake.py from           #
-# integrations/tensorflow/e2e/BUILD                                            #
-#                                                                              #
-# 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()
-
-file(GLOB _GLOB_X_TEST_PY LIST_DIRECTORIES false RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} CONFIGURE_DEPENDS *_test.py)
-iree_e2e_cartesian_product_test_suite(
-  NAME
-    e2e_tests
-  MATRIX_KEYS
-    "src"
-    "target_backends"
-    "reference_backend"
-  MATRIX_VALUES
-    "batch_norm_test.py;batch_to_space_nd_test.py;broadcast_to_test.py;broadcasting_test.py;concat_test.py;control_flow_test.py;conv_test.py;conv_transpose_test.py;depth_conv_test.py;dynamic_mlp_relu_test.py;dynamic_mlp_test.py;einsum_dynamic_test.py;einsum_static_test.py;einsum_vector_test.py;fft_test.py;fill_test.py;gather_test.py;image_resize_test.py;linspace_test.py;mandelbrot_test.py;matrix_ops_dynamic_test.py;matrix_ops_static_test.py;pytree_test.py;quantization_dyn_test.py;quantization_test.py;range_test.py;resource_ops_test.py;ring_buffer_test.py;scatter_update_test.py;simple_arithmetic_test.py;simple_stateful_test.py;sliding_window_test.py;space_to_batch_nd_test.py"
-    "tf;tflite;iree_llvmaot;iree_vulkan"
-    "tf"
-  FAILING_CONFIGURATIONS
-    "concat_test.py,tflite,"
-    "einsum_dynamic_test.py,tflite,"
-    "einsum_static_test.py,tflite,"
-    "einsum_vector_test.py,tflite,"
-    "fft_test.py,tflite,"
-    "image_resize_test.py,tflite,"
-    "mandelbrot_test.py,tflite,"
-    "pytree_test.py,tflite,"
-    "resource_ops_test.py,tflite,"
-    "ring_buffer_test.py,tflite,"
-    "scatter_update_test.py,tflite,"
-    "simple_stateful_test.py,tflite,"
-    "sliding_window_test.py,tflite,"
-    "broadcast_to_test.py,iree_llvmaot,"
-    "broadcasting_test.py,iree_llvmaot,"
-    "conv_transpose_test.py,iree_llvmaot,"
-    "einsum_dynamic_test.py,iree_llvmaot,"
-    "einsum_static_test.py,iree_llvmaot,"
-    "einsum_vector_test.py,iree_llvmaot,"
-    "fft_test.py,iree_llvmaot,"
-    "fill_test.py,iree_llvmaot,"
-    "mandelbrot_test.py,iree_llvmaot,"
-    "matrix_ops_dynamic_test.py,iree_llvmaot,"
-    "quantization_dyn_test.py,iree_llvmaot,"
-    "range_test.py,iree_llvmaot,"
-    "ring_buffer_test.py,iree_llvmaot,"
-    "scatter_update_test.py,iree_llvmaot,"
-    "broadcast_to_test.py,iree_vulkan,"
-    "broadcasting_test.py,iree_vulkan,"
-    "conv_transpose_test.py,iree_vulkan,"
-    "dynamic_mlp_relu_test.py,iree_vulkan,"
-    "dynamic_mlp_test.py,iree_vulkan,"
-    "einsum_dynamic_test.py,iree_vulkan,"
-    "einsum_static_test.py,iree_vulkan,"
-    "einsum_vector_test.py,iree_vulkan,"
-    "fft_test.py,iree_vulkan,"
-    "fill_test.py,iree_vulkan,"
-    "mandelbrot_test.py,iree_vulkan,"
-    "matrix_ops_dynamic_test.py,iree_vulkan,"
-    "quantization_dyn_test.py,iree_vulkan,"
-    "range_test.py,iree_vulkan,"
-    "ring_buffer_test.py,iree_vulkan,"
-    "scatter_update_test.py,iree_vulkan,"
-)
-
-iree_e2e_cartesian_product_test_suite(
-  NAME
-    mobile_bert_squad_tests
-  MATRIX_KEYS
-    "src"
-    "reference_backend"
-    "target_backends"
-  MATRIX_VALUES
-    "mobile_bert_squad_test.py"
-    "tf"
-    "tf;tflite;iree_llvmaot;iree_vulkan"
-  LABELS
-    "external"
-    "guitar"
-    "manual"
-    "no-remote"
-    "nokokoro"
-    "notap"
-)
-
-### BAZEL_TO_CMAKE_PRESERVES_ALL_CONTENT_BELOW_THIS_LINE ###
diff --git a/integrations/tensorflow/e2e/README.md b/integrations/tensorflow/e2e/README.md
deleted file mode 100644
index 9bf8f31..0000000
--- a/integrations/tensorflow/e2e/README.md
+++ /dev/null
@@ -1,366 +0,0 @@
-# TensorFlow e2e tests
-
-<!-- TODO(meadowlark): Update this doc once the API is stable. -->
-
-> Note:<br>
-> &nbsp;&nbsp;&nbsp;&nbsp;The TensorFlow integrations are currently being
-  refactored. The `bazel` build is deprecated. Refer to
-  https://google.github.io/iree/building-from-source/python-bindings-and-importers/ for a general
-  overview of how to build and execute the e2e tests.
-
-This is a collection of e2e tests that compile a TensorFlow model with IREE (and
-potentially TFLite), run it on multiple backends, and crosscheck the results.
-
-## Pre-Requisites
-
-You will need a TensorFlow 2.0+ nightly installed in your python environment:
-the python binary in `$PYTHON_BIN` should be able to `import tensorflow` and
-that TensorFlow should be version 2.0+. This can be checked with
-`tensorflow.version`.
-
-See [Install TensorFlow with pip](https://www.tensorflow.org/install/pip) for
-instructions.
-
-## Vulkan Setup
-
-If you do not have your environment setup to use IREE with Vulkan (see
-[this doc](https://google.github.io/iree/deployment-configurations/gpu-vulkan/)),
-then you can run the manual test targets with
-`--target_backends=tf,iree_vmvx,iree_llvmaot` (that is, by omitting
-`iree_vulkan` from the list of backends to run the tests on).
-
-The test suites can be run excluding Vulkan by specifying
-`--test_tag_filters="-driver=vulkan"` in the `bazel test` invocation, or by
-adding `test --test_tag_filters="-driver=vulkan"` to your `user.bazelrc`.
-
-## Compiling `tf.Module`s
-
-Compatible TensorFlow modules can be compiled to specific IREE backends using
-`IreeCompiledModule`. This also optionally saves compilation artifacts to a
-specified directory. These artifacts include MLIR across various lowerings and
-the compiled VM FlatBuffer. A basic example of creating and calling an
-`IreeCompiledModule` can be found in
-[`module_utils_test.py`](https://github.com/google/iree/blob/main/integrations/tensorflow/bindings/python/iree/tf/support/module_utils_test.py)
-
-When using Keras models or tf.Modules with functions that IREE can't compile,
-`exported_names` should be specified. For example:
-
-```python
-from iree.tf.support import module_utils
-vmvx_module = module_utils.IreeCompiledModule(
-    module_class=KerasTFModuleClass,
-    backend_info=module_utils.BackendInfo('iree_vmvx'),
-    exported_names=['predict'])
-vmvx_module.predict(...)
-```
-
-## Running Tests
-
-For locally running tests and iterating on backend development, `bazel run` is
-preferred.
-
-```shell
-# Run conv_test on all backends.
-bazel run //integrations/tensorflow/e2e:conv_test_manual
-
-# Run conv_test comparing TensorFlow to itself (e.g. to debug randomization).
-bazel run //integrations/tensorflow/e2e:conv_test_manual -- --target_backends=tf
-
-# Run conv_test comparing the VMLA backend and TensorFlow.
-bazel run //integrations/tensorflow/e2e:conv_test_manual -- --target_backends=iree_vmvx
-
-# Run conv_test comparing the VMLA backend to itself multiple times.
-bazel run //integrations/tensorflow/e2e:conv_test_manual -- \
-  --reference_backend=iree_vmvx --target_backends=iree_vmvx,iree_vmvx
-```
-
-For reproducibility of the unit tests `CompiledModule()` sets the random seeds
-of `tf`, `numpy` and `python` by calling `tf_utils.set_random_seed()` before
-model creation.
-
-## Writing Tests
-
-There are two ways to write tests – via `tf_test_utils.tf_function_unit_test` and
-via test methods on a child of `tf_test_utils.TracedModuleTestCase`.
-
-### Via `tf_test_utils.tf_function_unit_test`
-
-This is preferred in the cases where
-
-1. Only a single call to the module needs to be tested at once
-2. The inputs are simple to automatically generate or specify inline.
-3. The functions that you want to test are generated automatically from a
-   configuration (e.g. in `.../e2e/keras/layers/layers_test.py`)
-
-Tests are specified by writing modules that inherit from
-`tf_test_utils.TestModule` (which is a thin wrapper around `tf.Module`) with
-methods decorated with `@tf_test_utils.tf_function_unit_test` (with is a thin
-wrapper around `tf.function`).
-
-#### Basic example
-
-We use part of `.../e2e/conv_test.py` as an example. The first component is
-the `TestModule` itself:
-
-```python
-class Conv2dModule(tf_test_utils.TestModule):
-
-  # This decorator tells the testing infra to generate a unittest for this
-  # function. The 'input_signature' is required. If no other arguments are
-  # specified then uniform random data is generated from the input signature
-  # to numerically test the function.
-  @tf_test_utils.tf_function_unit_test(input_signature=[
-      tf.TensorSpec([1, 4, 5, 1], tf.float32),
-      tf.TensorSpec([1, 1, 1, 1], tf.float32),
-  ])
-  def conv2d_1451x1111_valid(self, img, kernel):
-    return tf.nn.conv2d(img, kernel, [1, 1, 1, 1], "VALID", name="result")
-
-  @tf_test_utils.tf_function_unit_test(input_signature=[
-      tf.TensorSpec([2, 4, 5, 1], tf.float32),
-      tf.TensorSpec([1, 1, 1, 1], tf.float32),
-  ])
-  def conv2d_2451x1111_valid(self, img, kernel):
-    return tf.nn.conv2d(img, kernel, [1, 1, 1, 1], "VALID", name="result")
-```
-
-Second, you need to write a test case that inherits from
-`tf_test_utils.TracedModuleTestCase`. This is essentially boiler plate that
-tells `tf.test.main()` what `tf.Module` to test and allows us to generate
-the unittests we specified above.
-
-```python
-class ConvTest(tf_test_utils.TracedModuleTestCase):
-
-  def __init__(self, *args, **kwargs):
-    super().__init__(*args, **kwargs)
-    self._modules = tf_test_utils.compile_tf_module(Conv2dModule)
-```
-
-Finally, in the `main` function, you need to call
-`.generate_unit_tests(module_class)` on your `TestCase` to actually generate
-the unittests that we specified:
-
-```python
-def main(argv):
-  del argv  # Unused
-  if hasattr(tf, 'enable_v2_behavior'):
-    tf.enable_v2_behavior()
-  # Generates unittests for all @tf_test_utils.tf_function_unit_test decorated
-  # functions on the module class.
-  # Note: if you are automatically generating functions to test they need to be
-  # specified via a `classmethod` prior to this call _as well_ as via `__init__`
-  # to properly handle stateful `tf.function`s.
-  ConvTest.generate_unit_tests(Conv2dModule)
-  tf.test.main()
-
-
-if __name__ == '__main__':
-  app.run(main)
-```
-
-This generates two unittests: `test_conv2d_1451x1111_valid` and
-`test_conv2d_2451x1111_valid`.
-
-#### Configuring `@tf_test_utils.tf_function_unit_test`
-
-By default `@tf_test_utils.tf_function_unit_test` uses uniform random input data
-to numerically test the function, but you can specify an `input_generator` or
-`input_args` to test data-specific behaviors:
-
-- `input_generator` can be `tf_utils.uniform`, `tf_utils.ndarange`, or any
-function which takes an `shape` and `dtype` as positional args and returns an
-`np.ndarray`.
-- `input_args` is a list of `np.ndarray`s to use as positional arguments.
-
-The comparison `atol` and `rtol` can also be specified in the decorator.
-
-### Via test methods
-
-This is preferred in the cases where
-
-1. The `tf.function` that you want to test is already defined on the module
-   (e.g. on a downloaded model like in `mobile_bert_test.py`)
-2. The inputs are difficult to specify inline and require multiple function
-   calls / reshaping to create
-3. You want to test multiple consecutive calls to a `tf.function` (e.g. to test
-   mutated state in `ring_buffer_test.py`)
-
-Our tests use a class `TracedModule` to capture and store all of the inputs and
-outputs of a `CompiledModule` in a `Trace`. Each unittest on a `TestCase` uses
-the `compare_backends` method. This method runs the function it is passed with a
-`TracedModule` once for each reference and target backend. The inputs and
-outputs to these modules are then checked for correctness, using the reference
-backend as a source of truth.
-
-We use `simple_arithmetic_test.py` as an example:
-
-```python
-# Create a tf.Module with one or more `@tf.function` decorated methods to test.
-class SimpleArithmeticModule(tf.Module):
-
-  @tf.function(input_signature=[
-      tf.TensorSpec([4], tf.float32),
-      tf.TensorSpec([4], tf.float32)
-  ])
-  def simple_mul(self, a, b):
-    return a * b
-
-# Inherit from `TracedModuleTestCase`.
-class SimpleArithmeticTest(tf_test_utils.TracedModuleTestCase):
-
-  def __init__(self, *args, **kwargs):
-    super().__init__(*args, **kwargs)
-    # Compile a `tf.Module` named `SimpleArithmeticModule` into
-    # `CompiledModule`s for each reference and target backend.
-    self._modules = tf_test_utils.compile_tf_module(SimpleArithmeticModule)
-
-  # Unit test.
-  def test_simple_mul(self):
-
-    # Trace function.
-    def simple_mul(module):
-      # A random seed is automatically set before each call to `simple_mul`.
-      a = tf_utils.uniform([4])
-      b = np.array([400., 5., 6., 7.], dtype=np.float32)
-
-      # The inputs `a` and `b` are recorded along with the output `c`
-      c = module.simple_mul(a, b)
-
-      # The inputs `a` and `b` are recorded along with the (unnamed) output
-      # module.simple_mul returns.
-      module.simple_mul(a, c)
-
-    # Calls `simple_mul` once for each backend, recording the inputs and outputs
-    # to `module` and then comparing them.
-    self.compare_backends(simple_mul, self._modules)
-```
-
-## Test Suites
-
-Test targets are automatically generated for each test file and for each backend
-to check numerical correctness against TensorFlow. Tests targets that pass are
-placed into the `e2e_tests` test suite. Tests that fail on particular backends
-are recorded in lists in the `BUILD` files. For example, if
-`experimental_new_test.py` fails on the `iree_llvmaot` and `iree_vulkan`
-backend then the following lines should be added to the `BUILD` file:
-
-```build
-LLVM_FAILING = [
-    ...
-    "experimental_new_test.py",
-    ...
-]
-
-VULKAN_FAILING = [
-    ...
-    "experimental_new_test.py",
-    ...
-]
-```
-
-Test targets for these backends are placed into the `e2e_tests_failing` test
-suite. Test targets in these test suites can be run as follows:
-
-```shell
-# Run all e2e tests that are expected to pass.
-bazel test //integrations/tensorflow/e2e:e2e_tests
-
-# Run all e2e tests that are expected to fail.
-bazel test //integrations/tensorflow/e2e:e2e_tests_failing
-
-# Run a specific failing e2e test target.
-# Note that generated test targets are prefixed with their test suite name.
-# Also, if broadcasting_test starts working on iree_vulkan after the time
-# of writing then this command will fail.
-bazel test //integrations/tensorflow/e2e:e2e_tests_failing_broadcasting_test__tf__iree_vulkan
-```
-
-## Generated Artifacts
-
-By default, running an E2E test generates a number of compilation, debugging and
-benchmarking artifacts. These artifacts will be saved
-
-- in `/tmp/iree/modules/` when using `bazel run` or `bazel_test` with
-  `--test_arg=--artifacts_dir=/tmp/iree/modules/`.
-- in `bazel-testlogs/integrations/tensorflow/e2e/test_suite_target_name` when
-  using `bazel test` without specifying `--artifacts_dir`.
-
-The generated directory structure for each module is as follows:
-
-```shell
-/tmp/iree/modules/ModuleName
-  ├── reproducer__backend.mlir
-  │   # If there is a compilation error, a MLIR file that reproduces the error
-  │   # for a specific backend is included.
-  ├── tf_input.mlir
-  │   # MLIR for ModuleName in TF's input dialect.
-  ├── iree_input.mlir
-  │   # tf_input.mlir translated to IREE MLIR.
-  ├── iree_vmvx
-  │   # Or any other IREE backend.
-  │   ├── compiled.vmfb
-  │   │   # A flatbuffer containing IREE's compiled code.
-  │   └── traces
-  │       # Directory with a trace for each unittest in vision_model_test.py.
-  │       ├── trace_function_1
-  │       │   # Directory storing logs and serialization for a specific trace.
-  │       │   │── flagfile
-  │       │   │   # An Abseil flagfile containing arguments
-  │       │   │   # iree-benchmark-module needs to benchmark this trace.
-  │       │   └── log.txt
-  │       │       # A more detailed version of the test logs.
-  │       │── trace_function_2
-  │       └── ...
-  ├── tflite  # If TFLite supports compiling ModuleName.
-  │   ├── method_1.tflite  # Methods on ModuleName compiled to bytes with TFLite
-  │   │   # A method on ModuleName compiled to bytes with TFLite, which can
-  │   │   # be ingested by TFLite's benchmark_model binary.
-  │   ├── method_2.tflite
-  │   └── traces
-  │       └── ...
-  └── tf_ref  # Directory storing the tensorflow reference traces.
-      └── traces
-          └── ...
-```
-
-Traces for a particular test can be loaded via the `Trace.load(trace_dir)`
-method. For example:
-
-```python
-ref_trace = Trace.load("/tmp/iree/modules/ModuleName/tf_ref/traces/predict/")
-tar_trace = Trace.load("/tmp/iree/modules/ModuleName/iree_vmvx/traces/predict/")
-abs_diff = np.abs(ref_trace.calls[0].outputs[0] - tar_trace.calls[0].outputs[0])
-print(np.mean(abs_diff))
-```
-
-Traces are named after the trace functions defined in their unittests. So in the
-`SimpleArithmeticModule` example above, the `trace_dir` would be
-`/tmp/iree/modules/SimpleArithmeticModule/iree_vmvx/traces/simple_mul/`.
-
-## Benchmarking E2E Modules
-
-We use our end-to-end TensorFlow integrations tests to generate tested
-compilation and benchmarking artifacts. This allows us to validate that our
-benchmarks are behaving as we expect them to, and to run them using valid inputs
-for each model. An overview of how to run benchmarks on IREE and TFLite can be
-found in
-[this doc](https://github.com/google/iree/blob/main/docs/developers/developing_iree/e2e_benchmarking.md).
-
-## Debugging Tests
-
-If the compiler fails to compile the program, then it will create a crash
-reproducer (see
-[MLIR documentation](https://mlir.llvm.org/docs/PassManagement/#crash-and-failure-reproduction)),
-which then allows reproducing the bug with an appropriate "opt" tool. Further
-debugging iteration can happen in opt.
-
-TODO(silvasean): debugging miscompiles
-
-## Testing SignatureDef SavedModels
-
-TensorFlow 1.x SavedModels can be tested using
-`tf_test_utils.compile_tf_signature_def_saved_model` instead of
-`tf_test_utils.compile_tf_module`. See `mobile_bert_squad_test.py` for a
-concrete example. The compilation artifacts will be saved under whatever
-you specify for `module_name`.
diff --git a/integrations/tensorflow/e2e/iree_e2e_cartesian_product_test_suite.bzl b/integrations/tensorflow/e2e/iree_e2e_cartesian_product_test_suite.bzl
deleted file mode 100644
index 38f93b6..0000000
--- a/integrations/tensorflow/e2e/iree_e2e_cartesian_product_test_suite.bzl
+++ /dev/null
@@ -1,263 +0,0 @@
-# Copyright 2020 The IREE Authors
-#
-# Licensed under the Apache License v2.0 with LLVM Exceptions.
-# See https://llvm.org/LICENSE.txt for license information.
-# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-
-# ***THIS FILE DOES NOT BUILD WITH BAZEL***
-#
-# It is open sourced for reference for the Bazel->CMake conversion to maintain
-# test coverage of our integration tests in open source while we figure out a
-# long term plan for our integration testing.
-
-"""Macro for building e2e tests by expanding a matrix of test configurations."""
-
-load("@iree//build_tools/bazel:deep_copy.bzl", "deep_copy")
-
-def get_driver(backend):
-    # TODO(#2175): Simplify this after backend names are standardized.
-    driver = backend.replace("iree_", "")  # "iree_<driver>" --> "<driver>"
-    return driver
-
-def _normalize_dictionary(dictionary):
-    """Wraps every value of dictionary in a list if it isn't one already."""
-    for key, value in dictionary.items():
-        if type(value) != type([]):
-            dictionary[key] = [value]
-    return dictionary
-
-def _dictionary_product(dictionary):
-    """Returns a named cartesian product of dictionary's values."""
-
-    # Converts {'a': [1, 2], 'b': [3, 4]} into
-    # [{'a': 1, 'b': 3}, {'a': 1, 'b': 4}, {'a': 2, 'b': 3}, {'a': 2, 'b': 4}]
-    product = [[]]
-    for values in dictionary.values():
-        # Iteratively grow the elements of the product.
-        product = [element + [value] for element in product for value in values]
-    dicts = [{k: v for k, v in zip(dictionary, element)} for element in product]
-    return dicts
-
-def iree_e2e_cartesian_product_test_suite(
-        name,
-        matrix,
-        failing_configurations = None,
-        tags = None,
-        data = None,
-        deps = None,
-        size = None,
-        python_version = "PY3",
-        **kwargs):
-    """Creates a test for each configuration and bundles a succeeding and failing test suite.
-
-    Computes the cartesian product of `matrix` and then creates a test for each
-    element of that product. Tests specified in `failing_configurations` are
-    bundled into a test suite suffixed with "_failing" and tagged to be excluded
-    from CI and wildcard builds. All other tests are bundled into a suite with
-    the same name as the macro.
-
-    For example, given the following values
-
-        matrix = {
-            "src": "application_test.py"
-            "use_external_weights": True,
-            "model": [
-                "ResNet50",
-                "MobileBert",
-            ],
-            "target_backends": [
-                "tf",
-                "iree_vmvx"
-                "iree_vulkan",
-            ]
-        }
-        failing_configurations = [
-            {
-                "model": "MobileBert",
-                "target_backends": "iree_vulkan",
-            },
-            {
-                "model": ["ResNet50"],
-            },
-        ]
-
-    the following passing and failing configurations would be generated:
-        # Passing
-        {src: application_test.py, use_exernal_weights: True, model: MobileBert, target_backends: tf}
-        {src: application_test.py, use_exernal_weights: True, model: MobileBert, target_backends: iree_vmvx}
-
-        # Failing
-        {src: application_test.py, use_exernal_weights: True, model: ResNet50,   target_backends: tf}
-        {src: application_test.py, use_exernal_weights: True, model: ResNet50,   target_backends: iree_vmvx}
-        {src: application_test.py, use_exernal_weights: True, model: ResNet50,   target_backends: iree_vulkan}
-        {src: application_test.py, use_exernal_weights: True, model: MobileBert, target_backends: iree_vulkan}
-
-    Args:
-      name:
-        name of the generated passing test suite. If failing_configurations
-        is not `None` then a test suite named name_failing will also be
-        generated.
-      failing_configurations:
-        an iterable of dictionaries specifying which matrix values the test is
-        failing for. If a key is present in `matrix`, but not present in an
-        entry of `failing_configurations`, then all of the values in
-        `matrix[flag_name]` are included. (See `ResNet50` in the example above).
-      matrix:
-        a dictionary of strings to lists to take a cartesian product of. Values
-        that are not lists are normalized to single-element lists. `src` is
-        required and is extracted as the sole source file and main for the
-        underlying python test. `target_backends` must be specified. All other
-        keys are passed as command line flags to the test.
-      tags:
-        tags to apply to the test. Note that as in standard test suites, manual
-        is treated specially and will also apply to the test suite itself.
-      data:
-        external data for py_test.
-      deps:
-        test dependencies for py_test.
-      size:
-        size of the tests for py_test.
-      python_version:
-        the python version to run the tests with. Uses python3 by default.
-      **kwargs:
-        any additional arguments that will be passed to the underlying tests and
-        test_suite.
-    """
-    if not "target_backends" in matrix:
-        fail("`target_backends` must be a key in `matrix`.")
-    if not "src" in matrix:
-        fail("`src` must be a key in `matrix`.")
-
-    # Bazel will implictly mutate this variable's state if it is not copied.
-    # This allows failing configurations to be reused in BUILD files.
-    failing_configurations = deep_copy(failing_configurations)
-
-    # Normalize matrix to always have lists as its values.
-    # e.g. {use_external_data: True} -> {use_external_data: [True]}
-    matrix = _normalize_dictionary(matrix)
-
-    all_matrix_configurations = _dictionary_product(matrix)
-
-    failing_matrix_configurations = []
-    if failing_configurations != None:
-        for failing_configuration in failing_configurations:
-            failing_configuration = _normalize_dictionary(failing_configuration)
-
-            for key in failing_configuration:
-                if key not in matrix:
-                    fail("Encountered unexpected key \"{}\" ".format(key) +
-                         "in a failing configuration. Expected one of " +
-                         "{}.".format(list(matrix.keys())))
-
-            # If a flag isn't specified in the failing configuration, assume it
-            # is failing for all values of that flag.
-            for key, values in matrix.items():
-                if key not in failing_configuration:
-                    failing_configuration[key] = values
-
-            failing_matrix_configurations.extend(
-                _dictionary_product(failing_configuration),
-            )
-
-    tests = []
-    for flags in all_matrix_configurations:
-        # Check if this is a failing configuration.
-        failing = flags in failing_matrix_configurations
-
-        # These keys that are required and we have extra logic around.
-        target_backend = flags.pop("target_backends")
-        src = flags.pop("src")
-
-        if len(target_backend.split(",")) > 1:
-            fail("Multiple target backends cannot be specified at once, but " +
-                 "got `{}`".format(flags["target_backends"]))
-
-        # Append "_failing" to name if this is a failing configuration.
-        test_name = name if not failing else name + "_failing"
-        test_name = [test_name]
-
-        # Append the meaningful part of the source file name
-        if len(matrix["src"]) > 1:
-            src_name = src
-            if src_name.endswith(".py"):
-                src_name = src_name[:-len(".py")]
-            if src_name.endswith("_test"):
-                src_name = src_name[:-len("_test")]
-            test_name.append(src_name)
-
-        # Append the target backend
-        test_name.append(target_backend)
-
-        # For all other flags, append their key and value if the value isn't
-        # always the same.
-        for k, v in flags.items():
-            if len(matrix[k]) > 1:
-                test_name.append(k)
-                test_name.append(str(v))
-        test_name = "__".join(test_name)
-        tests.append(test_name)
-
-        # Need to add back target_backends, since we pulled it out above.
-        args = ["--target_backends={}".format(target_backend)] + [
-            "--{}={}".format(k, v)
-            for k, v in flags.items()
-        ]
-        py_test_tags = ["driver={}".format(get_driver(target_backend))]
-        if tags != None:  # `is` is not supported.
-            py_test_tags += tags
-
-        # Add additional tags if this is a failing configuration.
-        if failing:
-            py_test_tags += [
-                "failing",
-                "manual",
-                "nokokoro",
-                "notap",
-            ]
-
-        native.py_test(
-            name = test_name,
-            main = src,
-            srcs = [src],
-            args = args,
-            data = data,
-            deps = deps,
-            size = size,
-            tags = py_test_tags,
-            python_version = python_version,
-            **kwargs
-        )
-
-    if tags == None:
-        tags = []
-
-    if len(all_matrix_configurations) > 1:
-        native.test_suite(
-            name = name,
-            tests = tests,
-            # Add "-failing" to exclude tests in `tests` that have the "failing"
-            # tag.
-            tags = tags + ["-failing"],
-            # If there are kwargs that need to be passed here which only apply to
-            # the generated tests and not to test_suite, they should be extracted
-            # into separate named arguments.
-            **kwargs
-        )
-
-    if failing_configurations != None:
-        native.test_suite(
-            name = name + "_failing",
-            tests = tests,
-            # Add "+failing" to only include tests in `tests` that have the
-            # "failing" tag.
-            tags = tags + [
-                "+failing",
-                "manual",
-                "nokokoro",
-                "notap",
-            ],
-            # If there are kwargs that need to be passed here which only apply
-            # to the generated tests and not to test_suite, they should be
-            # extracted into separate named arguments.
-            **kwargs
-        )
diff --git a/integrations/tensorflow/e2e/iree_e2e_cartesian_product_test_suite.cmake b/integrations/tensorflow/e2e/iree_e2e_cartesian_product_test_suite.cmake
deleted file mode 100644
index 5674c0c..0000000
--- a/integrations/tensorflow/e2e/iree_e2e_cartesian_product_test_suite.cmake
+++ /dev/null
@@ -1,274 +0,0 @@
-# Copyright 2021 The IREE Authors
-#
-# Licensed under the Apache License v2.0 with LLVM Exceptions.
-# See https://llvm.org/LICENSE.txt for license information.
-# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-
-# iree_e2e_cartesian_product_test_suite()
-#
-# Expands a testing matrix to create python test targets.
-#
-# Mirrors the bzl rule of the same name.
-#
-# This rule uses CMake in a way that it was never meant to be used. In
-# particular it uses custom hackery to enable nested data structures. The
-# original Starlark rule was written without the expectation that it would ever
-# need to be ported to CMake and so has some complex matrix expansion logic.
-# The author apologizes for what you are about to read.
-#
-# Parameters:
-#   NAME: Base name of the test targets.
-#   MATRIX_KEYS: Keys for the different dimensions of the matrix to be expanded.
-#       One of the keys must be `src` and is expanded to the source files for
-#       each test. One key must be `target_backends` and is expanded to the
-#       target backends for the IREE integration test. It is also used to derive
-#       a driver label to attach to the generated tests. All other keys are
-#       assumed to correspond to flag names that should be passed to the
-#       generated tests (with the corresponding values from MATRIX_VALUES).
-#   MATRIX_VALUES: Lists of values for each key of the matrix. Each element of
-#       this argument is interpreted as a list and the order of arguments must
-#       match MATRIX_KEYS.
-#   FAILING_CONFIGURATIONS: Configurations in the matrix expansion that are
-#       expected to fail. Each element of this argument is a *comma*-separated
-#       list of matrix values in the same order as MATRIX_KEYS (and having the
-#       same number of elements. An empty element is interpreted to correspond
-#       to all values for that key in the matrix.
-#   LABELS: Additional labels to apply to the test. The package path and
-#       "driver=${DRIVER}" based on the target_backends matrix key are added
-#       automatically.
-#
-#
-# Example:
-#   iree_e2e_cartesian_product_test_suite(
-#     NAME
-#       my_tests
-#     MATRIX_KEYS
-#       "src"
-#       "target_backend"
-#       "reference_backend"
-#       "magic_flag"
-#     MATRIX_VALUES
-#       "concat_test.py;range_test.py"
-#       "tf;tflite;iree_vmvx;iree_llvmaot;iree_vulkan"
-#       "tf"
-#       "true;false"
-#    FAILING_CONFIGURATIONS
-#      "concat_test.py,,,true"
-#      "range_test.py,iree_vulkan,,"
-#   )
-#
-# Would expand to the following tests:
-#   DISABLED: python concat_test.py --target_backend=tf           --reference_backend=tf --magic_flag=true
-#   DISABLED: python concat_test.py --target_backend=tflite       --reference_backend=tf --magic_flag=true
-#   DISABLED: python concat_test.py --target_backend=iree_vmvx    --reference_backend=tf --magic_flag=true
-#   DISABLED: python concat_test.py --target_backend=iree_llvmaot --reference_backend=tf --magic_flag=true
-#   DISABLED: python concat_test.py --target_backend=iree_vulkan  --reference_backend=tf --magic_flag=true
-#             python range_test.py  --target_backend=tf           --reference_backend=tf --magic_flag=true
-#             python range_test.py  --target_backend=tflite       --reference_backend=tf --magic_flag=true
-#             python range_test.py  --target_backend=iree_vmvx    --reference_backend=tf --magic_flag=true
-#             python range_test.py  --target_backend=iree_llvmaot --reference_backend=tf --magic_flag=true
-#   DISABLED: python range_test.py  --target_backend=iree_vulkan  --reference_backend=tf --magic_flag=true
-#             python concat_test.py --target_backend=tf           --reference_backend=tf --magic_flag=false
-#             python concat_test.py --target_backend=tflite       --reference_backend=tf --magic_flag=false
-#             python concat_test.py --target_backend=iree_vmvx    --reference_backend=tf --magic_flag=false
-#             python concat_test.py --target_backend=iree_llvmaot --reference_backend=tf --magic_flag=false
-#             python concat_test.py --target_backend=iree_vulkan  --reference_backend=tf --magic_flag=false
-#             python range_test.py  --target_backend=tf           --reference_backend=tf --magic_flag=false
-#             python range_test.py  --target_backend=tflite       --reference_backend=tf --magic_flag=false
-#             python range_test.py  --target_backend=iree_vmvx    --reference_backend=tf --magic_flag=false
-#             python range_test.py  --target_backend=iree_llvmaot --reference_backend=tf --magic_flag=false
-#   DISABLED: python range_test.py  --target_backend=iree_vulkan  --reference_backend=tf --magic_flag=false
-#
-function(iree_e2e_cartesian_product_test_suite)
-  if(NOT IREE_BUILD_TESTS)
-    return()
-  endif()
-
-  cmake_parse_arguments(
-    PARSE_ARGV 0
-    _RULE
-    ""
-    "NAME"
-    "MATRIX_KEYS;MATRIX_VALUES;FAILING_CONFIGURATIONS;LABELS"
-  )
-
-  list(LENGTH _RULE_MATRIX_KEYS _MATRIX_KEYS_COUNT)
-  list(LENGTH _RULE_MATRIX_VALUES _MATRIX_VALUES_COUNT)
-
-  if(NOT _MATRIX_KEYS_COUNT EQUAL _MATRIX_VALUES_COUNT)
-    message(
-      SEND_ERROR
-        "MATRIX_KEYS count ${_MATRIX_KEYS_COUNT} does not match MATRIX_VALUES"
-        " count ${_MATRIX_VALUES_COUNT}"
-    )
-  endif()
-  list(FIND _RULE_MATRIX_KEYS "src" _SRC_KEY_INDEX)
-  if(_SRC_KEY_INDEX EQUAL -1)
-    message(
-      SEND_ERROR
-        "Did not find key `src` in MATRIX_KEYS: ${_RULE_MATRIX_KEYS}"
-    )
-  endif()
-
-  list(FIND _RULE_MATRIX_KEYS "target_backends" _TARGET_BACKENDS_KEY_INDEX)
-  if(_TARGET_BACKENDS_KEY_INDEX EQUAL -1)
-    message(
-      SEND_ERROR
-        "Did not find key `target_backends` in MATRIX_KEYS: ${_RULE_MATRIX_KEYS}"
-    )
-  endif()
-  math(EXPR _MAX_INDEX "${_MATRIX_KEYS_COUNT} - 1")
-
-  # Process failing configurations, expanding empty entries to be all entries
-  # for that key.
-  set(_FAILING_CONFIGURATIONS "")
-  foreach(_FAILING_CONFIGURATION IN LISTS _RULE_FAILING_CONFIGURATIONS)
-    # Convert comma-delimited string into a list. Lists in CMake are just
-    # semicolon-delimited 🤢
-    string(REPLACE "," ";" _CONFIGURATION_LIST "${_FAILING_CONFIGURATION}")
-    list(LENGTH _CONFIGURATION_LIST _CONFIGURATION_KEY_COUNT)
-    if(NOT _CONFIGURATION_KEY_COUNT EQUAL _MATRIX_KEYS_COUNT)
-      message(
-        SEND_ERROR
-          "Failing configuration ${_FAILING_CONFIGURATION} does not have same"
-          " number of entries (${_MATRIX_KEY_COUNT}) as MATRIX_KEYS")
-    endif()
-
-    # If the first value in this config entry is empty, it expands to all values
-    # for the corresponding key. We have to seed the first entry to start off
-    # the list because it is impossible to create a list in CMake where the only
-    # entry is the empty string.
-    list(GET _CONFIGURATION_LIST 0 _FIRST_CONFIG_VALUE)
-    if("${_FIRST_CONFIG_VALUE}" STREQUAL "")
-      list(GET _RULE_MATRIX_VALUES 0 _EXPANDED_CONFIGURATIONS)
-    else()
-      set(_EXPANDED_CONFIGURATIONS "${_FIRST_CONFIG_VALUE}")
-    endif()
-
-    # For the remaining entries, append them to configurations that are already
-    # expanded.
-    foreach(_INDEX RANGE 1 "${_MAX_INDEX}")
-      list(GET _CONFIGURATION_LIST ${_INDEX} _CONFIG_VALUE)
-      if("${_CONFIG_VALUE}" STREQUAL "")
-        # If the value for this key is unset, it represents all possible values
-        # for this key. For each such value, create a new list of configs that
-        # is the current list with the value appended (comma-delimited).
-        set(_KEY_CONFIGURATIONS "")
-        list(GET _RULE_MATRIX_VALUES ${_INDEX} _MATRIX_VALUES)
-        foreach(_MATRIX_VALUE IN LISTS _MATRIX_VALUES)
-          list(TRANSFORM
-            _EXPANDED_CONFIGURATIONS
-            APPEND ",${_MATRIX_VALUE}"
-            OUTPUT_VARIABLE _KEY_VALUE_CONFIGURATIONS)
-          list(APPEND _KEY_CONFIGURATIONS ${_KEY_VALUE_CONFIGURATIONS})
-        endforeach()
-        set(_EXPANDED_CONFIGURATIONS "${_KEY_CONFIGURATIONS}")
-      else()
-        # If set, append it (comma-delimited) to every entry already existing.
-        list(TRANSFORM
-          _EXPANDED_CONFIGURATIONS
-          APPEND ",${_CONFIG_VALUE}"
-          OUTPUT_VARIABLE _EXPANDED_CONFIGURATIONS)
-      endif()
-    endforeach()
-
-    # Add the configurations for this entry to the full list.
-    list(APPEND _FAILING_CONFIGURATIONS ${_EXPANDED_CONFIGURATIONS})
-  endforeach()
-  list(REMOVE_DUPLICATES _FAILING_CONFIGURATIONS)
-
-
-  # Build up all configurations, taking a cartesian product of the matrix
-  # values. This is much like the processing of failing configurations except
-  # that every key expands to all possible values for that key.
-
-  # Seed configurations with the first list of matrix values.
-  list(GET _RULE_MATRIX_VALUES 0 _ALL_CONFIGURATIONS)
-
-  # For each value in each subsequent list of values, create a new list of
-  # configs that is the current list with the new value appended
-  # (comma-delimited).
-  foreach(_INDEX RANGE 1 "${_MAX_INDEX}")
-    list(GET _RULE_MATRIX_VALUES ${_INDEX} _MATRIX_VALUES)
-    set(_KEY_CONFIGURATIONS "")
-    foreach(_MATRIX_VALUE IN LISTS _MATRIX_VALUES)
-      list(TRANSFORM
-        _ALL_CONFIGURATIONS
-        APPEND ",${_MATRIX_VALUE}"
-        OUTPUT_VARIABLE _KEY_VALUE_CONFIGURATIONS)
-      list(APPEND _KEY_CONFIGURATIONS ${_KEY_VALUE_CONFIGURATIONS})
-    endforeach()
-    set(_ALL_CONFIGURATIONS ${_KEY_CONFIGURATIONS})
-  endforeach()
-
-
-  # Now that we have all the configurations, iterate through them all, excluding
-  # the failing configurations.
-  foreach(_CONFIGURATION IN LISTS _ALL_CONFIGURATIONS)
-    # Skip this configuration if it's failing.
-    list(FIND _FAILING_CONFIGURATIONS "${_CONFIGURATION}" _FAILING_INDEX)
-    if (NOT _FAILING_INDEX EQUAL -1)
-      continue()
-    endif()
-
-    # Convert comma-delimited string into a list. Lists in CMake are just
-    # semicolon-delimited 🤢
-    string(REGEX MATCHALL "[^,]+" _CONFIGURATION_LIST "${_CONFIGURATION}")
-
-    # Extract the special keys.
-    list(GET _CONFIGURATION_LIST ${_SRC_KEY_INDEX} _TEST_SRC)
-    list(GET _CONFIGURATION_LIST ${_TARGET_BACKENDS_KEY_INDEX} _TEST_TARGET_BACKENDS)
-
-    # Construct the test name, which is the base name followed by the salient
-    # part of the source file name, the target backend name, and finally the
-    # other matrix keys and values if there is more than one value for a given
-    # key.
-    set(_TEST_NAME_LIST "${_RULE_NAME}")
-    string(REGEX REPLACE "\.py$" "" _STRIPPED_SRC_NAME "${_TEST_SRC}")
-    string(REGEX REPLACE "_test$" "" _STRIPPED_SRC_NAME "${_STRIPPED_SRC_NAME}")
-    list(APPEND _TEST_NAME_LIST "${_STRIPPED_SRC_NAME}" "${_TEST_TARGET_BACKENDS}")
-
-    # Append the key and value for all other matrix keys if there is more than
-    # one value for the given key.
-    foreach(_INDEX RANGE "${_MAX_INDEX}")
-      list(GET _RULE_MATRIX_VALUES ${_INDEX} _KEY_MATRIX_VALUES)
-      list(LENGTH _KEY_MATRIX_VALUES _KEY_MATRIX_VALUES_COUNT)
-      if (NOT _INDEX EQUAL _SRC_KEY_INDEX AND
-          NOT _INDEX EQUAL _TARGET_BACKENDS_KEY_INDEX AND
-          NOT _KEY_MATRIX_VALUES_COUNT EQUAL 1)
-        list(GET _RULE_MATRIX_KEYS ${_INDEX} _MATRIX_KEY)
-        list(GET _CONFIGURATION_LIST ${_INDEX} _MATRIX_VALUE)
-        list(APPEND _TEST_NAME_LIST "${_MATRIX_KEY}" "${_MATRIX_VALUE}")
-      endif()
-    endforeach()
-    list(JOIN _TEST_NAME_LIST "__" _TEST_NAME)
-
-    # Consruct the test args
-    set(_TEST_ARGS "")
-    foreach(_INDEX RANGE "${_MAX_INDEX}")
-      if (NOT _INDEX EQUAL _SRC_KEY_INDEX)
-        list(GET _RULE_MATRIX_KEYS ${_INDEX} _MATRIX_KEY)
-        list(GET _CONFIGURATION_LIST ${_INDEX} _MATRIX_VALUE)
-        list(APPEND _TEST_ARGS "--${_MATRIX_KEY}=${_MATRIX_VALUE}")
-      endif()
-    endforeach()
-
-    # Extract the driver label
-    # TODO(#2175): Get rid of this when we have a better specification for
-    # backends.
-    string(REPLACE "iree_" "" _DRIVER "${_TEST_TARGET_BACKENDS}")
-    set(_TEST_LABELS "${_RULE_LABELS}")
-    list(APPEND _TEST_LABELS "driver=${_DRIVER}")
-
-    iree_py_test(
-      NAME
-        ${_TEST_NAME}
-      SRCS
-        "${_TEST_SRC}"
-      ARGS
-        ${_TEST_ARGS}
-      LABELS
-        ${_TEST_LABELS}
-    )
-  endforeach()
-endfunction()
diff --git a/integrations/tensorflow/e2e/keras/BUILD b/integrations/tensorflow/e2e/keras/BUILD
deleted file mode 100644
index 6536cb0..0000000
--- a/integrations/tensorflow/e2e/keras/BUILD
+++ /dev/null
@@ -1,219 +0,0 @@
-# Copyright 2020 The IREE Authors
-#
-# Licensed under the Apache License v2.0 with LLVM Exceptions.
-# See https://llvm.org/LICENSE.txt for license information.
-# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-
-# ***THIS FILE DOES NOT BUILD WITH BAZEL***
-#
-# It is open sourced to enable Bazel->CMake conversion to maintain test coverage
-# of our integration tests in open source while we figure out a long term plan
-# for our integration testing.
-
-load(
-    "@iree//integrations/tensorflow/e2e:iree_e2e_cartesian_product_test_suite.bzl",
-    "iree_e2e_cartesian_product_test_suite",
-)
-
-package(
-    default_visibility = ["//visibility:public"],
-    features = ["layering_check"],
-    licenses = ["notice"],  # Apache 2.0
-)
-
-[
-    py_binary(
-        name = src.replace(".py", "_manual"),
-        srcs = [src],
-        main = src,
-        python_version = "PY3",
-        deps = [
-            "//third_party/py/absl:app",
-            "//third_party/py/absl/flags",
-            "//third_party/py/iree:pylib_tf_support",
-            "//third_party/py/numpy",
-            "//third_party/py/tensorflow",
-            "//util/debuginfo:signalsafe_addr2line_installer",
-        ],
-    )
-    for src in glob(
-        ["*_test.py"],
-        exclude = ["keyword_spotting_streaming_test.py"],
-    )
-]
-
-# Keyword Spotting Tests:
-KEYWORD_SPOTTING_MODELS = [
-    "svdf",
-    "svdf_resnet",
-    "ds_cnn",
-    "gru",
-    "lstm",
-    "cnn_stride",
-    "cnn",
-    "tc_resnet",
-    "crnn",
-    "dnn",
-    "att_rnn",
-    "att_mh_rnn",
-    "mobilenet",
-    "mobilenet_v2",
-    "xception",
-    "inception",
-    "inception_resnet",
-    "ds_tc_resnet",
-]
-
-NON_STREAMING_KEYWORD_SPOTTING_MODELS = [
-    "att_mh_rnn",
-    "att_rnn",
-    "ds_cnn",
-    "inception",
-    "inception_resnet",
-    "mobilenet",
-    "mobilenet_v2",
-    "svdf_resnet",
-    "tc_resnet",
-    "xception",
-]
-
-iree_e2e_cartesian_product_test_suite(
-    name = "keyword_spotting_tests",
-    failing_configurations = [
-        {
-            "model": [
-                # unrolling True: "Unrolling requires a fixed number of timesteps."
-                # unrolling False: "error: 'tf.BatchMatMulV2' op : unlegalized TensorFlow op still exists"
-                "att_mh_rnn",
-                "att_rnn",
-            ],
-            "target_backends": [
-                "iree_vulkan",
-                "iree_llvmaot",
-            ],
-        },
-    ],
-    matrix = {
-        "src": "keyword_spotting_streaming_test.py",
-        "reference_backend": "tf",
-        "mode": "non_streaming",
-        "model": KEYWORD_SPOTTING_MODELS,
-        "target_backends": [
-            "tf",
-            "tflite",
-            "iree_llvmaot",
-            "iree_vulkan",
-        ],
-    },
-    deps = [
-        "//third_party/google_research/google_research/kws_streaming/models:models_lib",
-        "//third_party/google_research/google_research/kws_streaming/train:train_lib",
-        "//third_party/py/absl:app",
-        "//third_party/py/absl/flags",
-        "//third_party/py/iree:pylib_tf_support",
-        "//third_party/py/numpy",
-        "//third_party/py/tensorflow",
-        "//util/debuginfo:signalsafe_addr2line_installer",
-    ],
-)
-
-iree_e2e_cartesian_product_test_suite(
-    name = "keyword_spotting_internal_streaming_tests",
-    failing_configurations = [
-        {
-            # TFLite cannot compile variables.
-            "target_backends": "tflite",
-        },
-        {
-            # These models do not currently support streaming.
-            "model": NON_STREAMING_KEYWORD_SPOTTING_MODELS,
-        },
-        {
-            "model": [
-                "crnn",  # TODO(b/188221333): Get this test working.
-            ],
-            "target_backends": "iree_vulkan",
-        },
-    ],
-    matrix = {
-        "src": "keyword_spotting_streaming_test.py",
-        "reference_backend": "tf",
-        "mode": "internal_streaming",
-        "model": KEYWORD_SPOTTING_MODELS,
-        "target_backends": [
-            "tf",
-            "tflite",
-            "iree_llvmaot",
-            "iree_vulkan",
-        ],
-    },
-    deps = [
-        "//third_party/google_research/google_research/kws_streaming/models:models_lib",
-        "//third_party/google_research/google_research/kws_streaming/train:train_lib",
-        "//third_party/py/absl:app",
-        "//third_party/py/absl/flags",
-        "//third_party/py/iree:pylib_tf_support",
-        "//third_party/py/numpy",
-        "//third_party/py/tensorflow",
-        "//util/debuginfo:signalsafe_addr2line_installer",
-    ],
-)
-
-iree_e2e_cartesian_product_test_suite(
-    name = "keyword_spotting_external_streaming_tests",
-    failing_configurations = [
-        {
-            # A bug in keras causes the external steraming conversion to fail
-            # when TensorFlow 2.x is used.
-            "target_backends": [
-                "tf",
-                "tflite",
-                "iree_llvmaot",
-                "iree_vulkan",
-            ],
-        },
-        {
-            # These models do not currently support streaming.
-            "model": NON_STREAMING_KEYWORD_SPOTTING_MODELS,
-        },
-    ],
-    matrix = {
-        "src": "keyword_spotting_streaming_test.py",
-        "reference_backend": "tf",
-        "mode": "external_streaming",
-        "model": KEYWORD_SPOTTING_MODELS,
-        "target_backends": [
-            "tf",
-            "tflite",
-            "iree_llvmaot",
-            "iree_vulkan",
-        ],
-    },
-    deps = [
-        "//third_party/google_research/google_research/kws_streaming/models:models_lib",
-        "//third_party/google_research/google_research/kws_streaming/train:train_lib",
-        "//third_party/py/absl:app",
-        "//third_party/py/absl/flags",
-        "//third_party/py/iree:pylib_tf_support",
-        "//third_party/py/numpy",
-        "//third_party/py/tensorflow",
-        "//util/debuginfo:signalsafe_addr2line_installer",
-    ],
-)
-
-py_binary(
-    name = "keyword_spotting_streaming_test_manual",
-    srcs = ["keyword_spotting_streaming_test.py"],
-    main = "keyword_spotting_streaming_test.py",
-    python_version = "PY3",
-    deps = [
-        "//third_party/google_research/google_research/kws_streaming/models:models_lib",
-        "//third_party/google_research/google_research/kws_streaming/train:train_lib",
-        "//third_party/py/absl:app",
-        "//third_party/py/absl/flags",
-        "//third_party/py/iree:pylib_tf_support",
-        "//third_party/py/numpy",
-        "//third_party/py/tensorflow",
-        "//util/debuginfo:signalsafe_addr2line_installer",
-    ],
-)
diff --git a/integrations/tensorflow/e2e/keras/CMakeLists.txt b/integrations/tensorflow/e2e/keras/CMakeLists.txt
deleted file mode 100644
index 55698a8..0000000
--- a/integrations/tensorflow/e2e/keras/CMakeLists.txt
+++ /dev/null
@@ -1,100 +0,0 @@
-################################################################################
-# Autogenerated by build_tools/bazel_to_cmake/bazel_to_cmake.py from           #
-# integrations/tensorflow/e2e/keras/BUILD                                      #
-#                                                                              #
-# 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()
-
-file(GLOB _GLOB_X_TEST_PY LIST_DIRECTORIES false RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} CONFIGURE_DEPENDS *_test.py)
-file(GLOB _GLOB_KEYWORD_SPOTTING_STREAMING_TEST_PY LIST_DIRECTORIES false RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} CONFIGURE_DEPENDS keyword_spotting_streaming_test.py)
-list(REMOVE_ITEM _GLOB_X_TEST_PY ${_GLOB_KEYWORD_SPOTTING_STREAMING_TEST_PY})
-iree_e2e_cartesian_product_test_suite(
-  NAME
-    keyword_spotting_tests
-  MATRIX_KEYS
-    "src"
-    "reference_backend"
-    "mode"
-    "model"
-    "target_backends"
-  MATRIX_VALUES
-    "keyword_spotting_streaming_test.py"
-    "tf"
-    "non_streaming"
-    "svdf;svdf_resnet;ds_cnn;gru;lstm;cnn_stride;cnn;tc_resnet;crnn;dnn;att_rnn;att_mh_rnn;mobilenet;mobilenet_v2;xception;inception;inception_resnet;ds_tc_resnet"
-    "tf;tflite;iree_llvmaot;iree_vulkan"
-  FAILING_CONFIGURATIONS
-    ",,,att_mh_rnn,iree_vulkan"
-    ",,,att_mh_rnn,iree_llvmaot"
-    ",,,att_rnn,iree_vulkan"
-    ",,,att_rnn,iree_llvmaot"
-)
-
-iree_e2e_cartesian_product_test_suite(
-  NAME
-    keyword_spotting_internal_streaming_tests
-  MATRIX_KEYS
-    "src"
-    "reference_backend"
-    "mode"
-    "model"
-    "target_backends"
-  MATRIX_VALUES
-    "keyword_spotting_streaming_test.py"
-    "tf"
-    "internal_streaming"
-    "svdf;svdf_resnet;ds_cnn;gru;lstm;cnn_stride;cnn;tc_resnet;crnn;dnn;att_rnn;att_mh_rnn;mobilenet;mobilenet_v2;xception;inception;inception_resnet;ds_tc_resnet"
-    "tf;tflite;iree_llvmaot;iree_vulkan"
-  FAILING_CONFIGURATIONS
-    ",,,,tflite"
-    ",,,att_mh_rnn,"
-    ",,,att_rnn,"
-    ",,,ds_cnn,"
-    ",,,inception,"
-    ",,,inception_resnet,"
-    ",,,mobilenet,"
-    ",,,mobilenet_v2,"
-    ",,,svdf_resnet,"
-    ",,,tc_resnet,"
-    ",,,xception,"
-    ",,,crnn,iree_vulkan"
-)
-
-iree_e2e_cartesian_product_test_suite(
-  NAME
-    keyword_spotting_external_streaming_tests
-  MATRIX_KEYS
-    "src"
-    "reference_backend"
-    "mode"
-    "model"
-    "target_backends"
-  MATRIX_VALUES
-    "keyword_spotting_streaming_test.py"
-    "tf"
-    "external_streaming"
-    "svdf;svdf_resnet;ds_cnn;gru;lstm;cnn_stride;cnn;tc_resnet;crnn;dnn;att_rnn;att_mh_rnn;mobilenet;mobilenet_v2;xception;inception;inception_resnet;ds_tc_resnet"
-    "tf;tflite;iree_llvmaot;iree_vulkan"
-  FAILING_CONFIGURATIONS
-    ",,,,tf"
-    ",,,,tflite"
-    ",,,,iree_llvmaot"
-    ",,,,iree_vulkan"
-    ",,,att_mh_rnn,"
-    ",,,att_rnn,"
-    ",,,ds_cnn,"
-    ",,,inception,"
-    ",,,inception_resnet,"
-    ",,,mobilenet,"
-    ",,,mobilenet_v2,"
-    ",,,svdf_resnet,"
-    ",,,tc_resnet,"
-    ",,,xception,"
-)
-
-### BAZEL_TO_CMAKE_PRESERVES_ALL_CONTENT_BELOW_THIS_LINE ###
diff --git a/integrations/tensorflow/e2e/keras/applications/BUILD b/integrations/tensorflow/e2e/keras/applications/BUILD
deleted file mode 100644
index cd360b9..0000000
--- a/integrations/tensorflow/e2e/keras/applications/BUILD
+++ /dev/null
@@ -1,296 +0,0 @@
-# Copyright 2020 The IREE Authors
-#
-# Licensed under the Apache License v2.0 with LLVM Exceptions.
-# See https://llvm.org/LICENSE.txt for license information.
-# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-
-# ***THIS FILE DOES NOT BUILD WITH BAZEL***
-#
-# It is open sourced to enable Bazel->CMake conversion to maintain test coverage
-# of our integration tests in open source while we figure out a long term plan
-# for our integration testing.
-
-load(
-    "@iree//integrations/tensorflow/e2e:iree_e2e_cartesian_product_test_suite.bzl",
-    "iree_e2e_cartesian_product_test_suite",
-)
-
-package(
-    default_visibility = ["//visibility:public"],
-    features = ["layering_check"],
-    licenses = ["notice"],  # Apache 2.0
-)
-
-# @unused
-DOC = """
-applications_test_manual is for manual testing of all keras vision models.
-Test will run only manually with all parameters specified manually, for example:
-bazel run -c opt integrations/tensorflow/e2e/keras/applications:applications_test_manual -- \
---target_backends=tf,iree_llvmaot \
---data=imagenet \
---url=https://storage.googleapis.com/iree_models/ \
---model=ResNet50
-
-Command arguments description:
---target_backends: can be combination of these: tf,iree_llvmaot
---data: can be 'imagenet' or 'cifar10'.
-    imagenet - input image size (1, 224, 224, 3)
-    cifar10 - input image size (1, 32, 32, 3) - it is used for quick tests
-            and needs pretrained weights, we pretrained models: ResNet50, MobileNet, MobileNetV2
---include_top: Whether or not to include the final (top) layers of the model.
---url: we need it only for cifar10 models to load weights from https://storage.googleapis.com/iree_models/
-       imagenet pretrained weights url is specified by keras
---model: supports ResNet50, MobileNet, MobileNetV2, ResNet101, ResNet152,
-    ResNet50V2, ResNet101V2, ResNet152V2, VGG16, VGG19, Xception,
-    InceptionV3, InceptionResNetV2, DenseNet121, DenseNet169,
-    DenseNet201, NASNetMobile, NASNetLarge
-    All above models works with 'imagenet' data sets.
-    ResNet50, MobileNet, MobileNetV2 work with both 'imagenet' and 'cifar10' data sets.
-"""
-
-[
-    py_binary(
-        name = src.replace(".py", "_manual"),
-        srcs = [src],
-        main = src,
-        python_version = "PY3",
-        deps = [
-            "//third_party/py/absl:app",
-            "//third_party/py/absl/flags",
-            "//third_party/py/iree:pylib_tf_support",
-            "//third_party/py/numpy",
-            "//third_party/py/tensorflow",
-            "//util/debuginfo:signalsafe_addr2line_installer",
-        ],
-    )
-    for src in glob(["*_test.py"])
-]
-
-KERAS_APPLICATIONS_MODELS = [
-    "DenseNet121",
-    "DenseNet169",
-    "DenseNet201",
-    "EfficientNetB0",
-    "EfficientNetB1",
-    "EfficientNetB2",
-    "EfficientNetB3",
-    "EfficientNetB4",
-    "EfficientNetB5",
-    "EfficientNetB6",
-    "EfficientNetB7",
-    "InceptionResNetV2",
-    "InceptionV3",
-    "MobileNet",
-    "MobileNetV2",
-    "MobileNetV3Large",
-    "MobileNetV3Small",
-    "NASNetLarge",
-    "NASNetMobile",
-    "ResNet101",
-    "ResNet101V2",
-    "ResNet152",
-    "ResNet152V2",
-    "ResNet50",
-    "ResNet50V2",
-    "VGG16",
-    "VGG19",
-    "Xception",
-]
-
-iree_e2e_cartesian_product_test_suite(
-    name = "large_cifar10_tests",
-    size = "large",
-    failing_configurations = [
-        # Frequently OOMs
-        {
-            "target_backends": [
-                "tflite",
-                "iree_llvmaot",
-                "iree_vulkan",
-            ],
-            "model": [
-                "VGG16",
-                "VGG19",
-            ],
-        },
-    ],
-    matrix = {
-        "src": "applications_test.py",
-        "reference_backend": "tf",
-        "data": "cifar10",
-        "model": [
-            # All models with runtime shorter than ResNet50.
-            "MobileNet",  # Max: Vulkan 61.0s
-            "MobileNetV2",  # Max: LLVM 96.3s
-            "ResNet50",  # Max: LLVM 145.6s
-            "VGG16",  # Max: LLVM 89.5s
-            "VGG19",  # Max: LLVM 94.7s
-        ],
-        "target_backends": [
-            "tf",
-            "tflite",
-            "iree_llvmaot",
-            "iree_vulkan",
-        ],
-    },
-    tags = ["manual"],
-    deps = [
-        "//third_party/py/absl:app",
-        "//third_party/py/absl/flags",
-        "//third_party/py/iree:pylib_tf_support",
-        "//third_party/py/numpy",
-        "//third_party/py/tensorflow",
-        "//util/debuginfo:signalsafe_addr2line_installer",
-    ],
-)
-
-iree_e2e_cartesian_product_test_suite(
-    name = "enormous_cifar10_tests",
-    size = "enormous",
-    matrix = {
-        "src": "applications_test.py",
-        "reference_backend": "tf",
-        "data": "cifar10",
-        "model": [
-            "DenseNet121",
-            "DenseNet169",
-            "DenseNet201",
-            "NASNetLarge",
-            "NASNetMobile",
-            "ResNet50V2",
-            "ResNet101",
-            "ResNet101V2",
-            "ResNet152",
-            "ResNet152V2",
-        ],
-        "target_backends": [
-            "tf",
-            "tflite",
-            "iree_llvmaot",
-            "iree_vulkan",
-        ],
-    },
-    tags = [
-        "guitar",
-        "manual",
-        "nokokoro",
-        "notap",
-    ],
-    deps = [
-        "//third_party/py/absl:app",
-        "//third_party/py/absl/flags",
-        "//third_party/py/iree:pylib_tf_support",
-        "//third_party/py/numpy",
-        "//third_party/py/tensorflow",
-        "//util/debuginfo:signalsafe_addr2line_installer",
-    ],
-)
-
-# 'non_hermetic' tests use real model weights to test numerical correctness.
-iree_e2e_cartesian_product_test_suite(
-    name = "cifar10_non_hermetic_tests",
-    size = "large",
-    matrix = {
-        "src": "applications_test.py",
-        "reference_backend": "tf",
-        "data": "cifar10",
-        "url": "https://storage.googleapis.com/iree_models/",
-        "use_external_weights": True,
-        "model": [
-            "MobileNet",
-            "MobileNetV2",
-            "ResNet50",
-        ],
-        "target_backends": [
-            "tf",
-            "tflite",
-            "iree_llvmaot",
-            "iree_vulkan",
-        ],
-    },
-    tags = [
-        "external",
-        "guitar",
-        "manual",
-        "no-remote",
-        "nokokoro",
-        "notap",
-    ],
-    deps = [
-        "//third_party/py/absl:app",
-        "//third_party/py/absl/flags",
-        "//third_party/py/iree:pylib_tf_support",
-        "//third_party/py/numpy",
-        "//third_party/py/tensorflow",
-        "//util/debuginfo:signalsafe_addr2line_installer",
-    ],
-)
-
-# 'non_hermetic' tests use real model weights to test numerical correctness.
-iree_e2e_cartesian_product_test_suite(
-    name = "imagenet_non_hermetic_tests",
-    size = "enormous",
-    failing_configurations = [
-        # TODO(b/186579218): Fix linalg-on-tensors failures in these.
-        {
-            "target_backends": [
-                "iree_llvmaot",
-                "iree_vulkan",
-            ],
-            "model": [
-                "InceptionResNetV2",
-                "InceptionV3",
-                "NASNetLarge",
-                "NASNetMobile",
-                "ResNet152V2",
-            ],
-        },
-    ],
-    matrix = {
-        "src": "applications_test.py",
-        "reference_backend": "tf",
-        "data": "imagenet",
-        "use_external_weights": True,
-        "model": KERAS_APPLICATIONS_MODELS,
-        "target_backends": [
-            "tf",
-            "tflite",
-            "iree_llvmaot",
-            "iree_vulkan",
-        ],
-    },
-    tags = [
-        "external",
-        "guitar",
-        "manual",
-        "nokokoro",
-        "notap",
-    ],
-    deps = [
-        "//third_party/py/absl:app",
-        "//third_party/py/absl/flags",
-        "//third_party/py/iree:pylib_tf_support",
-        "//third_party/py/numpy",
-        "//third_party/py/tensorflow",
-        "//util/debuginfo:signalsafe_addr2line_installer",
-    ],
-)
-
-# It is used to produce weights for keras vision models with input image size
-# 32x32. These models are not optimized for accuracy or latency (they are for
-# debugging only). They have the same neural net topology with keras vision
-# models trained on imagenet data sets
-py_binary(
-    name = "train_vision_models_on_cifar",
-    srcs = ["train_vision_models_on_cifar.py"],
-    python_version = "PY3",
-    srcs_version = "PY2AND3",
-    deps = [
-        "//third_party/py/absl:app",
-        "//third_party/py/absl/flags",
-        "//third_party/py/iree:pylib_tf_support",
-        "//third_party/py/numpy",
-        "//third_party/py/tensorflow",
-        "//util/debuginfo:signalsafe_addr2line_installer",
-    ],
-)
diff --git a/integrations/tensorflow/e2e/keras/applications/CMakeLists.txt b/integrations/tensorflow/e2e/keras/applications/CMakeLists.txt
deleted file mode 100644
index 448e0e4..0000000
--- a/integrations/tensorflow/e2e/keras/applications/CMakeLists.txt
+++ /dev/null
@@ -1,126 +0,0 @@
-################################################################################
-# Autogenerated by build_tools/bazel_to_cmake/bazel_to_cmake.py from           #
-# integrations/tensorflow/e2e/keras/applications/BUILD                         #
-#                                                                              #
-# 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()
-
-file(GLOB _GLOB_X_TEST_PY LIST_DIRECTORIES false RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} CONFIGURE_DEPENDS *_test.py)
-iree_e2e_cartesian_product_test_suite(
-  NAME
-    large_cifar10_tests
-  MATRIX_KEYS
-    "src"
-    "reference_backend"
-    "data"
-    "model"
-    "target_backends"
-  MATRIX_VALUES
-    "applications_test.py"
-    "tf"
-    "cifar10"
-    "MobileNet;MobileNetV2;ResNet50;VGG16;VGG19"
-    "tf;tflite;iree_llvmaot;iree_vulkan"
-  FAILING_CONFIGURATIONS
-    ",,,VGG16,tflite"
-    ",,,VGG19,tflite"
-    ",,,VGG16,iree_llvmaot"
-    ",,,VGG19,iree_llvmaot"
-    ",,,VGG16,iree_vulkan"
-    ",,,VGG19,iree_vulkan"
-  LABELS
-    "manual"
-)
-
-iree_e2e_cartesian_product_test_suite(
-  NAME
-    enormous_cifar10_tests
-  MATRIX_KEYS
-    "src"
-    "reference_backend"
-    "data"
-    "model"
-    "target_backends"
-  MATRIX_VALUES
-    "applications_test.py"
-    "tf"
-    "cifar10"
-    "DenseNet121;DenseNet169;DenseNet201;NASNetLarge;NASNetMobile;ResNet50V2;ResNet101;ResNet101V2;ResNet152;ResNet152V2"
-    "tf;tflite;iree_llvmaot;iree_vulkan"
-  LABELS
-    "guitar"
-    "manual"
-    "nokokoro"
-    "notap"
-)
-
-iree_e2e_cartesian_product_test_suite(
-  NAME
-    cifar10_non_hermetic_tests
-  MATRIX_KEYS
-    "src"
-    "reference_backend"
-    "data"
-    "url"
-    "use_external_weights"
-    "model"
-    "target_backends"
-  MATRIX_VALUES
-    "applications_test.py"
-    "tf"
-    "cifar10"
-    "https://storage.googleapis.com/iree_models/"
-    "True"
-    "MobileNet;MobileNetV2;ResNet50"
-    "tf;tflite;iree_llvmaot;iree_vulkan"
-  LABELS
-    "external"
-    "guitar"
-    "manual"
-    "no-remote"
-    "nokokoro"
-    "notap"
-)
-
-iree_e2e_cartesian_product_test_suite(
-  NAME
-    imagenet_non_hermetic_tests
-  MATRIX_KEYS
-    "src"
-    "reference_backend"
-    "data"
-    "use_external_weights"
-    "model"
-    "target_backends"
-  MATRIX_VALUES
-    "applications_test.py"
-    "tf"
-    "imagenet"
-    "True"
-    "DenseNet121;DenseNet169;DenseNet201;EfficientNetB0;EfficientNetB1;EfficientNetB2;EfficientNetB3;EfficientNetB4;EfficientNetB5;EfficientNetB6;EfficientNetB7;InceptionResNetV2;InceptionV3;MobileNet;MobileNetV2;MobileNetV3Large;MobileNetV3Small;NASNetLarge;NASNetMobile;ResNet101;ResNet101V2;ResNet152;ResNet152V2;ResNet50;ResNet50V2;VGG16;VGG19;Xception"
-    "tf;tflite;iree_llvmaot;iree_vulkan"
-  FAILING_CONFIGURATIONS
-    ",,,,InceptionResNetV2,iree_llvmaot"
-    ",,,,InceptionV3,iree_llvmaot"
-    ",,,,NASNetLarge,iree_llvmaot"
-    ",,,,NASNetMobile,iree_llvmaot"
-    ",,,,ResNet152V2,iree_llvmaot"
-    ",,,,InceptionResNetV2,iree_vulkan"
-    ",,,,InceptionV3,iree_vulkan"
-    ",,,,NASNetLarge,iree_vulkan"
-    ",,,,NASNetMobile,iree_vulkan"
-    ",,,,ResNet152V2,iree_vulkan"
-  LABELS
-    "external"
-    "guitar"
-    "manual"
-    "nokokoro"
-    "notap"
-)
-
-### BAZEL_TO_CMAKE_PRESERVES_ALL_CONTENT_BELOW_THIS_LINE ###
diff --git a/integrations/tensorflow/e2e/keras/applications/applications_test.py b/integrations/tensorflow/e2e/keras/applications/applications_test.py
deleted file mode 100644
index 6479c75..0000000
--- a/integrations/tensorflow/e2e/keras/applications/applications_test.py
+++ /dev/null
@@ -1,113 +0,0 @@
-# Lint as: python3
-# Copyright 2020 The IREE Authors
-#
-# Licensed under the Apache License v2.0 with LLVM Exceptions.
-# See https://llvm.org/LICENSE.txt for license information.
-# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-"""Test all models in tf.keras.applications."""
-
-import os
-
-from absl import app
-from absl import flags
-from iree.tf.support import tf_test_utils
-from iree.tf.support import tf_utils
-import numpy as np
-import tensorflow.compat.v2 as tf
-
-FLAGS = flags.FLAGS
-
-# Testing all applications models automatically can take time
-# so we test it one by one, with argument --model=MobileNet
-flags.DEFINE_string("model", "ResNet50", "model name")
-flags.DEFINE_string(
-    "url", "", "url with model weights "
-    "for example https://storage.googleapis.com/iree_models/")
-flags.DEFINE_bool("use_external_weights", False,
-                  "Whether or not to load external weights from the web")
-flags.DEFINE_enum("data", "cifar10", ["cifar10", "imagenet"],
-                  "data sets on which model was trained: imagenet, cifar10")
-flags.DEFINE_bool(
-    "include_top", True,
-    "Whether or not to include the final (top) layers of the model.")
-
-BATCH_SIZE = 1
-IMAGE_DIM = 224
-
-
-def load_cifar10_weights(model):
-  file_name = "cifar10" + FLAGS.model
-  # get_file will download the model weights from a publicly available folder,
-  # save them to cache_dir=~/.keras/models/ and return a path to them.
-  url = os.path.join(
-      FLAGS.url, f"cifar10_include_top_{FLAGS.include_top:d}_{FLAGS.model}.h5")
-  weights_path = tf.keras.utils.get_file(file_name, url)
-  model.load_weights(weights_path)
-  return model
-
-
-def initialize_model():
-  # If weights == "imagenet", the model will load the appropriate weights from
-  # an external tf.keras URL.
-  weights = None
-  if FLAGS.use_external_weights and FLAGS.data == "imagenet":
-    weights = "imagenet"
-
-  model_class = getattr(tf.keras.applications, FLAGS.model)
-  model = model_class(weights=weights, include_top=FLAGS.include_top)
-
-  if FLAGS.use_external_weights and FLAGS.data == "cifar10":
-    if not FLAGS.url:
-      raise ValueError(
-          "cifar10 weights cannot be loaded without the `--url` flag.")
-    model = load_cifar10_weights(model)
-  return model
-
-
-class ApplicationsModule(tf_test_utils.TestModule):
-
-  def __init__(self):
-    super().__init__()
-    self.m = initialize_model()
-
-    input_shape = list([BATCH_SIZE] + self.m.inputs[0].shape[1:])
-
-    # Some models accept dynamic image dimensions by default, so we use
-    # IMAGE_DIM as a stand-in.
-    for i, dim in enumerate(input_shape):
-      if dim is None:
-        input_shape[i] = IMAGE_DIM
-
-    # Specify input shape with a static batch size.
-    # TODO(b/142948097): Add support for dynamic shapes in SPIR-V lowering.
-    self.call = tf_test_utils.tf_function_unit_test(
-        input_signature=[tf.TensorSpec(input_shape)],
-        name="call",
-        rtol=1e-5,
-        atol=1e-5)(lambda x: self.m(x, training=False))
-
-
-class ApplicationsTest(tf_test_utils.TracedModuleTestCase):
-
-  def __init__(self, *args, **kwargs):
-    super().__init__(*args, **kwargs)
-    self._modules = tf_test_utils.compile_tf_module(
-        ApplicationsModule,
-        exported_names=ApplicationsModule.get_tf_function_unit_tests(),
-        relative_artifacts_dir=os.path.join(FLAGS.model, FLAGS.data))
-
-
-def main(argv):
-  del argv  # Unused.
-  if hasattr(tf, "enable_v2_behavior"):
-    tf.enable_v2_behavior()
-
-  if not hasattr(tf.keras.applications, FLAGS.model):
-    raise ValueError(f"Unsupported model: {FLAGS.model}")
-
-  ApplicationsTest.generate_unit_tests(ApplicationsModule)
-  tf.test.main()
-
-
-if __name__ == "__main__":
-  app.run(main)
diff --git a/integrations/tensorflow/e2e/keras/applications/train_vision_models_on_cifar.py b/integrations/tensorflow/e2e/keras/applications/train_vision_models_on_cifar.py
deleted file mode 100644
index bab64a2..0000000
--- a/integrations/tensorflow/e2e/keras/applications/train_vision_models_on_cifar.py
+++ /dev/null
@@ -1,75 +0,0 @@
-# Lint as: python3
-# Copyright 2020 The IREE Authors
-#
-# Licensed under the Apache License v2.0 with LLVM Exceptions.
-# See https://llvm.org/LICENSE.txt for license information.
-# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-"""Train vision models on CIFAR10."""
-
-import os
-from absl import flags
-from absl import logging
-import numpy as np
-import tensorflow.compat.v1 as tf
-
-FLAGS = flags.FLAGS
-flags.DEFINE_string('model', 'MobileNet', 'keras vision model name')
-flags.DEFINE_string('model_path', '',
-                    'Path to a location where model will be saved.')
-flags.DEFINE_bool(
-    'include_top', True,
-    'Whether or not to include the final (top) layers of the model.')
-
-# minimum size for keras vision models
-INPUT_SHAPE = [1, 32, 32, 3]
-
-
-def main(argv):
-  del argv  # Unused.
-
-  # prepare training and testing data
-  (train_images,
-   train_labels), (test_images,
-                   test_labels) = tf.keras.datasets.cifar10.load_data()
-  train_labels = np.array([x[0] for x in train_labels])
-  test_labels = np.array([x[0] for x in test_labels])
-
-  # Normalize image values to be between 0 and 1
-  train_images, test_images = train_images / 255.0, test_images / 255.0
-
-  # reduce training samples for quick training
-  # we do not need to use all data for getting non zero output scores
-  train_images = train_images[:4000]
-  train_labels = train_labels[:4000]
-
-  # It is a toy model for debugging (not optimized for accuracy or speed).
-  model_class = getattr(tf.keras.applications, FLAGS.model)
-  model = model_class(weights=None,
-                      include_top=FLAGS.include_top,
-                      input_shape=INPUT_SHAPE[1:])
-  model.summary()
-  model.compile(optimizer='adam',
-                loss='sparse_categorical_crossentropy',
-                metrics=['accuracy'])
-
-  # train model
-  model.fit(train_images,
-            train_labels,
-            epochs=1,
-            validation_data=(test_images, test_labels))
-
-  file_name = os.path.join(
-      FLAGS.model_path,
-      f'cifar10_include_top_{FLAGS.include_top:d}_{FLAGS.model}.h5')
-  try:
-    model.save_weights(file_name)
-  except IOError as e:
-    raise IOError(f'Failed to save model at: {file_name}, error: {e}')
-
-  # test model
-  _, test_acc = model.evaluate(test_images, test_labels, verbose=2)
-  logging.info('Test accuracy: %f', test_acc)
-
-
-if __name__ == '__main__':
-  tf.app.run(main=main)
diff --git a/integrations/tensorflow/e2e/keras/keyword_spotting_streaming_test.py b/integrations/tensorflow/e2e/keras/keyword_spotting_streaming_test.py
deleted file mode 100644
index 5c9f3c7..0000000
--- a/integrations/tensorflow/e2e/keras/keyword_spotting_streaming_test.py
+++ /dev/null
@@ -1,82 +0,0 @@
-# Lint as: python3
-# Copyright 2020 The IREE Authors
-#
-# Licensed under the Apache License v2.0 with LLVM Exceptions.
-# See https://llvm.org/LICENSE.txt for license information.
-# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-"""Tests of streamable Keyword Spotting models implemented in Keras."""
-
-import os
-
-from absl import app
-from absl import flags
-from iree.tf.support import tf_test_utils
-from iree.tf.support import tf_utils
-import tensorflow.compat.v2 as tf
-
-from kws_streaming.layers import modes
-from kws_streaming.models import model_flags
-from kws_streaming.models import model_params
-from kws_streaming.models import models
-from kws_streaming.models import utils
-
-FLAGS = flags.FLAGS
-
-ALL_MODELS = list(model_params.HOTWORD_MODEL_PARAMS.keys())
-MODELS_HELP = [f"'{name}'" for name in ALL_MODELS]
-MODELS_HELP = f'{", ".join(MODELS_HELP[:-1])}, or {MODELS_HELP[-1]}'
-
-flags.DEFINE_string(
-    'model', 'svdf', f'Name of the model to compile. Either {MODELS_HELP}.\n'
-    'See https://github.com/google-research/google-research/blob/master/kws_streaming/models/models.py#L38-L58'
-)
-flags.DEFINE_enum('mode', 'non_streaming',
-                  ['non_streaming', 'internal_streaming', 'external_streaming'],
-                  'Mode to execute the model in.')
-
-MODE_ENUM_TO_MODE = {
-    'non_streaming': modes.Modes.NON_STREAM_INFERENCE,
-    'internal_streaming': modes.Modes.STREAM_INTERNAL_STATE_INFERENCE,
-    'external_streaming': modes.Modes.STREAM_EXTERNAL_STATE_INFERENCE,
-}
-
-
-class KeywordSpottingModule(tf_test_utils.TestModule):
-
-  def __init__(self):
-    super().__init__()
-    self.m = utils.get_model_with_default_params(FLAGS.model,
-                                                 MODE_ENUM_TO_MODE[FLAGS.mode])
-
-    call = lambda *args: self.m(*args, training=False)
-    input_signature = [tf.TensorSpec(tensor.shape) for tensor in self.m.inputs]
-    self.call = tf_test_utils.tf_function_unit_test(
-        input_signature=input_signature, name="call", atol=1e-5)(call)
-
-
-class KeywordSpottingTest(tf_test_utils.TracedModuleTestCase):
-
-  def __init__(self, *args, **kwargs):
-    super().__init__(*args, **kwargs)
-    self._modules = tf_test_utils.compile_tf_module(
-        KeywordSpottingModule,
-        exported_names=['call'],
-        relative_artifacts_dir=os.path.join('kws_streaming', FLAGS.model,
-                                            FLAGS.mode))
-
-
-def main(argv):
-  del argv  # Unused.
-  if hasattr(tf, 'enable_v2_behavior'):
-    tf.enable_v2_behavior()
-
-  if FLAGS.model not in ALL_MODELS:
-    raise ValueError(f'Unsupported model: {FLAGS.model}.\n'
-                     f'Expected one of {MODELS_HELP}.')
-
-  KeywordSpottingTest.generate_unit_tests(KeywordSpottingModule)
-  tf.test.main()
-
-
-if __name__ == '__main__':
-  app.run(main)
diff --git a/integrations/tensorflow/e2e/keras/layers/BUILD b/integrations/tensorflow/e2e/keras/layers/BUILD
deleted file mode 100644
index f774694..0000000
--- a/integrations/tensorflow/e2e/keras/layers/BUILD
+++ /dev/null
@@ -1,570 +0,0 @@
-# Copyright 2020 The IREE Authors
-#
-# Licensed under the Apache License v2.0 with LLVM Exceptions.
-# See https://llvm.org/LICENSE.txt for license information.
-# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-
-# ***THIS FILE DOES NOT BUILD WITH BAZEL***
-#
-# It is open sourced to enable Bazel->CMake conversion to maintain test coverage
-# of our integration tests in open source while we figure out a long term plan
-# for our integration testing.
-
-load(
-    "@iree//integrations/tensorflow/e2e:iree_e2e_cartesian_product_test_suite.bzl",
-    "iree_e2e_cartesian_product_test_suite",
-)
-
-package(
-    default_visibility = ["//visibility:public"],
-    features = ["layering_check"],
-    licenses = ["notice"],  # Apache 2.0
-)
-
-[
-    py_binary(
-        name = src.replace(".py", "_manual"),
-        srcs = [src],
-        main = src,
-        python_version = "PY3",
-        deps = [
-            "//third_party/py/absl:app",
-            "//third_party/py/absl/flags",
-            "//third_party/py/iree:pylib_tf_support",
-            "//third_party/py/numpy",
-            "//third_party/py/tensorflow",
-            "//util/debuginfo:signalsafe_addr2line_installer",
-        ],
-    )
-    for src in glob(["*_test.py"])
-]
-
-# These layers were selected by:
-#   1. Getting all subclasses of `tf.keras.layers.Layer`
-#   2. Removing deperacated layers based on the tf.keras docs
-#   3. Removing irrelevant layers
-#   4. Removing layers that don't fit in the testing framework (Wrappers, DenseFeatures, ...)
-LAYERS = [
-    "Activation",
-    "ActivityRegularization",
-    "Add",
-    "AdditiveAttention",
-    "AlphaDropout",
-    "Attention",
-    "Average",
-    "AveragePooling1D",
-    "AveragePooling2D",
-    "AveragePooling3D",
-    "BatchNormalization",
-    "Concatenate",
-    "Conv1D",
-    "Conv1DTranspose",
-    "Conv2D",
-    "Conv2DTranspose",
-    "Conv3D",
-    "Conv3DTranspose",
-    # "ConvLSTM2D",  # TODO(meadowlark): Debug flakiness.
-    "Cropping1D",
-    "Cropping2D",
-    "Cropping3D",
-    "Dense",
-    "DepthwiseConv2D",
-    "Dot",
-    "Dropout",
-    "ELU",
-    "Embedding",
-    "Flatten",
-    "GRU",
-    "GaussianDropout",
-    "GaussianNoise",
-    "GlobalAveragePooling1D",
-    "GlobalAveragePooling2D",
-    "GlobalAveragePooling3D",
-    "GlobalMaxPool1D",
-    "GlobalMaxPool2D",
-    "GlobalMaxPool3D",
-    "InputLayer",
-    "LSTM",
-    "Lambda",
-    "LayerNormalization",
-    "LeakyReLU",
-    "LocallyConnected1D",
-    "LocallyConnected2D",
-    "Masking",
-    "MaxPool1D",
-    "MaxPool2D",
-    "MaxPool3D",
-    "Maximum",
-    "Minimum",
-    "MultiHeadAttention",
-    "Multiply",
-    "PReLU",
-    "Permute",
-    "ReLU",
-    "RepeatVector",
-    "Reshape",
-    "SeparableConv1D",
-    "SeparableConv2D",
-    # "SimpleRNN",  # TODO(meadowlark): Debug flakiness.
-    "Softmax",
-    "SpatialDropout1D",
-    "SpatialDropout2D",
-    "SpatialDropout3D",
-    "Subtract",
-    "ThresholdedReLU",
-    "UpSampling1D",
-    "UpSampling2D",
-    "UpSampling3D",
-    "ZeroPadding1D",
-    "ZeroPadding2D",
-    "ZeroPadding3D",
-]
-
-FAILING_STATIC = [
-    {
-        # Failing on TFLite
-        "layer": [
-            "AveragePooling3D",
-            "Conv3DTranspose",
-            "ConvLSTM2D",
-            "Softmax",
-            "MaxPool3D",
-            "ZeroPadding3D",
-        ],
-        "target_backends": "tflite",
-    },
-    {
-        # Failing on IREE
-        "layer": [
-            "ConvLSTM2D",
-            "GRU",
-            "LSTM",  # Failing unless 'return_sequences = True'
-            "LayerNormalization",
-            "LocallyConnected2D",  # TODO(#4065): VMLA raises INVALID_ARGUMENT errors after DeviceQueue failure.
-            "MultiHeadAttention",
-            "UpSampling2D",
-        ],
-        "target_backends": [
-            "iree_llvmaot",
-            "iree_vulkan",
-        ],
-    },
-    {
-        # Failing on LLVM and Vulkan
-        "layer": [
-            "AveragePooling3D",
-            "Masking",
-            "MaxPool3D",
-            "LocallyConnected1D",  # TODO(#5310): Enable the test.
-        ],
-        "target_backends": [
-            "iree_llvmaot",
-            "iree_vulkan",
-        ],
-    },
-    {
-        # Failing on Vulkan
-        "layer": [
-            "AveragePooling1D",
-            "AveragePooling2D",
-            "Lambda",
-            "MaxPool1D",
-            "MaxPool2D",
-            "Conv3D",  #TODO(#5150): Enable the test.
-            "Conv3DTranspose",  #TODO(#5150): Enable the test.
-            "UpSampling3D",  #TODO(#7481): rank-reducing memref folder generates invalid linalg.copy ops for SwiftShader.
-        ],
-        "target_backends": "iree_vulkan",
-    },
-]
-
-iree_e2e_cartesian_product_test_suite(
-    name = "layers_tests",
-    failing_configurations = FAILING_STATIC,
-    matrix = {
-        "src": "layers_test.py",
-        "reference_backend": "tf",
-        "layer": LAYERS,
-        "dynamic_dims": False,
-        "training": False,
-        "test_default_kwargs_only": True,
-        "target_backends": [
-            "tf",
-            "tflite",
-            "iree_llvmaot",
-            "iree_vulkan",
-        ],
-    },
-    deps = [
-        "//third_party/py/absl:app",
-        "//third_party/py/absl/flags",
-        "//third_party/py/iree:pylib_tf_support",
-        "//third_party/py/numpy",
-        "//third_party/py/tensorflow",
-        "//util/debuginfo:signalsafe_addr2line_installer",
-    ],
-)
-
-# A list of all layers with non-default api tests can be generated by running:
-#   bazel run integrations/tensorflow/e2e/keras/layers:layers_test_manual -- \
-#     --list_layers_with_full_api_tests
-LAYERS_WITH_FULL_API_TESTS = [
-    "ActivityRegularization",
-    "AdditiveAttention",
-    "Attention",
-    "AveragePooling1D",
-    "AveragePooling2D",
-    "AveragePooling3D",
-    "BatchNormalization",
-    "Concatenate",
-    "Conv1D",
-    "Conv1DTranspose",
-    "Conv2D",
-    "Conv2DTranspose",
-    "Conv3D",
-    "Conv3DTranspose",
-    # "ConvLSTM2D",  # TODO(meadowlark): Debug flakiness.
-    "Cropping1D",
-    "Cropping2D",
-    "Cropping3D",
-    "DepthwiseConv2D",
-    "GRU",
-    "LSTM",
-    "LocallyConnected1D",
-    "LocallyConnected2D",
-    "MaxPool1D",
-    "MaxPool2D",
-    "MaxPool3D",
-    "SeparableConv1D",
-    "SeparableConv2D",
-    "SimpleRNN",
-    # "SimpleRNN",  # TODO(meadowlark): Debug flakiness.
-]
-
-FAILING_FULL_API = [
-    {
-        # Failing on TFLite
-        # keep sorted
-        "layer": [
-            "AveragePooling3D",
-            "Conv3D",
-            "Conv3DTranspose",
-            "ConvLSTM2D",
-            "DepthwiseConv2D",
-            "GRU",
-            "LSTM",
-            "LocallyConnected1D",
-            "LocallyConnected2D",
-            "MaxPool3D",
-            "SeparableConv1D",  # Failing on Kokoro.
-            "SeparableConv2D",
-            "SimpleRNN",
-        ],
-        "target_backends": "tflite",
-    },
-    {
-        # Failing on IREE
-        "layer": [
-            "Conv3DTranspose",
-            "ConvLSTM2D",
-            "GRU",
-            "LocallyConnected1D",
-            "LocallyConnected2D",
-            "LSTM",
-            "SimpleRNN",
-        ],
-        "target_backends": [
-            "iree_llvmaot",
-            "iree_vulkan",
-        ],
-    },
-    {
-        # Failing on LLVM and Vulakn
-        "layer": [
-            "AveragePooling1D",
-            "AveragePooling2D",
-            "AveragePooling3D",
-            "Conv1DTranspose",
-            "Conv2DTranspose",
-            "Conv3D",  #TODO(#5150): Enable the test.
-            "MaxPool1D",
-            "MaxPool2D",
-            "MaxPool3D",
-        ],
-        "target_backends": [
-            "iree_llvmaot",
-            "iree_vulkan",
-        ],
-    },
-    {
-        # Failing on Vulakn
-        "layer": [
-            "MaxPool1D",
-            "MaxPool2D",
-        ],
-        "target_backends": [
-            "iree_vulkan",
-        ],
-    },
-]
-
-iree_e2e_cartesian_product_test_suite(
-    name = "layers_full_api_tests",
-    size = "large",
-    failing_configurations = FAILING_FULL_API,
-    matrix = {
-        "src": "layers_test.py",
-        "reference_backend": "tf",
-        "layer": LAYERS_WITH_FULL_API_TESTS,
-        "dynamic_dims": False,
-        "training": False,
-        "test_default_kwargs_only": False,
-        "target_backends": [
-            "tf",
-            "tflite",
-            "iree_llvmaot",
-            "iree_vulkan",
-        ],
-    },
-    deps = [
-        "//third_party/py/absl:app",
-        "//third_party/py/absl/flags",
-        "//third_party/py/iree:pylib_tf_support",
-        "//third_party/py/numpy",
-        "//third_party/py/tensorflow",
-        "//util/debuginfo:signalsafe_addr2line_installer",
-    ],
-)
-
-FAILING_DYNAMIC = [
-    {
-        "layer": [
-            "Add",
-            "Average",
-            "AveragePooling3D",
-            "BatchNormalization",
-            "Conv3D",
-            "Conv3DTranspose",
-            "ConvLSTM2D",
-            "Dense",
-            "GRU",
-            "LSTM",
-            "Lambda",
-            "LayerNormalization",
-            "Masking",
-            "MaxPool3D",
-            "Multiply",
-            "PReLU",
-            "SimpleRNN",
-            "Softmax",
-            "ThresholdedReLU",
-            "ZeroPadding3D",
-        ],
-        "target_backends": "tflite",
-    },
-    {
-        # Failing on IREE
-        # keep sorted
-        "layer": [
-            "AdditiveAttention",
-            "AveragePooling1D",
-            "AveragePooling2D",
-            "AveragePooling3D",
-            "BatchNormalization",
-            "Concatenate",
-            "Conv1D",
-            "Conv1DTranspose",
-            "Conv2D",
-            "Conv2DTranspose",
-            "Conv3D",
-            "Conv3DTranspose",
-            "ConvLSTM2D",
-            "Cropping1D",
-            "Cropping2D",
-            "Cropping3D",
-            "Dense",
-            "DepthwiseConv2D",
-            "Dot",
-            "ELU",
-            "Flatten",
-            "GRU",
-            "LSTM",  # TODO(silvasean): Get this test working on IREE.
-            "LayerNormalization",
-            "LeakyReLU",
-            "LocallyConnected1D",
-            "LocallyConnected2D",
-            "Masking",
-            "MaxPool1D",
-            "MaxPool2D",
-            "MaxPool3D",
-            "MultiHeadAttention",
-            "RepeatVector",
-            "Reshape",
-            "SeparableConv1D",
-            "SeparableConv2D",
-            "SimpleRNN",
-            "ThresholdedReLU",
-            "UpSampling1D",
-            "UpSampling2D",
-            "UpSampling3D",
-            "ZeroPadding1D",
-            "ZeroPadding2D",
-            "ZeroPadding3D",
-        ],
-        "target_backends": [
-            "iree_llvmaot",
-            "iree_vulkan",
-        ],
-    },
-    {
-        # Failing on LLVM and Vulkan
-        # keep sorted
-        "layer": [
-            "Activation",
-            "Add",
-            "Attention",
-            "Average",
-            "Embedding",
-            "GlobalAveragePooling1D",
-            "GlobalAveragePooling2D",
-            "GlobalAveragePooling3D",
-            "Lambda",
-            "Maximum",
-            "Minimum",
-            "Multiply",
-            "PReLU",
-            "ReLU",
-            "Softmax",
-            "Subtract",
-        ],
-        "target_backends": [
-            "iree_llvmaot",
-            "iree_vulkan",
-        ],
-    },
-    {
-        # Failing on Vulkan
-        "layer": [
-            "GlobalMaxPool1D",
-            "GlobalMaxPool2D",
-            "GlobalMaxPool3D",
-            "Permute",
-        ],
-        "target_backends": "iree_vulkan",
-    },
-]
-
-iree_e2e_cartesian_product_test_suite(
-    name = "layers_dynamic_dims_tests",
-    failing_configurations = FAILING_DYNAMIC,
-    matrix = {
-        "src": "layers_test.py",
-        "reference_backend": "tf",
-        "layer": LAYERS,
-        "dynamic_dims": True,
-        "training": False,
-        "test_default_kwargs_only": True,
-        "target_backends": [
-            "tf",
-            "tflite",
-            "iree_llvmaot",
-            "iree_vulkan",
-        ],
-    },
-    deps = [
-        "//third_party/py/absl:app",
-        "//third_party/py/absl/flags",
-        "//third_party/py/iree:pylib_tf_support",
-        "//third_party/py/numpy",
-        "//third_party/py/tensorflow",
-        "//util/debuginfo:signalsafe_addr2line_installer",
-    ],
-)
-
-# Layers that mention a training kwarg in their doc.
-LAYERS_WITH_TRAINING_BEHAVIOR = [
-    "AdditiveAttention",
-    "AlphaDropout",
-    "Attention",
-    "BatchNormalization",
-    # "ConvLSTM2D",  # TODO(meadowlark): Debug flakiness.
-    "Dropout",
-    "GRU",
-    "GaussianDropout",
-    "GaussianNoise",
-    "LSTM",
-    "MultiHeadAttention",
-    # "SimpleRNN",  # TODO(meadowlark): Debug flakiness.
-    "SpatialDropout1D",
-    "SpatialDropout2D",
-    "SpatialDropout3D",
-]
-
-FAILING_TRAINING = [
-    {
-        # Failing on TFLite:
-        "layer": [
-            "AlphaDropout",
-            "BatchNormalization",
-            "ConvLSTM2D",
-            "GaussianDropout",
-            "GaussianNoise",
-            "GRU",
-            "LSTM",
-            "SimpleRNN",
-        ],
-        "target_backends": "tflite",
-    },
-    {
-        # Failing on IREE
-        # keep sorted
-        "layer": [
-            "AdditiveAttention",
-            "AlphaDropout",
-            "Attention",
-            "BatchNormalization",
-            "ConvLSTM2D",
-            "Dropout",
-            "GRU",
-            "GaussianDropout",
-            "GaussianNoise",
-            "LSTM",
-            "MultiHeadAttention",
-            "SimpleRNN",
-            "SpatialDropout1D",
-            "SpatialDropout2D",
-            "SpatialDropout3D",
-        ],
-        "target_backends": [
-            "iree_llvmaot",
-            "iree_vulkan",
-        ],
-    },
-]
-
-iree_e2e_cartesian_product_test_suite(
-    name = "layers_training_tests",
-    failing_configurations = FAILING_TRAINING,
-    matrix = {
-        "src": "layers_test.py",
-        "reference_backend": "tf",
-        "layer": LAYERS_WITH_TRAINING_BEHAVIOR,
-        "dynamic_dims": False,
-        "training": True,
-        "test_default_kwargs_only": True,
-        "target_backends": [
-            "tf",
-            "tflite",
-            "iree_llvmaot",
-            "iree_vulkan",
-        ],
-    },
-    deps = [
-        "//third_party/py/absl:app",
-        "//third_party/py/absl/flags",
-        "//third_party/py/iree:pylib_tf_support",
-        "//third_party/py/numpy",
-        "//third_party/py/tensorflow",
-        "//util/debuginfo:signalsafe_addr2line_installer",
-    ],
-)
diff --git a/integrations/tensorflow/e2e/keras/layers/CMakeLists.txt b/integrations/tensorflow/e2e/keras/layers/CMakeLists.txt
deleted file mode 100644
index 4b76d63..0000000
--- a/integrations/tensorflow/e2e/keras/layers/CMakeLists.txt
+++ /dev/null
@@ -1,367 +0,0 @@
-################################################################################
-# Autogenerated by build_tools/bazel_to_cmake/bazel_to_cmake.py from           #
-# integrations/tensorflow/e2e/keras/layers/BUILD                               #
-#                                                                              #
-# 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()
-
-file(GLOB _GLOB_X_TEST_PY LIST_DIRECTORIES false RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} CONFIGURE_DEPENDS *_test.py)
-iree_e2e_cartesian_product_test_suite(
-  NAME
-    layers_tests
-  MATRIX_KEYS
-    "src"
-    "reference_backend"
-    "layer"
-    "dynamic_dims"
-    "training"
-    "test_default_kwargs_only"
-    "target_backends"
-  MATRIX_VALUES
-    "layers_test.py"
-    "tf"
-    "Activation;ActivityRegularization;Add;AdditiveAttention;AlphaDropout;Attention;Average;AveragePooling1D;AveragePooling2D;AveragePooling3D;BatchNormalization;Concatenate;Conv1D;Conv1DTranspose;Conv2D;Conv2DTranspose;Conv3D;Conv3DTranspose;Cropping1D;Cropping2D;Cropping3D;Dense;DepthwiseConv2D;Dot;Dropout;ELU;Embedding;Flatten;GRU;GaussianDropout;GaussianNoise;GlobalAveragePooling1D;GlobalAveragePooling2D;GlobalAveragePooling3D;GlobalMaxPool1D;GlobalMaxPool2D;GlobalMaxPool3D;InputLayer;LSTM;Lambda;LayerNormalization;LeakyReLU;LocallyConnected1D;LocallyConnected2D;Masking;MaxPool1D;MaxPool2D;MaxPool3D;Maximum;Minimum;MultiHeadAttention;Multiply;PReLU;Permute;ReLU;RepeatVector;Reshape;SeparableConv1D;SeparableConv2D;Softmax;SpatialDropout1D;SpatialDropout2D;SpatialDropout3D;Subtract;ThresholdedReLU;UpSampling1D;UpSampling2D;UpSampling3D;ZeroPadding1D;ZeroPadding2D;ZeroPadding3D"
-    "False"
-    "False"
-    "True"
-    "tf;tflite;iree_llvmaot;iree_vulkan"
-  FAILING_CONFIGURATIONS
-    ",,AveragePooling3D,,,,tflite"
-    ",,Conv3DTranspose,,,,tflite"
-    ",,ConvLSTM2D,,,,tflite"
-    ",,Softmax,,,,tflite"
-    ",,MaxPool3D,,,,tflite"
-    ",,ZeroPadding3D,,,,tflite"
-    ",,ConvLSTM2D,,,,iree_llvmaot"
-    ",,ConvLSTM2D,,,,iree_vulkan"
-    ",,GRU,,,,iree_llvmaot"
-    ",,GRU,,,,iree_vulkan"
-    ",,LSTM,,,,iree_llvmaot"
-    ",,LSTM,,,,iree_vulkan"
-    ",,LayerNormalization,,,,iree_llvmaot"
-    ",,LayerNormalization,,,,iree_vulkan"
-    ",,LocallyConnected2D,,,,iree_llvmaot"
-    ",,LocallyConnected2D,,,,iree_vulkan"
-    ",,MultiHeadAttention,,,,iree_llvmaot"
-    ",,MultiHeadAttention,,,,iree_vulkan"
-    ",,UpSampling2D,,,,iree_llvmaot"
-    ",,UpSampling2D,,,,iree_vulkan"
-    ",,AveragePooling3D,,,,iree_llvmaot"
-    ",,AveragePooling3D,,,,iree_vulkan"
-    ",,Masking,,,,iree_llvmaot"
-    ",,Masking,,,,iree_vulkan"
-    ",,MaxPool3D,,,,iree_llvmaot"
-    ",,MaxPool3D,,,,iree_vulkan"
-    ",,LocallyConnected1D,,,,iree_llvmaot"
-    ",,LocallyConnected1D,,,,iree_vulkan"
-    ",,AveragePooling1D,,,,iree_vulkan"
-    ",,AveragePooling2D,,,,iree_vulkan"
-    ",,Lambda,,,,iree_vulkan"
-    ",,MaxPool1D,,,,iree_vulkan"
-    ",,MaxPool2D,,,,iree_vulkan"
-    ",,Conv3D,,,,iree_vulkan"
-    ",,Conv3DTranspose,,,,iree_vulkan"
-    ",,UpSampling3D,,,,iree_vulkan"
-)
-
-iree_e2e_cartesian_product_test_suite(
-  NAME
-    layers_full_api_tests
-  MATRIX_KEYS
-    "src"
-    "reference_backend"
-    "layer"
-    "dynamic_dims"
-    "training"
-    "test_default_kwargs_only"
-    "target_backends"
-  MATRIX_VALUES
-    "layers_test.py"
-    "tf"
-    "ActivityRegularization;AdditiveAttention;Attention;AveragePooling1D;AveragePooling2D;AveragePooling3D;BatchNormalization;Concatenate;Conv1D;Conv1DTranspose;Conv2D;Conv2DTranspose;Conv3D;Conv3DTranspose;Cropping1D;Cropping2D;Cropping3D;DepthwiseConv2D;GRU;LSTM;LocallyConnected1D;LocallyConnected2D;MaxPool1D;MaxPool2D;MaxPool3D;SeparableConv1D;SeparableConv2D;SimpleRNN"
-    "False"
-    "False"
-    "False"
-    "tf;tflite;iree_llvmaot;iree_vulkan"
-  FAILING_CONFIGURATIONS
-    ",,AveragePooling3D,,,,tflite"
-    ",,Conv3D,,,,tflite"
-    ",,Conv3DTranspose,,,,tflite"
-    ",,ConvLSTM2D,,,,tflite"
-    ",,DepthwiseConv2D,,,,tflite"
-    ",,GRU,,,,tflite"
-    ",,LSTM,,,,tflite"
-    ",,LocallyConnected1D,,,,tflite"
-    ",,LocallyConnected2D,,,,tflite"
-    ",,MaxPool3D,,,,tflite"
-    ",,SeparableConv1D,,,,tflite"
-    ",,SeparableConv2D,,,,tflite"
-    ",,SimpleRNN,,,,tflite"
-    ",,Conv3DTranspose,,,,iree_llvmaot"
-    ",,Conv3DTranspose,,,,iree_vulkan"
-    ",,ConvLSTM2D,,,,iree_llvmaot"
-    ",,ConvLSTM2D,,,,iree_vulkan"
-    ",,GRU,,,,iree_llvmaot"
-    ",,GRU,,,,iree_vulkan"
-    ",,LocallyConnected1D,,,,iree_llvmaot"
-    ",,LocallyConnected1D,,,,iree_vulkan"
-    ",,LocallyConnected2D,,,,iree_llvmaot"
-    ",,LocallyConnected2D,,,,iree_vulkan"
-    ",,LSTM,,,,iree_llvmaot"
-    ",,LSTM,,,,iree_vulkan"
-    ",,SimpleRNN,,,,iree_llvmaot"
-    ",,SimpleRNN,,,,iree_vulkan"
-    ",,AveragePooling1D,,,,iree_llvmaot"
-    ",,AveragePooling1D,,,,iree_vulkan"
-    ",,AveragePooling2D,,,,iree_llvmaot"
-    ",,AveragePooling2D,,,,iree_vulkan"
-    ",,AveragePooling3D,,,,iree_llvmaot"
-    ",,AveragePooling3D,,,,iree_vulkan"
-    ",,Conv1DTranspose,,,,iree_llvmaot"
-    ",,Conv1DTranspose,,,,iree_vulkan"
-    ",,Conv2DTranspose,,,,iree_llvmaot"
-    ",,Conv2DTranspose,,,,iree_vulkan"
-    ",,Conv3D,,,,iree_llvmaot"
-    ",,Conv3D,,,,iree_vulkan"
-    ",,MaxPool1D,,,,iree_llvmaot"
-    ",,MaxPool1D,,,,iree_vulkan"
-    ",,MaxPool2D,,,,iree_llvmaot"
-    ",,MaxPool2D,,,,iree_vulkan"
-    ",,MaxPool3D,,,,iree_llvmaot"
-    ",,MaxPool3D,,,,iree_vulkan"
-    ",,MaxPool1D,,,,iree_vulkan"
-    ",,MaxPool2D,,,,iree_vulkan"
-)
-
-iree_e2e_cartesian_product_test_suite(
-  NAME
-    layers_dynamic_dims_tests
-  MATRIX_KEYS
-    "src"
-    "reference_backend"
-    "layer"
-    "dynamic_dims"
-    "training"
-    "test_default_kwargs_only"
-    "target_backends"
-  MATRIX_VALUES
-    "layers_test.py"
-    "tf"
-    "Activation;ActivityRegularization;Add;AdditiveAttention;AlphaDropout;Attention;Average;AveragePooling1D;AveragePooling2D;AveragePooling3D;BatchNormalization;Concatenate;Conv1D;Conv1DTranspose;Conv2D;Conv2DTranspose;Conv3D;Conv3DTranspose;Cropping1D;Cropping2D;Cropping3D;Dense;DepthwiseConv2D;Dot;Dropout;ELU;Embedding;Flatten;GRU;GaussianDropout;GaussianNoise;GlobalAveragePooling1D;GlobalAveragePooling2D;GlobalAveragePooling3D;GlobalMaxPool1D;GlobalMaxPool2D;GlobalMaxPool3D;InputLayer;LSTM;Lambda;LayerNormalization;LeakyReLU;LocallyConnected1D;LocallyConnected2D;Masking;MaxPool1D;MaxPool2D;MaxPool3D;Maximum;Minimum;MultiHeadAttention;Multiply;PReLU;Permute;ReLU;RepeatVector;Reshape;SeparableConv1D;SeparableConv2D;Softmax;SpatialDropout1D;SpatialDropout2D;SpatialDropout3D;Subtract;ThresholdedReLU;UpSampling1D;UpSampling2D;UpSampling3D;ZeroPadding1D;ZeroPadding2D;ZeroPadding3D"
-    "True"
-    "False"
-    "True"
-    "tf;tflite;iree_llvmaot;iree_vulkan"
-  FAILING_CONFIGURATIONS
-    ",,Add,,,,tflite"
-    ",,Average,,,,tflite"
-    ",,AveragePooling3D,,,,tflite"
-    ",,BatchNormalization,,,,tflite"
-    ",,Conv3D,,,,tflite"
-    ",,Conv3DTranspose,,,,tflite"
-    ",,ConvLSTM2D,,,,tflite"
-    ",,Dense,,,,tflite"
-    ",,GRU,,,,tflite"
-    ",,LSTM,,,,tflite"
-    ",,Lambda,,,,tflite"
-    ",,LayerNormalization,,,,tflite"
-    ",,Masking,,,,tflite"
-    ",,MaxPool3D,,,,tflite"
-    ",,Multiply,,,,tflite"
-    ",,PReLU,,,,tflite"
-    ",,SimpleRNN,,,,tflite"
-    ",,Softmax,,,,tflite"
-    ",,ThresholdedReLU,,,,tflite"
-    ",,ZeroPadding3D,,,,tflite"
-    ",,AdditiveAttention,,,,iree_llvmaot"
-    ",,AdditiveAttention,,,,iree_vulkan"
-    ",,AveragePooling1D,,,,iree_llvmaot"
-    ",,AveragePooling1D,,,,iree_vulkan"
-    ",,AveragePooling2D,,,,iree_llvmaot"
-    ",,AveragePooling2D,,,,iree_vulkan"
-    ",,AveragePooling3D,,,,iree_llvmaot"
-    ",,AveragePooling3D,,,,iree_vulkan"
-    ",,BatchNormalization,,,,iree_llvmaot"
-    ",,BatchNormalization,,,,iree_vulkan"
-    ",,Concatenate,,,,iree_llvmaot"
-    ",,Concatenate,,,,iree_vulkan"
-    ",,Conv1D,,,,iree_llvmaot"
-    ",,Conv1D,,,,iree_vulkan"
-    ",,Conv1DTranspose,,,,iree_llvmaot"
-    ",,Conv1DTranspose,,,,iree_vulkan"
-    ",,Conv2D,,,,iree_llvmaot"
-    ",,Conv2D,,,,iree_vulkan"
-    ",,Conv2DTranspose,,,,iree_llvmaot"
-    ",,Conv2DTranspose,,,,iree_vulkan"
-    ",,Conv3D,,,,iree_llvmaot"
-    ",,Conv3D,,,,iree_vulkan"
-    ",,Conv3DTranspose,,,,iree_llvmaot"
-    ",,Conv3DTranspose,,,,iree_vulkan"
-    ",,ConvLSTM2D,,,,iree_llvmaot"
-    ",,ConvLSTM2D,,,,iree_vulkan"
-    ",,Cropping1D,,,,iree_llvmaot"
-    ",,Cropping1D,,,,iree_vulkan"
-    ",,Cropping2D,,,,iree_llvmaot"
-    ",,Cropping2D,,,,iree_vulkan"
-    ",,Cropping3D,,,,iree_llvmaot"
-    ",,Cropping3D,,,,iree_vulkan"
-    ",,Dense,,,,iree_llvmaot"
-    ",,Dense,,,,iree_vulkan"
-    ",,DepthwiseConv2D,,,,iree_llvmaot"
-    ",,DepthwiseConv2D,,,,iree_vulkan"
-    ",,Dot,,,,iree_llvmaot"
-    ",,Dot,,,,iree_vulkan"
-    ",,ELU,,,,iree_llvmaot"
-    ",,ELU,,,,iree_vulkan"
-    ",,Flatten,,,,iree_llvmaot"
-    ",,Flatten,,,,iree_vulkan"
-    ",,GRU,,,,iree_llvmaot"
-    ",,GRU,,,,iree_vulkan"
-    ",,LSTM,,,,iree_llvmaot"
-    ",,LSTM,,,,iree_vulkan"
-    ",,LayerNormalization,,,,iree_llvmaot"
-    ",,LayerNormalization,,,,iree_vulkan"
-    ",,LeakyReLU,,,,iree_llvmaot"
-    ",,LeakyReLU,,,,iree_vulkan"
-    ",,LocallyConnected1D,,,,iree_llvmaot"
-    ",,LocallyConnected1D,,,,iree_vulkan"
-    ",,LocallyConnected2D,,,,iree_llvmaot"
-    ",,LocallyConnected2D,,,,iree_vulkan"
-    ",,Masking,,,,iree_llvmaot"
-    ",,Masking,,,,iree_vulkan"
-    ",,MaxPool1D,,,,iree_llvmaot"
-    ",,MaxPool1D,,,,iree_vulkan"
-    ",,MaxPool2D,,,,iree_llvmaot"
-    ",,MaxPool2D,,,,iree_vulkan"
-    ",,MaxPool3D,,,,iree_llvmaot"
-    ",,MaxPool3D,,,,iree_vulkan"
-    ",,MultiHeadAttention,,,,iree_llvmaot"
-    ",,MultiHeadAttention,,,,iree_vulkan"
-    ",,RepeatVector,,,,iree_llvmaot"
-    ",,RepeatVector,,,,iree_vulkan"
-    ",,Reshape,,,,iree_llvmaot"
-    ",,Reshape,,,,iree_vulkan"
-    ",,SeparableConv1D,,,,iree_llvmaot"
-    ",,SeparableConv1D,,,,iree_vulkan"
-    ",,SeparableConv2D,,,,iree_llvmaot"
-    ",,SeparableConv2D,,,,iree_vulkan"
-    ",,SimpleRNN,,,,iree_llvmaot"
-    ",,SimpleRNN,,,,iree_vulkan"
-    ",,ThresholdedReLU,,,,iree_llvmaot"
-    ",,ThresholdedReLU,,,,iree_vulkan"
-    ",,UpSampling1D,,,,iree_llvmaot"
-    ",,UpSampling1D,,,,iree_vulkan"
-    ",,UpSampling2D,,,,iree_llvmaot"
-    ",,UpSampling2D,,,,iree_vulkan"
-    ",,UpSampling3D,,,,iree_llvmaot"
-    ",,UpSampling3D,,,,iree_vulkan"
-    ",,ZeroPadding1D,,,,iree_llvmaot"
-    ",,ZeroPadding1D,,,,iree_vulkan"
-    ",,ZeroPadding2D,,,,iree_llvmaot"
-    ",,ZeroPadding2D,,,,iree_vulkan"
-    ",,ZeroPadding3D,,,,iree_llvmaot"
-    ",,ZeroPadding3D,,,,iree_vulkan"
-    ",,Activation,,,,iree_llvmaot"
-    ",,Activation,,,,iree_vulkan"
-    ",,Add,,,,iree_llvmaot"
-    ",,Add,,,,iree_vulkan"
-    ",,Attention,,,,iree_llvmaot"
-    ",,Attention,,,,iree_vulkan"
-    ",,Average,,,,iree_llvmaot"
-    ",,Average,,,,iree_vulkan"
-    ",,Embedding,,,,iree_llvmaot"
-    ",,Embedding,,,,iree_vulkan"
-    ",,GlobalAveragePooling1D,,,,iree_llvmaot"
-    ",,GlobalAveragePooling1D,,,,iree_vulkan"
-    ",,GlobalAveragePooling2D,,,,iree_llvmaot"
-    ",,GlobalAveragePooling2D,,,,iree_vulkan"
-    ",,GlobalAveragePooling3D,,,,iree_llvmaot"
-    ",,GlobalAveragePooling3D,,,,iree_vulkan"
-    ",,Lambda,,,,iree_llvmaot"
-    ",,Lambda,,,,iree_vulkan"
-    ",,Maximum,,,,iree_llvmaot"
-    ",,Maximum,,,,iree_vulkan"
-    ",,Minimum,,,,iree_llvmaot"
-    ",,Minimum,,,,iree_vulkan"
-    ",,Multiply,,,,iree_llvmaot"
-    ",,Multiply,,,,iree_vulkan"
-    ",,PReLU,,,,iree_llvmaot"
-    ",,PReLU,,,,iree_vulkan"
-    ",,ReLU,,,,iree_llvmaot"
-    ",,ReLU,,,,iree_vulkan"
-    ",,Softmax,,,,iree_llvmaot"
-    ",,Softmax,,,,iree_vulkan"
-    ",,Subtract,,,,iree_llvmaot"
-    ",,Subtract,,,,iree_vulkan"
-    ",,GlobalMaxPool1D,,,,iree_vulkan"
-    ",,GlobalMaxPool2D,,,,iree_vulkan"
-    ",,GlobalMaxPool3D,,,,iree_vulkan"
-    ",,Permute,,,,iree_vulkan"
-)
-
-iree_e2e_cartesian_product_test_suite(
-  NAME
-    layers_training_tests
-  MATRIX_KEYS
-    "src"
-    "reference_backend"
-    "layer"
-    "dynamic_dims"
-    "training"
-    "test_default_kwargs_only"
-    "target_backends"
-  MATRIX_VALUES
-    "layers_test.py"
-    "tf"
-    "AdditiveAttention;AlphaDropout;Attention;BatchNormalization;Dropout;GRU;GaussianDropout;GaussianNoise;LSTM;MultiHeadAttention;SpatialDropout1D;SpatialDropout2D;SpatialDropout3D"
-    "False"
-    "True"
-    "True"
-    "tf;tflite;iree_llvmaot;iree_vulkan"
-  FAILING_CONFIGURATIONS
-    ",,AlphaDropout,,,,tflite"
-    ",,BatchNormalization,,,,tflite"
-    ",,ConvLSTM2D,,,,tflite"
-    ",,GaussianDropout,,,,tflite"
-    ",,GaussianNoise,,,,tflite"
-    ",,GRU,,,,tflite"
-    ",,LSTM,,,,tflite"
-    ",,SimpleRNN,,,,tflite"
-    ",,AdditiveAttention,,,,iree_llvmaot"
-    ",,AdditiveAttention,,,,iree_vulkan"
-    ",,AlphaDropout,,,,iree_llvmaot"
-    ",,AlphaDropout,,,,iree_vulkan"
-    ",,Attention,,,,iree_llvmaot"
-    ",,Attention,,,,iree_vulkan"
-    ",,BatchNormalization,,,,iree_llvmaot"
-    ",,BatchNormalization,,,,iree_vulkan"
-    ",,ConvLSTM2D,,,,iree_llvmaot"
-    ",,ConvLSTM2D,,,,iree_vulkan"
-    ",,Dropout,,,,iree_llvmaot"
-    ",,Dropout,,,,iree_vulkan"
-    ",,GRU,,,,iree_llvmaot"
-    ",,GRU,,,,iree_vulkan"
-    ",,GaussianDropout,,,,iree_llvmaot"
-    ",,GaussianDropout,,,,iree_vulkan"
-    ",,GaussianNoise,,,,iree_llvmaot"
-    ",,GaussianNoise,,,,iree_vulkan"
-    ",,LSTM,,,,iree_llvmaot"
-    ",,LSTM,,,,iree_vulkan"
-    ",,MultiHeadAttention,,,,iree_llvmaot"
-    ",,MultiHeadAttention,,,,iree_vulkan"
-    ",,SimpleRNN,,,,iree_llvmaot"
-    ",,SimpleRNN,,,,iree_vulkan"
-    ",,SpatialDropout1D,,,,iree_llvmaot"
-    ",,SpatialDropout1D,,,,iree_vulkan"
-    ",,SpatialDropout2D,,,,iree_llvmaot"
-    ",,SpatialDropout2D,,,,iree_vulkan"
-    ",,SpatialDropout3D,,,,iree_llvmaot"
-    ",,SpatialDropout3D,,,,iree_vulkan"
-)
-
-### BAZEL_TO_CMAKE_PRESERVES_ALL_CONTENT_BELOW_THIS_LINE ###
diff --git a/integrations/tensorflow/e2e/keras/train/BUILD b/integrations/tensorflow/e2e/keras/train/BUILD
deleted file mode 100644
index 6929b4f..0000000
--- a/integrations/tensorflow/e2e/keras/train/BUILD
+++ /dev/null
@@ -1,96 +0,0 @@
-# Copyright 2019 The IREE Authors
-#
-# Licensed under the Apache License v2.0 with LLVM Exceptions.
-# See https://llvm.org/LICENSE.txt for license information.
-# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-
-# ***THIS FILE DOES NOT BUILD WITH BAZEL***
-#
-# It is open sourced to enable Bazel->CMake conversion to maintain test coverage
-# of our integration tests in open source while we figure out a long term plan
-# for our integration testing.
-
-load(
-    "@iree//integrations/tensorflow/e2e:iree_e2e_cartesian_product_test_suite.bzl",
-    "iree_e2e_cartesian_product_test_suite",
-)
-
-package(
-    default_visibility = ["//visibility:public"],
-    features = ["layering_check"],
-    licenses = ["notice"],  # Apache 2.0
-)
-
-[
-    py_binary(
-        name = src.replace(".py", "_manual"),
-        srcs = [src],
-        main = src,
-        python_version = "PY3",
-        deps = [
-            "//third_party/py/absl:app",
-            "//third_party/py/absl/flags",
-            "//third_party/py/iree:pylib_tf_support",
-            "//third_party/py/numpy",
-            "//third_party/py/tensorflow",
-            "//util/debuginfo:signalsafe_addr2line_installer",
-        ],
-    )
-    for src in glob(["*_test.py"])
-]
-
-iree_e2e_cartesian_product_test_suite(
-    name = "training_tests",
-    failing_configurations = [
-        {
-            "target_backends": "tflite",  # TFLite doesn't support training
-        },
-        {
-            "optimizer": [
-                "adadelta",
-                "adagrad",
-                "adam",
-                "adamax",
-                "ftrl",
-                "nadam",
-                "rmsprop",
-                "sgd",
-            ],
-            "target_backends": [
-                "iree_llvmaot",
-                "iree_vulkan",
-            ],
-        },
-    ],
-    matrix = {
-        "src": [
-            "classification_training_test.py",
-            "regression_training_test.py",
-        ],
-        "reference_backend": "tf",
-        "optimizer": [
-            "adadelta",
-            "adagrad",
-            "adam",
-            "adamax",
-            "ftrl",
-            "nadam",
-            "rmsprop",
-            "sgd",
-        ],
-        "target_backends": [
-            "tf",
-            "tflite",
-            "iree_llvmaot",
-            "iree_vulkan",
-        ],
-    },
-    deps = [
-        "//third_party/py/absl:app",
-        "//third_party/py/absl/flags",
-        "//third_party/py/iree:pylib_tf_support",
-        "//third_party/py/numpy",
-        "//third_party/py/tensorflow",
-        "//util/debuginfo:signalsafe_addr2line_installer",
-    ],
-)
diff --git a/integrations/tensorflow/e2e/keras/train/CMakeLists.txt b/integrations/tensorflow/e2e/keras/train/CMakeLists.txt
deleted file mode 100644
index f23b78b..0000000
--- a/integrations/tensorflow/e2e/keras/train/CMakeLists.txt
+++ /dev/null
@@ -1,47 +0,0 @@
-################################################################################
-# Autogenerated by build_tools/bazel_to_cmake/bazel_to_cmake.py from           #
-# integrations/tensorflow/e2e/keras/train/BUILD                                #
-#                                                                              #
-# 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()
-
-file(GLOB _GLOB_X_TEST_PY LIST_DIRECTORIES false RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} CONFIGURE_DEPENDS *_test.py)
-iree_e2e_cartesian_product_test_suite(
-  NAME
-    training_tests
-  MATRIX_KEYS
-    "src"
-    "reference_backend"
-    "optimizer"
-    "target_backends"
-  MATRIX_VALUES
-    "classification_training_test.py;regression_training_test.py"
-    "tf"
-    "adadelta;adagrad;adam;adamax;ftrl;nadam;rmsprop;sgd"
-    "tf;tflite;iree_llvmaot;iree_vulkan"
-  FAILING_CONFIGURATIONS
-    ",,,tflite"
-    ",,adadelta,iree_llvmaot"
-    ",,adadelta,iree_vulkan"
-    ",,adagrad,iree_llvmaot"
-    ",,adagrad,iree_vulkan"
-    ",,adam,iree_llvmaot"
-    ",,adam,iree_vulkan"
-    ",,adamax,iree_llvmaot"
-    ",,adamax,iree_vulkan"
-    ",,ftrl,iree_llvmaot"
-    ",,ftrl,iree_vulkan"
-    ",,nadam,iree_llvmaot"
-    ",,nadam,iree_vulkan"
-    ",,rmsprop,iree_llvmaot"
-    ",,rmsprop,iree_vulkan"
-    ",,sgd,iree_llvmaot"
-    ",,sgd,iree_vulkan"
-)
-
-### BAZEL_TO_CMAKE_PRESERVES_ALL_CONTENT_BELOW_THIS_LINE ###
diff --git a/integrations/tensorflow/e2e/keras/train/classification_training_test.py b/integrations/tensorflow/e2e/keras/train/classification_training_test.py
deleted file mode 100644
index fb3fdad..0000000
--- a/integrations/tensorflow/e2e/keras/train/classification_training_test.py
+++ /dev/null
@@ -1,120 +0,0 @@
-# Lint as: python3
-# Copyright 2019 The IREE Authors
-#
-# Licensed under the Apache License v2.0 with LLVM Exceptions.
-# See https://llvm.org/LICENSE.txt for license information.
-# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-"""Test training a classification model with Keras optimizers."""
-
-import os
-
-from absl import app
-from absl import flags
-from iree.tf.support import tf_test_utils
-import numpy as np
-import tensorflow as tf
-
-FLAGS = flags.FLAGS
-flags.DEFINE_string(
-    "optimizer", "sgd",
-    "One of 'adadelta', 'adagrad', 'adam', 'adamax', 'ftrl', 'nadam', "
-    "'rmsprop' or 'sgd'")
-
-SAMPLES_PER_SPIRAL = 8
-INPUT_DIM = 2
-NUM_CLASSES = 4
-BATCH_SIZE = NUM_CLASSES * SAMPLES_PER_SPIRAL
-
-
-def get_spiral_dataset(samples_per_spiral: int,
-                       noise_scale: float = 0,
-                       shuffle: bool = True):
-  """Creates a dataset with four spiral arms."""
-  t = np.linspace(0, 1, samples_per_spiral, dtype=np.float32)
-  cos_term = t * np.sin(2 * np.pi * t)
-  sin_term = t * np.cos(2 * np.pi * t)
-  spirals = [
-      np.stack([sin_term, cos_term], axis=-1),
-      np.stack([-sin_term, -cos_term], axis=-1),
-      np.stack([-cos_term, sin_term], axis=-1),
-      np.stack([cos_term, -sin_term], axis=-1)
-  ]
-  inputs = np.concatenate(spirals)
-  inputs = inputs + np.random.normal(scale=noise_scale, size=inputs.shape)
-  labels = np.concatenate([i * np.ones_like(t) for i in range(4)])
-
-  if shuffle:
-    # Shuffle by batch dim.
-    index = np.arange(inputs.shape[0])
-    np.random.shuffle(index)
-    inputs = inputs[index]
-    labels = labels[index]
-
-  return inputs.astype(np.float32), labels.astype(np.float32)
-
-
-class ClassificationTrainingModule(tf.Module):
-  """A module for model training."""
-
-  def __init__(self):
-    inputs = tf.keras.layers.Input(INPUT_DIM)
-    x = tf.keras.layers.Dense(NUM_CLASSES)(inputs)
-    outputs = tf.keras.layers.Softmax()(x)
-    self.model = tf.keras.Model(inputs, outputs)
-
-    self.loss = tf.keras.losses.SparseCategoricalCrossentropy()
-    self.optimizer = tf.keras.optimizers.get(FLAGS.optimizer)
-
-  @tf.function(input_signature=[
-      tf.TensorSpec([BATCH_SIZE, INPUT_DIM], tf.float32),
-      tf.TensorSpec([BATCH_SIZE], tf.float32)
-  ])
-  def train_on_batch(self, inputs, labels):
-    with tf.GradientTape() as tape:
-      probs = self.model(inputs, training=True)
-      loss = self.loss(labels, probs)
-    variables = self.model.trainable_variables
-    gradients = tape.gradient(loss, variables)
-    self.optimizer.apply_gradients(zip(gradients, variables))
-    return loss
-
-  @tf.function(input_signature=[])
-  def get_weights(self):
-    return self.model.weights[0]
-
-  @tf.function(input_signature=[])
-  def get_bias(self):
-    return self.model.weights[1]
-
-
-class ClassificationTrainingTest(tf_test_utils.TracedModuleTestCase):
-
-  def __init__(self, *args, **kwargs):
-    super().__init__(*args, **kwargs)
-    self._modules = tf_test_utils.compile_tf_module(
-        ClassificationTrainingModule,
-        exported_names=["train_on_batch", "get_weights", "get_bias"],
-        relative_artifacts_dir=os.path.join(
-            ClassificationTrainingModule.__name__, FLAGS.optimizer))
-
-  def test_train_on_batch(self):
-
-    def train_on_batch(module):
-      inputs, labels = get_spiral_dataset(SAMPLES_PER_SPIRAL, noise_scale=0.05)
-      module.train_on_batch(inputs, labels)
-      # Ensures the weights are identical.
-      module.get_weights()
-      module.get_bias()
-
-    self.compare_backends(train_on_batch, self._modules)
-
-
-def main(argv):
-  del argv  # Unused
-  if hasattr(tf, "enable_v2_behavior"):
-    tf.enable_v2_behavior()
-  tf.test.main()
-
-
-if __name__ == "__main__":
-  app.run(main)
diff --git a/integrations/tensorflow/e2e/keras/train/regression_training_test.py b/integrations/tensorflow/e2e/keras/train/regression_training_test.py
deleted file mode 100644
index d6bf819..0000000
--- a/integrations/tensorflow/e2e/keras/train/regression_training_test.py
+++ /dev/null
@@ -1,100 +0,0 @@
-# Lint as: python3
-# Copyright 2019 The IREE Authors
-#
-# Licensed under the Apache License v2.0 with LLVM Exceptions.
-# See https://llvm.org/LICENSE.txt for license information.
-# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-"""Test training a regression model with Keras optimizers."""
-
-import os
-
-from absl import app
-from absl import flags
-from iree.tf.support import tf_test_utils
-import numpy as np
-import tensorflow as tf
-
-FLAGS = flags.FLAGS
-flags.DEFINE_string(
-    "optimizer", "sgd",
-    "One of 'adadelta', 'adagrad', 'adam', 'adamax', 'ftrl', 'nadam', "
-    "'rmsprop' or 'sgd'")
-
-np.random.seed(0)
-INPUT_DIM = 8
-OUTPUT_DIM = 2
-BATCH_SIZE = 4
-WEIGHTS = np.random.uniform(-1, 1, size=(INPUT_DIM, OUTPUT_DIM))
-BIASES = np.random.uniform(-1, 1, size=(OUTPUT_DIM,))
-
-
-def get_linear_data():
-  x = np.random.uniform(-1, 1, size=(BATCH_SIZE, INPUT_DIM))
-  y = np.dot(x, WEIGHTS) + BIASES
-  return x.astype(np.float32), y.astype(np.float32)
-
-
-class RegressionTrainingModule(tf.Module):
-  """A module for model training."""
-
-  def __init__(self):
-    inputs = tf.keras.layers.Input(INPUT_DIM)
-    outputs = tf.keras.layers.Dense(OUTPUT_DIM)(inputs)
-    self.model = tf.keras.Model(inputs, outputs)
-
-    self.loss = tf.keras.losses.MeanSquaredError()
-    self.optimizer = tf.keras.optimizers.get(FLAGS.optimizer)
-
-  @tf.function(input_signature=[
-      tf.TensorSpec([BATCH_SIZE, INPUT_DIM], tf.float32),
-      tf.TensorSpec([BATCH_SIZE, OUTPUT_DIM], tf.float32)
-  ])
-  def train_on_batch(self, x, y_true):
-    with tf.GradientTape() as tape:
-      y_pred = self.model(x, training=True)
-      loss = self.loss(y_pred, y_pred)
-    variables = self.model.trainable_variables
-    gradients = tape.gradient(loss, variables)
-    self.optimizer.apply_gradients(zip(gradients, variables))
-    return loss
-
-  @tf.function(input_signature=[])
-  def get_weights(self):
-    return self.model.weights[0]
-
-  @tf.function(input_signature=[])
-  def get_bias(self):
-    return self.model.weights[1]
-
-
-class RegressionTrainingTest(tf_test_utils.TracedModuleTestCase):
-
-  def __init__(self, *args, **kwargs):
-    super().__init__(*args, **kwargs)
-    self._modules = tf_test_utils.compile_tf_module(
-        RegressionTrainingModule,
-        exported_names=["train_on_batch", "get_weights", "get_bias"],
-        relative_artifacts_dir=os.path.join(RegressionTrainingModule.__name__,
-                                            FLAGS.optimizer))
-
-  def test_train_on_batch(self):
-
-    def train_on_batch(module):
-      x, y = get_linear_data()
-      module.train_on_batch(x, y)
-      # Ensures the weights are identical.
-      module.get_weights()
-      module.get_bias()
-
-    self.compare_backends(train_on_batch, self._modules)
-
-
-def main(argv):
-  del argv  # Unused
-  if hasattr(tf, "enable_v2_behavior"):
-    tf.enable_v2_behavior()
-  tf.test.main()
-
-
-if __name__ == "__main__":
-  app.run(main)
diff --git a/integrations/tensorflow/e2e/math/BUILD b/integrations/tensorflow/e2e/math/BUILD
deleted file mode 100644
index 9c7f41f..0000000
--- a/integrations/tensorflow/e2e/math/BUILD
+++ /dev/null
@@ -1,717 +0,0 @@
-# Copyright 2020 The IREE Authors
-#
-# Licensed under the Apache License v2.0 with LLVM Exceptions.
-# See https://llvm.org/LICENSE.txt for license information.
-# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-
-# ***THIS FILE DOES NOT BUILD WITH BAZEL***
-#
-# It is open sourced to enable Bazel->CMake conversion to maintain test coverage
-# of our integration tests in open source while we figure out a long term plan
-# for our integration testing.
-
-load(
-    "@iree//integrations/tensorflow/e2e:iree_e2e_cartesian_product_test_suite.bzl",
-    "iree_e2e_cartesian_product_test_suite",
-)
-
-package(
-    default_visibility = ["//visibility:public"],
-    features = ["layering_check"],
-    licenses = ["notice"],  # Apache 2.0
-)
-
-py_binary(
-    name = "math_test_manual",
-    srcs = ["math_test.py"],
-    main = "math_test.py",
-    python_version = "PY3",
-    deps = [
-        "//third_party/py/absl:app",
-        "//third_party/py/absl/flags",
-        "//third_party/py/iree:pylib_tf_support",
-        "//third_party/py/numpy",
-        "//third_party/py/tensorflow",
-        "//util/debuginfo:signalsafe_addr2line_installer",
-    ],
-)
-
-# These functions were selected using all of the funcions in the tf.math docs:
-#   https://www.tensorflow.org/api_docs/python/tf/math
-TF_MATH_FUNCTIONS = [
-    "abs",
-    "accumulate_n",
-    "acos",
-    "acosh",
-    "add",
-    "add_n",
-    "angle",
-    "argmax",
-    "argmin",
-    "asin",
-    "asinh",
-    "atan",
-    "atan2",
-    "atanh",
-    "bessel_i0",
-    "bessel_i0e",
-    "bessel_i1",
-    "bessel_i1e",
-    "betainc",
-    "bincount",
-    "ceil",
-    "confusion_matrix",
-    "cos",
-    "cosh",
-    "count_nonzero",
-    "cumprod",
-    "cumsum",
-    "cumulative_logsumexp",
-    "digamma",
-    "divide",
-    "divide_no_nan",
-    "equal",
-    "erf",
-    "erfc",
-    "erfinv",
-    "exp",
-    "expm1",
-    "floor",
-    "floordiv",
-    "floormod",
-    "greater",
-    "greater_equal",
-    "igamma",
-    "igammac",
-    "imag",
-    "in_top_k",
-    "invert_permutation",
-    "is_finite",
-    "is_inf",
-    "is_nan",
-    "is_non_decreasing",
-    "is_strictly_increasing",
-    "lbeta",
-    "less",
-    "less_equal",
-    "lgamma",
-    "log",
-    "log1p",
-    "log_sigmoid",
-    "log_softmax",
-    "logical_and",
-    "logical_not",
-    "logical_or",
-    "logical_xor",
-    "maximum",
-    "minimum",
-    "mod",
-    "multiply",
-    "multiply_no_nan",
-    "ndtri",
-    "negative",
-    "nextafter",
-    "not_equal",
-    "polygamma",
-    "polyval",
-    "pow",
-    "real",
-    "reciprocal",
-    "reciprocal_no_nan",
-    "reduce_all",
-    "reduce_any",
-    "reduce_euclidean_norm",
-    "reduce_logsumexp",
-    "reduce_max",
-    "reduce_mean",
-    "reduce_min",
-    "reduce_prod",
-    "reduce_std",
-    "reduce_sum",
-    "reduce_variance",
-    "rint",
-    "round",
-    "rsqrt",
-    "scalar_mul",
-    "segment_max",
-    "segment_mean",
-    "segment_min",
-    "segment_prod",
-    "segment_sum",
-    "sigmoid",
-    "sign",
-    "sin",
-    "sinh",
-    "sobol_sample",
-    "softmax",
-    "softplus",
-    "softsign",
-    "sqrt",
-    "square",
-    "squared_difference",
-    "subtract",
-    "tan",
-    "tanh",
-    "top_k",
-    "truediv",
-    "unsorted_segment_max",
-    "unsorted_segment_mean",
-    "unsorted_segment_min",
-    "unsorted_segment_prod",
-    "unsorted_segment_sqrt_n",
-    "unsorted_segment_sum",
-    "xdivy",
-    "xlog1py",
-    "xlogy",
-    "zero_fraction",
-    "zeta",
-]
-
-# ---- STATIC TESTS ----------------------------------------------- #
-
-# keep sorted
-LLVM_FAILING = [
-    "acos",
-    "argmax",
-    "argmin",
-    "asin",
-    "atan",
-    "atan2",
-    "bessel_i0",
-    "bessel_i0e",
-    "bessel_i1",
-    "bessel_i1e",
-    "betainc",
-    "bincount",
-    "confusion_matrix",
-    "count_nonzero",
-    "cumprod",
-    "cumsum",
-    "cumulative_logsumexp",
-    "divide",  # Failing for integer inputs because iree doesn't output 'f64'.
-    "erfinv",
-    "igamma",
-    "igammac",
-    "in_top_k",
-    "invert_permutation",
-    "is_non_decreasing",
-    "is_strictly_increasing",
-    "ndtri",
-    "nextafter",
-    "reduce_all",
-    "reduce_any",
-    "reduce_euclidean_norm",
-    "reduce_prod",
-    "segment_max",
-    "segment_mean",
-    "segment_min",
-    "segment_prod",
-    "segment_sum",
-    "sobol_sample",
-    "softsign",
-    "top_k",
-    "unsorted_segment_max",
-    "unsorted_segment_mean",
-    "unsorted_segment_min",
-    "unsorted_segment_prod",
-    "unsorted_segment_sqrt_n",
-    "unsorted_segment_sum",
-]
-
-# keep sorted
-VULKAN_FAILING = [
-    "acos",
-    "argmax",
-    "argmin",
-    "asin",
-    "asinh",
-    "atan",
-    "atan2",
-    "bessel_i0",
-    "bessel_i0e",
-    "bessel_i1",
-    "bessel_i1e",
-    "betainc",
-    "bincount",
-    "confusion_matrix",
-    "count_nonzero",
-    "cumprod",
-    "cumsum",
-    "cumulative_logsumexp",
-    "divide",  # Failing for integer inputs because iree doesn't output 'f64'.
-    "equal",  # TODO(hanchung): Enable the test after integration.
-    "erfinv",
-    "greater",  # TODO(hanchung): Enable the test after integration.
-    "greater_equal",  # TODO(hanchung): Enable the test after integration.
-    "igamma",
-    "igammac",
-    "in_top_k",
-    "invert_permutation",
-    "is_inf",  # TODO(hanchung): Enable the test after integration.
-    "is_nan",  # TODO(hanchung): Enable the test after integration.
-    "is_non_decreasing",
-    "is_strictly_increasing",
-    "less",  # TODO(hanchung): Enable the test after integration.
-    "less_equal",  # TODO(hanchung): Enable the test after integration.
-    "logical_and",  # TODO(hanchung): Enable the test after integration.
-    "logical_not",
-    "logical_or",  # TODO(hanchung): Enable the test after integration.
-    "logical_xor",
-    "ndtri",
-    "nextafter",
-    "not_equal",  # TODO(hanchung): Enable the test after integration.
-    "polygamma",
-    "pow",
-    "reduce_all",
-    "reduce_any",
-    "reduce_euclidean_norm",
-    "reduce_prod",
-    "segment_max",
-    "segment_mean",
-    "segment_min",
-    "segment_prod",
-    "segment_sum",
-    "sign",
-    "sobol_sample",
-    "softsign",
-    "top_k",
-    "unsorted_segment_max",
-    "unsorted_segment_mean",
-    "unsorted_segment_min",
-    "unsorted_segment_prod",
-    "unsorted_segment_sqrt_n",
-    "unsorted_segment_sum",
-    "zeta",
-]
-
-# TODO(#5400): Failing only on Nvidia GPU.
-# keep sorted
-TURING_VULKAN_FAILING = [
-    "digamma",
-    "is_finite",
-    "mod",
-]
-
-iree_e2e_cartesian_product_test_suite(
-    name = "math_tests",
-    failing_configurations = [
-        {
-            # Failing on llvm.
-            "functions": LLVM_FAILING,
-            "target_backends": "iree_llvmaot",
-        },
-        {
-            # Failing on vulkan.
-            "functions": VULKAN_FAILING + TURING_VULKAN_FAILING,
-            "target_backends": "iree_vulkan",
-        },
-    ],
-    matrix = {
-        "src": "math_test.py",
-        "reference_backend": "tf",
-        "functions": TF_MATH_FUNCTIONS,
-        "dynamic_dims": False,
-        "test_complex": False,
-        "target_backends": [
-            "iree_llvmaot",
-            "iree_vulkan",
-        ],
-    },
-    deps = [
-        "//third_party/py/absl:app",
-        "//third_party/py/absl/flags",
-        "//third_party/py/iree:pylib_tf_support",
-        "//third_party/py/numpy",
-        "//third_party/py/tensorflow",
-        "//util/debuginfo:signalsafe_addr2line_installer",
-    ],
-)
-
-# ---- DYNAMIC TESTS ---------------------------------------------- #
-
-# keep sorted
-LLVM_FAILING_DYNAMIC = [
-    "acos",
-    "angle",
-    "argmax",
-    "argmin",
-    "asin",
-    "atan",
-    "atan2",
-    "bessel_i0",
-    "bessel_i0e",
-    "bessel_i1",
-    "bessel_i1e",
-    "betainc",
-    "bincount",
-    "confusion_matrix",
-    "count_nonzero",
-    "cumprod",
-    "cumsum",
-    "cumulative_logsumexp",
-    "divide",
-    "erfinv",
-    "expm1",
-    "igamma",
-    "igammac",
-    "imag",
-    "in_top_k",
-    "invert_permutation",
-    "is_non_decreasing",
-    "is_strictly_increasing",
-    "log1p",
-    "log_sigmoid",
-    "log_softmax",
-    "ndtri",
-    "nextafter",
-    "reduce_euclidean_norm",
-    "reduce_logsumexp",
-    "reduce_mean",
-    "reduce_prod",
-    "reduce_std",
-    "reduce_variance",
-    "segment_max",
-    "segment_mean",
-    "segment_min",
-    "segment_prod",
-    "segment_sum",
-    "sinh",
-    "sobol_sample",
-    "softplus",
-    "top_k",
-    "unsorted_segment_max",
-    "unsorted_segment_mean",
-    "unsorted_segment_min",
-    "unsorted_segment_prod",
-    "unsorted_segment_sqrt_n",
-    "unsorted_segment_sum",
-    "xlog1py",
-    "xlogy",
-    "zero_fraction",
-]
-
-# keep sorted
-VULKAN_FAILING_DYNAMIC = [
-    "abs",
-    "accumulate_n",
-    "acos",
-    "acosh",
-    "add",
-    "add_n",
-    "angle",
-    "argmax",
-    "argmin",
-    "asin",
-    "asinh",
-    "atan",
-    "atan2",
-    "atanh",
-    "bessel_i0",
-    "bessel_i0e",
-    "bessel_i1",
-    "bessel_i1e",
-    "betainc",
-    "bincount",
-    "ceil",
-    "confusion_matrix",
-    "cos",
-    "cosh",
-    "count_nonzero",
-    "cumprod",
-    "cumsum",
-    "cumulative_logsumexp",
-    "digamma",
-    "divide",
-    "divide_no_nan",
-    "equal",
-    "erf",
-    "erfc",
-    "erfinv",
-    "exp",
-    "expm1",
-    "floor",
-    "floordiv",
-    "floormod",
-    "greater",
-    "greater_equal",
-    "igamma",
-    "igammac",
-    "imag",
-    "in_top_k",
-    "invert_permutation",
-    "is_finite",
-    "is_inf",
-    "is_nan",
-    "is_non_decreasing",
-    "is_strictly_increasing",
-    "lbeta",
-    "less",
-    "less_equal",
-    "lgamma",
-    "log",
-    "log1p",
-    "log_sigmoid",
-    "log_softmax",
-    "logical_and",
-    "logical_not",
-    "logical_or",
-    "logical_xor",
-    "maximum",
-    "minimum",
-    "mod",
-    "multiply",
-    "multiply_no_nan",
-    "ndtri",
-    "negative",
-    "nextafter",
-    "not_equal",
-    "polygamma",
-    "polyval",
-    "pow",
-    "reciprocal",
-    "reciprocal_no_nan",
-    "reduce_all",
-    "reduce_any",
-    "reduce_euclidean_norm",
-    "reduce_logsumexp",
-    "reduce_max",
-    "reduce_mean",
-    "reduce_min",
-    "reduce_prod",
-    "reduce_std",
-    "reduce_sum",
-    "reduce_variance",
-    "rint",
-    "round",
-    "rsqrt",
-    "scalar_mul",
-    "segment_max",
-    "segment_mean",
-    "segment_min",
-    "segment_prod",
-    "segment_sum",
-    "sigmoid",
-    "sign",
-    "sin",
-    "sinh",
-    "sobol_sample",
-    "softmax",
-    "softplus",
-    "softsign",
-    "sqrt",
-    "square",
-    "squared_difference",
-    "subtract",
-    "tan",
-    "tanh",
-    "top_k",
-    "truediv",
-    "unsorted_segment_max",
-    "unsorted_segment_mean",
-    "unsorted_segment_min",
-    "unsorted_segment_prod",
-    "unsorted_segment_sqrt_n",
-    "unsorted_segment_sum",
-    "xdivy",
-    "xlog1py",
-    "xlogy",
-    "zero_fraction",
-    "zeta",
-]
-
-iree_e2e_cartesian_product_test_suite(
-    name = "math_dynamic_dims_tests",
-    failing_configurations = [
-        {
-            # Failing on llvm.
-            "functions": LLVM_FAILING_DYNAMIC,
-            "target_backends": "iree_llvmaot",
-        },
-        {
-            # Failing on vulkan.
-            "functions": VULKAN_FAILING_DYNAMIC,
-            "target_backends": "iree_vulkan",
-        },
-    ],
-    matrix = {
-        "src": "math_test.py",
-        "reference_backend": "tf",
-        "functions": TF_MATH_FUNCTIONS,
-        "dynamic_dims": True,
-        "test_complex": False,
-        "target_backends": [
-            "iree_llvmaot",
-            "iree_vulkan",
-        ],
-    },
-    deps = [
-        "//third_party/py/absl:app",
-        "//third_party/py/absl/flags",
-        "//third_party/py/iree:pylib_tf_support",
-        "//third_party/py/numpy",
-        "//third_party/py/tensorflow",
-        "//util/debuginfo:signalsafe_addr2line_installer",
-    ],
-)
-
-# ---- COMPLEX TESTS ---------------------------------------------- #
-
-# This list was generated by running:
-#   bazel run integrations/tensorflow/e2e/math:math_test_manual -- --list_functions_with_complex_tests
-# keep sorted
-COMPLEX_FUNCTIONS = [
-    "abs",
-    "add",
-    "angle",
-    "asinh",
-    "atanh",
-    "conj",
-    "cos",
-    "cosh",
-    "count_nonzero",
-    "cumprod",
-    "cumsum",
-    "divide",
-    "divide_no_nan",
-    "exp",
-    "expm1",
-    "imag",
-    "l2_normalize",
-    "log",
-    "log1p",
-    "multiply",
-    "multiply_no_nan",
-    "negative",
-    "pow",
-    "real",
-    "reciprocal",
-    "reciprocal_no_nan",
-    "reduce_euclidean_norm",
-    "reduce_std",
-    "reduce_variance",
-    "rsqrt",
-    "sigmoid",
-    "sign",
-    "sin",
-    "sinh",
-    "sqrt",
-    "square",
-    "squared_difference",
-    "subtract",
-    "tan",
-    "tanh",
-    "truediv",
-    "xdivy",
-    "xlog1py",
-    "xlogy",
-    "zero_fraction",
-]
-
-# keep sorted
-LLVM_FAILING_COMPLEX = [
-    "angle",
-    "asinh",
-    "atanh",
-    "cos",
-    "cosh",
-    "count_nonzero",
-    "cumprod",
-    "cumsum",
-    "divide",
-    "divide_no_nan",
-    "expm1",
-    "log",
-    "log1p",
-    "multiply_no_nan",
-    "negative",
-    "pow",
-    "reciprocal",
-    "reciprocal_no_nan",
-    "reduce_euclidean_norm",
-    "reduce_std",
-    "reduce_variance",
-    "rsqrt",
-    "sigmoid",
-    "sign",
-    "sin",
-    "sinh",
-    "sqrt",
-    "tan",
-    "tanh",
-    "xdivy",
-    "xlog1py",
-    "xlogy",
-    "zero_fraction",
-]
-
-# keep sorted
-VULKAN_FAILING_COMPLEX = [
-    "angle",
-    "asinh",
-    "atanh",
-    "cos",
-    "cosh",
-    "count_nonzero",
-    "cumprod",
-    "cumsum",
-    "divide",
-    "divide_no_nan",
-    "expm1",
-    "log",
-    "log1p",
-    "multiply_no_nan",
-    "negative",
-    "pow",
-    "reciprocal",
-    "reciprocal_no_nan",
-    "reduce_euclidean_norm",
-    "reduce_std",
-    "reduce_variance",
-    "rsqrt",
-    "sigmoid",
-    "sign",
-    "sin",
-    "sinh",
-    "sqrt",
-    "tan",
-    "tanh",
-    "xdivy",
-    "xlog1py",
-    "xlogy",
-    "zero_fraction",
-]
-
-iree_e2e_cartesian_product_test_suite(
-    name = "math_complex_tests",
-    failing_configurations = [
-        {
-            # Failing on llvm.
-            "functions": LLVM_FAILING_COMPLEX,
-            "target_backends": "iree_llvmaot",
-        },
-        {
-            # Failing on vulkan.
-            "functions": VULKAN_FAILING_COMPLEX,
-            "target_backends": "iree_vulkan",
-        },
-    ],
-    matrix = {
-        "src": "math_test.py",
-        "reference_backend": "tf",
-        "functions": COMPLEX_FUNCTIONS,
-        "dynamic_dims": False,
-        "test_complex": True,
-        "target_backends": [
-            "iree_llvmaot",
-            "iree_vulkan",
-        ],
-    },
-    deps = [
-        "//third_party/py/absl:app",
-        "//third_party/py/absl/flags",
-        "//third_party/py/iree:pylib_tf_support",
-        "//third_party/py/numpy",
-        "//third_party/py/tensorflow",
-        "//util/debuginfo:signalsafe_addr2line_installer",
-    ],
-)
diff --git a/integrations/tensorflow/e2e/math/CMakeLists.txt b/integrations/tensorflow/e2e/math/CMakeLists.txt
deleted file mode 100644
index b463156..0000000
--- a/integrations/tensorflow/e2e/math/CMakeLists.txt
+++ /dev/null
@@ -1,431 +0,0 @@
-################################################################################
-# Autogenerated by build_tools/bazel_to_cmake/bazel_to_cmake.py from           #
-# integrations/tensorflow/e2e/math/BUILD                                       #
-#                                                                              #
-# 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_e2e_cartesian_product_test_suite(
-  NAME
-    math_tests
-  MATRIX_KEYS
-    "src"
-    "reference_backend"
-    "functions"
-    "dynamic_dims"
-    "test_complex"
-    "target_backends"
-  MATRIX_VALUES
-    "math_test.py"
-    "tf"
-    "abs;accumulate_n;acos;acosh;add;add_n;angle;argmax;argmin;asin;asinh;atan;atan2;atanh;bessel_i0;bessel_i0e;bessel_i1;bessel_i1e;betainc;bincount;ceil;confusion_matrix;cos;cosh;count_nonzero;cumprod;cumsum;cumulative_logsumexp;digamma;divide;divide_no_nan;equal;erf;erfc;erfinv;exp;expm1;floor;floordiv;floormod;greater;greater_equal;igamma;igammac;imag;in_top_k;invert_permutation;is_finite;is_inf;is_nan;is_non_decreasing;is_strictly_increasing;lbeta;less;less_equal;lgamma;log;log1p;log_sigmoid;log_softmax;logical_and;logical_not;logical_or;logical_xor;maximum;minimum;mod;multiply;multiply_no_nan;ndtri;negative;nextafter;not_equal;polygamma;polyval;pow;real;reciprocal;reciprocal_no_nan;reduce_all;reduce_any;reduce_euclidean_norm;reduce_logsumexp;reduce_max;reduce_mean;reduce_min;reduce_prod;reduce_std;reduce_sum;reduce_variance;rint;round;rsqrt;scalar_mul;segment_max;segment_mean;segment_min;segment_prod;segment_sum;sigmoid;sign;sin;sinh;sobol_sample;softmax;softplus;softsign;sqrt;square;squared_difference;subtract;tan;tanh;top_k;truediv;unsorted_segment_max;unsorted_segment_mean;unsorted_segment_min;unsorted_segment_prod;unsorted_segment_sqrt_n;unsorted_segment_sum;xdivy;xlog1py;xlogy;zero_fraction;zeta"
-    "False"
-    "False"
-    "iree_llvmaot;iree_vulkan"
-  FAILING_CONFIGURATIONS
-    ",,acos,,,iree_llvmaot"
-    ",,argmax,,,iree_llvmaot"
-    ",,argmin,,,iree_llvmaot"
-    ",,asin,,,iree_llvmaot"
-    ",,atan,,,iree_llvmaot"
-    ",,atan2,,,iree_llvmaot"
-    ",,bessel_i0,,,iree_llvmaot"
-    ",,bessel_i0e,,,iree_llvmaot"
-    ",,bessel_i1,,,iree_llvmaot"
-    ",,bessel_i1e,,,iree_llvmaot"
-    ",,betainc,,,iree_llvmaot"
-    ",,bincount,,,iree_llvmaot"
-    ",,confusion_matrix,,,iree_llvmaot"
-    ",,count_nonzero,,,iree_llvmaot"
-    ",,cumprod,,,iree_llvmaot"
-    ",,cumsum,,,iree_llvmaot"
-    ",,cumulative_logsumexp,,,iree_llvmaot"
-    ",,divide,,,iree_llvmaot"
-    ",,erfinv,,,iree_llvmaot"
-    ",,igamma,,,iree_llvmaot"
-    ",,igammac,,,iree_llvmaot"
-    ",,in_top_k,,,iree_llvmaot"
-    ",,invert_permutation,,,iree_llvmaot"
-    ",,is_non_decreasing,,,iree_llvmaot"
-    ",,is_strictly_increasing,,,iree_llvmaot"
-    ",,ndtri,,,iree_llvmaot"
-    ",,nextafter,,,iree_llvmaot"
-    ",,reduce_all,,,iree_llvmaot"
-    ",,reduce_any,,,iree_llvmaot"
-    ",,reduce_euclidean_norm,,,iree_llvmaot"
-    ",,reduce_prod,,,iree_llvmaot"
-    ",,segment_max,,,iree_llvmaot"
-    ",,segment_mean,,,iree_llvmaot"
-    ",,segment_min,,,iree_llvmaot"
-    ",,segment_prod,,,iree_llvmaot"
-    ",,segment_sum,,,iree_llvmaot"
-    ",,sobol_sample,,,iree_llvmaot"
-    ",,softsign,,,iree_llvmaot"
-    ",,top_k,,,iree_llvmaot"
-    ",,unsorted_segment_max,,,iree_llvmaot"
-    ",,unsorted_segment_mean,,,iree_llvmaot"
-    ",,unsorted_segment_min,,,iree_llvmaot"
-    ",,unsorted_segment_prod,,,iree_llvmaot"
-    ",,unsorted_segment_sqrt_n,,,iree_llvmaot"
-    ",,unsorted_segment_sum,,,iree_llvmaot"
-    ",,acos,,,iree_vulkan"
-    ",,argmax,,,iree_vulkan"
-    ",,argmin,,,iree_vulkan"
-    ",,asin,,,iree_vulkan"
-    ",,asinh,,,iree_vulkan"
-    ",,atan,,,iree_vulkan"
-    ",,atan2,,,iree_vulkan"
-    ",,bessel_i0,,,iree_vulkan"
-    ",,bessel_i0e,,,iree_vulkan"
-    ",,bessel_i1,,,iree_vulkan"
-    ",,bessel_i1e,,,iree_vulkan"
-    ",,betainc,,,iree_vulkan"
-    ",,bincount,,,iree_vulkan"
-    ",,confusion_matrix,,,iree_vulkan"
-    ",,count_nonzero,,,iree_vulkan"
-    ",,cumprod,,,iree_vulkan"
-    ",,cumsum,,,iree_vulkan"
-    ",,cumulative_logsumexp,,,iree_vulkan"
-    ",,divide,,,iree_vulkan"
-    ",,equal,,,iree_vulkan"
-    ",,erfinv,,,iree_vulkan"
-    ",,greater,,,iree_vulkan"
-    ",,greater_equal,,,iree_vulkan"
-    ",,igamma,,,iree_vulkan"
-    ",,igammac,,,iree_vulkan"
-    ",,in_top_k,,,iree_vulkan"
-    ",,invert_permutation,,,iree_vulkan"
-    ",,is_inf,,,iree_vulkan"
-    ",,is_nan,,,iree_vulkan"
-    ",,is_non_decreasing,,,iree_vulkan"
-    ",,is_strictly_increasing,,,iree_vulkan"
-    ",,less,,,iree_vulkan"
-    ",,less_equal,,,iree_vulkan"
-    ",,logical_and,,,iree_vulkan"
-    ",,logical_not,,,iree_vulkan"
-    ",,logical_or,,,iree_vulkan"
-    ",,logical_xor,,,iree_vulkan"
-    ",,ndtri,,,iree_vulkan"
-    ",,nextafter,,,iree_vulkan"
-    ",,not_equal,,,iree_vulkan"
-    ",,polygamma,,,iree_vulkan"
-    ",,pow,,,iree_vulkan"
-    ",,reduce_all,,,iree_vulkan"
-    ",,reduce_any,,,iree_vulkan"
-    ",,reduce_euclidean_norm,,,iree_vulkan"
-    ",,reduce_prod,,,iree_vulkan"
-    ",,segment_max,,,iree_vulkan"
-    ",,segment_mean,,,iree_vulkan"
-    ",,segment_min,,,iree_vulkan"
-    ",,segment_prod,,,iree_vulkan"
-    ",,segment_sum,,,iree_vulkan"
-    ",,sign,,,iree_vulkan"
-    ",,sobol_sample,,,iree_vulkan"
-    ",,softsign,,,iree_vulkan"
-    ",,top_k,,,iree_vulkan"
-    ",,unsorted_segment_max,,,iree_vulkan"
-    ",,unsorted_segment_mean,,,iree_vulkan"
-    ",,unsorted_segment_min,,,iree_vulkan"
-    ",,unsorted_segment_prod,,,iree_vulkan"
-    ",,unsorted_segment_sqrt_n,,,iree_vulkan"
-    ",,unsorted_segment_sum,,,iree_vulkan"
-    ",,zeta,,,iree_vulkan"
-    ",,digamma,,,iree_vulkan"
-    ",,is_finite,,,iree_vulkan"
-    ",,mod,,,iree_vulkan"
-)
-
-iree_e2e_cartesian_product_test_suite(
-  NAME
-    math_dynamic_dims_tests
-  MATRIX_KEYS
-    "src"
-    "reference_backend"
-    "functions"
-    "dynamic_dims"
-    "test_complex"
-    "target_backends"
-  MATRIX_VALUES
-    "math_test.py"
-    "tf"
-    "abs;accumulate_n;acos;acosh;add;add_n;angle;argmax;argmin;asin;asinh;atan;atan2;atanh;bessel_i0;bessel_i0e;bessel_i1;bessel_i1e;betainc;bincount;ceil;confusion_matrix;cos;cosh;count_nonzero;cumprod;cumsum;cumulative_logsumexp;digamma;divide;divide_no_nan;equal;erf;erfc;erfinv;exp;expm1;floor;floordiv;floormod;greater;greater_equal;igamma;igammac;imag;in_top_k;invert_permutation;is_finite;is_inf;is_nan;is_non_decreasing;is_strictly_increasing;lbeta;less;less_equal;lgamma;log;log1p;log_sigmoid;log_softmax;logical_and;logical_not;logical_or;logical_xor;maximum;minimum;mod;multiply;multiply_no_nan;ndtri;negative;nextafter;not_equal;polygamma;polyval;pow;real;reciprocal;reciprocal_no_nan;reduce_all;reduce_any;reduce_euclidean_norm;reduce_logsumexp;reduce_max;reduce_mean;reduce_min;reduce_prod;reduce_std;reduce_sum;reduce_variance;rint;round;rsqrt;scalar_mul;segment_max;segment_mean;segment_min;segment_prod;segment_sum;sigmoid;sign;sin;sinh;sobol_sample;softmax;softplus;softsign;sqrt;square;squared_difference;subtract;tan;tanh;top_k;truediv;unsorted_segment_max;unsorted_segment_mean;unsorted_segment_min;unsorted_segment_prod;unsorted_segment_sqrt_n;unsorted_segment_sum;xdivy;xlog1py;xlogy;zero_fraction;zeta"
-    "True"
-    "False"
-    "iree_llvmaot;iree_vulkan"
-  FAILING_CONFIGURATIONS
-    ",,acos,,,iree_llvmaot"
-    ",,angle,,,iree_llvmaot"
-    ",,argmax,,,iree_llvmaot"
-    ",,argmin,,,iree_llvmaot"
-    ",,asin,,,iree_llvmaot"
-    ",,atan,,,iree_llvmaot"
-    ",,atan2,,,iree_llvmaot"
-    ",,bessel_i0,,,iree_llvmaot"
-    ",,bessel_i0e,,,iree_llvmaot"
-    ",,bessel_i1,,,iree_llvmaot"
-    ",,bessel_i1e,,,iree_llvmaot"
-    ",,betainc,,,iree_llvmaot"
-    ",,bincount,,,iree_llvmaot"
-    ",,confusion_matrix,,,iree_llvmaot"
-    ",,count_nonzero,,,iree_llvmaot"
-    ",,cumprod,,,iree_llvmaot"
-    ",,cumsum,,,iree_llvmaot"
-    ",,cumulative_logsumexp,,,iree_llvmaot"
-    ",,divide,,,iree_llvmaot"
-    ",,erfinv,,,iree_llvmaot"
-    ",,expm1,,,iree_llvmaot"
-    ",,igamma,,,iree_llvmaot"
-    ",,igammac,,,iree_llvmaot"
-    ",,imag,,,iree_llvmaot"
-    ",,in_top_k,,,iree_llvmaot"
-    ",,invert_permutation,,,iree_llvmaot"
-    ",,is_non_decreasing,,,iree_llvmaot"
-    ",,is_strictly_increasing,,,iree_llvmaot"
-    ",,log1p,,,iree_llvmaot"
-    ",,log_sigmoid,,,iree_llvmaot"
-    ",,log_softmax,,,iree_llvmaot"
-    ",,ndtri,,,iree_llvmaot"
-    ",,nextafter,,,iree_llvmaot"
-    ",,reduce_euclidean_norm,,,iree_llvmaot"
-    ",,reduce_logsumexp,,,iree_llvmaot"
-    ",,reduce_mean,,,iree_llvmaot"
-    ",,reduce_prod,,,iree_llvmaot"
-    ",,reduce_std,,,iree_llvmaot"
-    ",,reduce_variance,,,iree_llvmaot"
-    ",,segment_max,,,iree_llvmaot"
-    ",,segment_mean,,,iree_llvmaot"
-    ",,segment_min,,,iree_llvmaot"
-    ",,segment_prod,,,iree_llvmaot"
-    ",,segment_sum,,,iree_llvmaot"
-    ",,sinh,,,iree_llvmaot"
-    ",,sobol_sample,,,iree_llvmaot"
-    ",,softplus,,,iree_llvmaot"
-    ",,top_k,,,iree_llvmaot"
-    ",,unsorted_segment_max,,,iree_llvmaot"
-    ",,unsorted_segment_mean,,,iree_llvmaot"
-    ",,unsorted_segment_min,,,iree_llvmaot"
-    ",,unsorted_segment_prod,,,iree_llvmaot"
-    ",,unsorted_segment_sqrt_n,,,iree_llvmaot"
-    ",,unsorted_segment_sum,,,iree_llvmaot"
-    ",,xlog1py,,,iree_llvmaot"
-    ",,xlogy,,,iree_llvmaot"
-    ",,zero_fraction,,,iree_llvmaot"
-    ",,abs,,,iree_vulkan"
-    ",,accumulate_n,,,iree_vulkan"
-    ",,acos,,,iree_vulkan"
-    ",,acosh,,,iree_vulkan"
-    ",,add,,,iree_vulkan"
-    ",,add_n,,,iree_vulkan"
-    ",,angle,,,iree_vulkan"
-    ",,argmax,,,iree_vulkan"
-    ",,argmin,,,iree_vulkan"
-    ",,asin,,,iree_vulkan"
-    ",,asinh,,,iree_vulkan"
-    ",,atan,,,iree_vulkan"
-    ",,atan2,,,iree_vulkan"
-    ",,atanh,,,iree_vulkan"
-    ",,bessel_i0,,,iree_vulkan"
-    ",,bessel_i0e,,,iree_vulkan"
-    ",,bessel_i1,,,iree_vulkan"
-    ",,bessel_i1e,,,iree_vulkan"
-    ",,betainc,,,iree_vulkan"
-    ",,bincount,,,iree_vulkan"
-    ",,ceil,,,iree_vulkan"
-    ",,confusion_matrix,,,iree_vulkan"
-    ",,cos,,,iree_vulkan"
-    ",,cosh,,,iree_vulkan"
-    ",,count_nonzero,,,iree_vulkan"
-    ",,cumprod,,,iree_vulkan"
-    ",,cumsum,,,iree_vulkan"
-    ",,cumulative_logsumexp,,,iree_vulkan"
-    ",,digamma,,,iree_vulkan"
-    ",,divide,,,iree_vulkan"
-    ",,divide_no_nan,,,iree_vulkan"
-    ",,equal,,,iree_vulkan"
-    ",,erf,,,iree_vulkan"
-    ",,erfc,,,iree_vulkan"
-    ",,erfinv,,,iree_vulkan"
-    ",,exp,,,iree_vulkan"
-    ",,expm1,,,iree_vulkan"
-    ",,floor,,,iree_vulkan"
-    ",,floordiv,,,iree_vulkan"
-    ",,floormod,,,iree_vulkan"
-    ",,greater,,,iree_vulkan"
-    ",,greater_equal,,,iree_vulkan"
-    ",,igamma,,,iree_vulkan"
-    ",,igammac,,,iree_vulkan"
-    ",,imag,,,iree_vulkan"
-    ",,in_top_k,,,iree_vulkan"
-    ",,invert_permutation,,,iree_vulkan"
-    ",,is_finite,,,iree_vulkan"
-    ",,is_inf,,,iree_vulkan"
-    ",,is_nan,,,iree_vulkan"
-    ",,is_non_decreasing,,,iree_vulkan"
-    ",,is_strictly_increasing,,,iree_vulkan"
-    ",,lbeta,,,iree_vulkan"
-    ",,less,,,iree_vulkan"
-    ",,less_equal,,,iree_vulkan"
-    ",,lgamma,,,iree_vulkan"
-    ",,log,,,iree_vulkan"
-    ",,log1p,,,iree_vulkan"
-    ",,log_sigmoid,,,iree_vulkan"
-    ",,log_softmax,,,iree_vulkan"
-    ",,logical_and,,,iree_vulkan"
-    ",,logical_not,,,iree_vulkan"
-    ",,logical_or,,,iree_vulkan"
-    ",,logical_xor,,,iree_vulkan"
-    ",,maximum,,,iree_vulkan"
-    ",,minimum,,,iree_vulkan"
-    ",,mod,,,iree_vulkan"
-    ",,multiply,,,iree_vulkan"
-    ",,multiply_no_nan,,,iree_vulkan"
-    ",,ndtri,,,iree_vulkan"
-    ",,negative,,,iree_vulkan"
-    ",,nextafter,,,iree_vulkan"
-    ",,not_equal,,,iree_vulkan"
-    ",,polygamma,,,iree_vulkan"
-    ",,polyval,,,iree_vulkan"
-    ",,pow,,,iree_vulkan"
-    ",,reciprocal,,,iree_vulkan"
-    ",,reciprocal_no_nan,,,iree_vulkan"
-    ",,reduce_all,,,iree_vulkan"
-    ",,reduce_any,,,iree_vulkan"
-    ",,reduce_euclidean_norm,,,iree_vulkan"
-    ",,reduce_logsumexp,,,iree_vulkan"
-    ",,reduce_max,,,iree_vulkan"
-    ",,reduce_mean,,,iree_vulkan"
-    ",,reduce_min,,,iree_vulkan"
-    ",,reduce_prod,,,iree_vulkan"
-    ",,reduce_std,,,iree_vulkan"
-    ",,reduce_sum,,,iree_vulkan"
-    ",,reduce_variance,,,iree_vulkan"
-    ",,rint,,,iree_vulkan"
-    ",,round,,,iree_vulkan"
-    ",,rsqrt,,,iree_vulkan"
-    ",,scalar_mul,,,iree_vulkan"
-    ",,segment_max,,,iree_vulkan"
-    ",,segment_mean,,,iree_vulkan"
-    ",,segment_min,,,iree_vulkan"
-    ",,segment_prod,,,iree_vulkan"
-    ",,segment_sum,,,iree_vulkan"
-    ",,sigmoid,,,iree_vulkan"
-    ",,sign,,,iree_vulkan"
-    ",,sin,,,iree_vulkan"
-    ",,sinh,,,iree_vulkan"
-    ",,sobol_sample,,,iree_vulkan"
-    ",,softmax,,,iree_vulkan"
-    ",,softplus,,,iree_vulkan"
-    ",,softsign,,,iree_vulkan"
-    ",,sqrt,,,iree_vulkan"
-    ",,square,,,iree_vulkan"
-    ",,squared_difference,,,iree_vulkan"
-    ",,subtract,,,iree_vulkan"
-    ",,tan,,,iree_vulkan"
-    ",,tanh,,,iree_vulkan"
-    ",,top_k,,,iree_vulkan"
-    ",,truediv,,,iree_vulkan"
-    ",,unsorted_segment_max,,,iree_vulkan"
-    ",,unsorted_segment_mean,,,iree_vulkan"
-    ",,unsorted_segment_min,,,iree_vulkan"
-    ",,unsorted_segment_prod,,,iree_vulkan"
-    ",,unsorted_segment_sqrt_n,,,iree_vulkan"
-    ",,unsorted_segment_sum,,,iree_vulkan"
-    ",,xdivy,,,iree_vulkan"
-    ",,xlog1py,,,iree_vulkan"
-    ",,xlogy,,,iree_vulkan"
-    ",,zero_fraction,,,iree_vulkan"
-    ",,zeta,,,iree_vulkan"
-)
-
-iree_e2e_cartesian_product_test_suite(
-  NAME
-    math_complex_tests
-  MATRIX_KEYS
-    "src"
-    "reference_backend"
-    "functions"
-    "dynamic_dims"
-    "test_complex"
-    "target_backends"
-  MATRIX_VALUES
-    "math_test.py"
-    "tf"
-    "abs;add;angle;asinh;atanh;conj;cos;cosh;count_nonzero;cumprod;cumsum;divide;divide_no_nan;exp;expm1;imag;l2_normalize;log;log1p;multiply;multiply_no_nan;negative;pow;real;reciprocal;reciprocal_no_nan;reduce_euclidean_norm;reduce_std;reduce_variance;rsqrt;sigmoid;sign;sin;sinh;sqrt;square;squared_difference;subtract;tan;tanh;truediv;xdivy;xlog1py;xlogy;zero_fraction"
-    "False"
-    "True"
-    "iree_llvmaot;iree_vulkan"
-  FAILING_CONFIGURATIONS
-    ",,angle,,,iree_llvmaot"
-    ",,asinh,,,iree_llvmaot"
-    ",,atanh,,,iree_llvmaot"
-    ",,cos,,,iree_llvmaot"
-    ",,cosh,,,iree_llvmaot"
-    ",,count_nonzero,,,iree_llvmaot"
-    ",,cumprod,,,iree_llvmaot"
-    ",,cumsum,,,iree_llvmaot"
-    ",,divide,,,iree_llvmaot"
-    ",,divide_no_nan,,,iree_llvmaot"
-    ",,expm1,,,iree_llvmaot"
-    ",,log,,,iree_llvmaot"
-    ",,log1p,,,iree_llvmaot"
-    ",,multiply_no_nan,,,iree_llvmaot"
-    ",,negative,,,iree_llvmaot"
-    ",,pow,,,iree_llvmaot"
-    ",,reciprocal,,,iree_llvmaot"
-    ",,reciprocal_no_nan,,,iree_llvmaot"
-    ",,reduce_euclidean_norm,,,iree_llvmaot"
-    ",,reduce_std,,,iree_llvmaot"
-    ",,reduce_variance,,,iree_llvmaot"
-    ",,rsqrt,,,iree_llvmaot"
-    ",,sigmoid,,,iree_llvmaot"
-    ",,sign,,,iree_llvmaot"
-    ",,sin,,,iree_llvmaot"
-    ",,sinh,,,iree_llvmaot"
-    ",,sqrt,,,iree_llvmaot"
-    ",,tan,,,iree_llvmaot"
-    ",,tanh,,,iree_llvmaot"
-    ",,xdivy,,,iree_llvmaot"
-    ",,xlog1py,,,iree_llvmaot"
-    ",,xlogy,,,iree_llvmaot"
-    ",,zero_fraction,,,iree_llvmaot"
-    ",,angle,,,iree_vulkan"
-    ",,asinh,,,iree_vulkan"
-    ",,atanh,,,iree_vulkan"
-    ",,cos,,,iree_vulkan"
-    ",,cosh,,,iree_vulkan"
-    ",,count_nonzero,,,iree_vulkan"
-    ",,cumprod,,,iree_vulkan"
-    ",,cumsum,,,iree_vulkan"
-    ",,divide,,,iree_vulkan"
-    ",,divide_no_nan,,,iree_vulkan"
-    ",,expm1,,,iree_vulkan"
-    ",,log,,,iree_vulkan"
-    ",,log1p,,,iree_vulkan"
-    ",,multiply_no_nan,,,iree_vulkan"
-    ",,negative,,,iree_vulkan"
-    ",,pow,,,iree_vulkan"
-    ",,reciprocal,,,iree_vulkan"
-    ",,reciprocal_no_nan,,,iree_vulkan"
-    ",,reduce_euclidean_norm,,,iree_vulkan"
-    ",,reduce_std,,,iree_vulkan"
-    ",,reduce_variance,,,iree_vulkan"
-    ",,rsqrt,,,iree_vulkan"
-    ",,sigmoid,,,iree_vulkan"
-    ",,sign,,,iree_vulkan"
-    ",,sin,,,iree_vulkan"
-    ",,sinh,,,iree_vulkan"
-    ",,sqrt,,,iree_vulkan"
-    ",,tan,,,iree_vulkan"
-    ",,tanh,,,iree_vulkan"
-    ",,xdivy,,,iree_vulkan"
-    ",,xlog1py,,,iree_vulkan"
-    ",,xlogy,,,iree_vulkan"
-    ",,zero_fraction,,,iree_vulkan"
-)
-
-### BAZEL_TO_CMAKE_PRESERVES_ALL_CONTENT_BELOW_THIS_LINE ###
diff --git a/integrations/tensorflow/e2e/math/math_test.py b/integrations/tensorflow/e2e/math/math_test.py
deleted file mode 100644
index 8da6aff..0000000
--- a/integrations/tensorflow/e2e/math/math_test.py
+++ /dev/null
@@ -1,751 +0,0 @@
-# Copyright 2020 The IREE Authors
-#
-# Licensed under the Apache License v2.0 with LLVM Exceptions.
-# See https://llvm.org/LICENSE.txt for license information.
-# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-
-import collections
-import os
-from typing import Any, Dict, Sequence, Type, Union
-
-from absl import app
-from absl import flags
-from iree.tf.support import tf_test_utils
-from iree.tf.support import tf_utils
-import numpy as np
-import tensorflow.compat.v2 as tf
-
-FLAGS = flags.FLAGS
-
-# As high as tf goes without breaking.
-RANK_7_SHAPE = [2] * 7
-UNARY_SIGNATURE_SHAPES = [[RANK_7_SHAPE]]
-BINARY_SIGNATURE_SHAPES = [[RANK_7_SHAPE] * 2]
-TERNARY_SIGNATURE_SHAPES = [[RANK_7_SHAPE] * 3]
-
-# Reused UnitTestSpecs.
-SEGMENT_UNIT_TEST_SPECS = tf_test_utils.unit_test_specs_from_args(
-    names_to_input_args={
-        "tf_doc_example": [
-            tf.constant([
-                [1, 2, 3, 4],
-                [4, 3, 2, 1],
-                [5, 6, 7, 8],
-            ], np.float32),
-            np.array([0, 0, 1], np.int32),
-        ]
-    })
-UNSORTED_SEGMENT_UNIT_TEST_SPECS = tf_test_utils.unit_test_specs_from_args(
-    names_to_input_args={
-        "tf_doc_example": [
-            tf.constant([
-                [1, 2, 3, 4],
-                [4, 3, 2, 1],
-                [5, 6, 7, 8],
-            ], np.float32),
-            np.array([0, 0, 1], np.int32),
-            2,
-        ]
-    })
-
-REDUCE_KWARGS_TO_VALUES = {
-    "axis": [None, 1],
-    "keepdims": [False, True],
-}
-
-# A dictionary mapping tf.math function names to lists of UnitTestSpecs.
-# Each unit_test_name will have the tf.math function name prepended to it.
-FUNCTIONS_TO_UNIT_TEST_SPECS = {
-    "abs":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=UNARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32, tf.int32, tf.complex64]),
-    "accumulate_n": [
-        tf_test_utils.UnitTestSpec(
-            unit_test_name='f32',
-            input_signature=[[tf.TensorSpec(RANK_7_SHAPE, tf.float32)] * 5]),
-        tf_test_utils.UnitTestSpec(
-            unit_test_name='i32',
-            input_signature=[[tf.TensorSpec(RANK_7_SHAPE, tf.int32)] * 5]),
-    ],
-    "acos":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=UNARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32]),
-    "acosh":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=UNARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32],
-            input_generators=[tf_utils.ndarange]),
-    "add":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=BINARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32, tf.int32, tf.complex64]),
-    "add_n": [
-        tf_test_utils.UnitTestSpec(
-            unit_test_name='f32',
-            input_signature=[[tf.TensorSpec(RANK_7_SHAPE, tf.float32)] * 5]),
-        tf_test_utils.UnitTestSpec(
-            unit_test_name='i32',
-            input_signature=[[tf.TensorSpec(RANK_7_SHAPE, tf.int32)] * 5]),
-    ],
-    "angle":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=UNARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32, tf.complex64]),
-    "argmax":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=UNARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32, tf.int32]),
-    "argmin":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=UNARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32, tf.int32]),
-    "asin":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=UNARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32]),
-    "asinh":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=UNARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32, tf.complex64]),
-    "atan":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=UNARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32]),
-    "atan2":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=BINARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32]),
-    "atanh":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=UNARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32, tf.complex64]),
-    "bessel_i0":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=UNARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32]),
-    "bessel_i0e":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=UNARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32]),
-    "bessel_i1":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=UNARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32]),
-    "bessel_i1e":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=UNARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32]),
-    "betainc":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=TERNARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32]),
-    "bincount":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=UNARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.int32],
-            input_generators=[tf_utils.ndarange]),
-    "ceil":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=UNARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32]),
-    "confusion_matrix":
-        tf_test_utils.unit_test_specs_from_args(names_to_input_args={
-            "five_classes": [tf.constant([1, 2, 4]),
-                             tf.constant([2, 2, 4])]
-        }),
-    "conj":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=UNARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32, tf.int32, tf.complex64]),
-    "cos":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=UNARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32, tf.complex64]),
-    "cosh":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=UNARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32, tf.complex64]),
-    "count_nonzero":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=UNARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32, tf.int32, tf.complex64],
-            input_generators=[tf_utils.ndarange]),
-    "cumprod":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=UNARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32, tf.int32, tf.complex64]),
-    "cumsum":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=UNARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32, tf.int32, tf.complex64]),
-    "cumulative_logsumexp":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=UNARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32]),
-    "digamma":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=UNARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32]),
-    "divide":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=BINARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32, tf.int32, tf.complex64]),
-    "divide_no_nan":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=BINARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32, tf.complex64]),
-    "equal":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=BINARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32, tf.int32]),
-    "erf":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=UNARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32]),
-    "erfc":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=UNARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32]),
-    "erfinv":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=UNARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32]),
-    "exp":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=UNARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32, tf.complex64]),
-    "expm1":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=UNARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32, tf.complex64]),
-    "floor":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=UNARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32]),
-    "floordiv":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=BINARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32, tf.int32],
-            # Avoid integer division by 0.
-            input_generators={
-                "uniform_1_3":
-                    lambda *args: tf_utils.uniform(*args, low=1.0, high=3.0)
-            }),
-    "floormod":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=BINARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32, tf.int32],
-            # Avoid integer division by 0.
-            input_generators={
-                "uniform_1_3":
-                    lambda *args: tf_utils.uniform(*args, low=1.0, high=3.0)
-            }),
-    "greater":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=BINARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32, tf.int32]),
-    "greater_equal":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=BINARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32, tf.int32]),
-    "igamma":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=BINARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32]),
-    "igammac":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=BINARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32]),
-    "imag":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=UNARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32, tf.complex64]),
-    "in_top_k": [
-        tf_test_utils.UnitTestSpec(
-            unit_test_name="k_3",
-            input_signature=[
-                tf.TensorSpec([8], tf.int32),
-                tf.TensorSpec([8, 3])
-            ],
-            input_generator=tf_utils.ndarange,
-            kwargs=dict(k=3),
-        )
-    ],
-    "invert_permutation": [
-        tf_test_utils.UnitTestSpec(
-            unit_test_name="random",
-            input_signature=[tf.TensorSpec([8], tf.int32)],
-            input_generator=tf_utils.random_permutation,
-        )
-    ],
-    "is_finite":
-        tf_test_utils.unit_test_specs_from_args(names_to_input_args={
-            "nan_and_inf": [tf.constant([[1., np.nan], [np.inf, 2.]])]
-        }),
-    "is_inf":
-        tf_test_utils.unit_test_specs_from_args(names_to_input_args={
-            "nan_and_inf": [tf.constant([[1., np.nan], [np.inf, 2.]])]
-        }),
-    "is_nan":
-        tf_test_utils.unit_test_specs_from_args(names_to_input_args={
-            "nan_and_inf": [tf.constant([[1., np.nan], [np.inf, 2.]])]
-        }),
-    "is_non_decreasing":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=UNARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32, tf.int32]),
-    "is_strictly_increasing":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=UNARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32, tf.int32]),
-    "l2_normalize":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=UNARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32, tf.complex64]),
-    "lbeta":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=UNARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32]),
-    "less":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=BINARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32, tf.int32]),
-    "less_equal":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=BINARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32, tf.int32]),
-    "lgamma":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=UNARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32]),
-    "log":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=UNARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32, tf.complex64]),
-    "log1p":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=UNARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32, tf.complex64]),
-    "log_sigmoid":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=UNARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32]),
-    "log_softmax":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=UNARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32]),
-    "logical_and":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=BINARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.bool]),
-    "logical_not":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=UNARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.bool]),
-    "logical_or":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=BINARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.bool]),
-    "logical_xor":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=BINARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.bool]),
-    "maximum":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=BINARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32, tf.int32]),
-    "minimum":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=BINARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32, tf.int32]),
-    "mod":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=BINARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32, tf.int32],
-            input_generators={
-                "positive_ndarange": lambda *args: tf_utils.ndarange(*args) + 1
-            }),
-    "multiply":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=BINARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32, tf.int32, tf.complex64]),
-    "multiply_no_nan":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=BINARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32, tf.complex64]),
-    "ndtri":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=UNARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32]),
-    "negative":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=UNARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32, tf.int32, tf.complex64]),
-    "nextafter":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=BINARY_SIGNATURE_SHAPES),
-    "not_equal":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=BINARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32, tf.int32]),
-    "polygamma":
-        tf_test_utils.unit_test_specs_from_args(names_to_input_args={
-            "nan_and_inf": [tf.ones(16), tf.linspace(0.5, 4, 16)]
-        }),
-    "polyval": [
-        tf_test_utils.UnitTestSpec(
-            unit_test_name="three_coeffs",
-            input_signature=[[tf.TensorSpec(RANK_7_SHAPE)] * 3,
-                             tf.TensorSpec([])],
-        )
-    ],
-    "pow":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=[[[1, 2, 2, 2], [1, 2, 2, 2]]],
-            signature_dtypes=[tf.float32, tf.int32, tf.complex64],
-            input_generators={
-                "positive_ndarange": lambda *args: tf_utils.ndarange(*args) + 1
-            }),
-    "real":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=UNARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32, tf.complex64]),
-    "reciprocal":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=UNARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32, tf.complex64]),
-    "reciprocal_no_nan":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=UNARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32, tf.complex64]),
-    "reduce_all": [
-        # Explicitly test all True inputs to be absolutely sure that some
-        # reduction axes return True.
-        *tf_test_utils.unit_test_specs_from_args(
-            names_to_input_args={
-                "all_true": [np.ones(RANK_7_SHAPE, np.bool)],
-            },
-            kwargs_to_values=REDUCE_KWARGS_TO_VALUES),
-        *tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=UNARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.bool],
-            kwargs_to_values=REDUCE_KWARGS_TO_VALUES),
-    ],
-    "reduce_any": [
-        # Explicitly test all False inputs to be absolutely sure that some
-        # reduction axes return False.
-        *tf_test_utils.unit_test_specs_from_args(
-            names_to_input_args={
-                "all_false": [np.zeros(RANK_7_SHAPE, np.bool)],
-            },
-            kwargs_to_values=REDUCE_KWARGS_TO_VALUES),
-        *tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=UNARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.bool],
-            kwargs_to_values=REDUCE_KWARGS_TO_VALUES),
-    ],
-    "reduce_euclidean_norm":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=UNARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32, tf.complex64],
-            kwargs_to_values=REDUCE_KWARGS_TO_VALUES),
-    "reduce_logsumexp":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=UNARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32],
-            kwargs_to_values=REDUCE_KWARGS_TO_VALUES),
-    "reduce_max":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=UNARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32, tf.int32],
-            kwargs_to_values=REDUCE_KWARGS_TO_VALUES),
-    "reduce_mean":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=UNARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32, tf.int32],
-            kwargs_to_values=REDUCE_KWARGS_TO_VALUES),
-    "reduce_min":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=UNARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32, tf.int32],
-            kwargs_to_values=REDUCE_KWARGS_TO_VALUES),
-    "reduce_prod":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=UNARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32, tf.int32],
-            kwargs_to_values=REDUCE_KWARGS_TO_VALUES),
-    "reduce_std":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=UNARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32, tf.complex64],
-            kwargs_to_values=REDUCE_KWARGS_TO_VALUES),
-    "reduce_sum":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=UNARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32, tf.int32],
-            kwargs_to_values=REDUCE_KWARGS_TO_VALUES),
-    "reduce_variance":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=UNARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32, tf.complex64],
-            kwargs_to_values=REDUCE_KWARGS_TO_VALUES),
-    "rint":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=UNARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32]),
-    "round":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=UNARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32]),
-    "rsqrt":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=UNARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32, tf.complex64]),
-    "scalar_mul":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=[[[], [8]]]),
-    "segment_max":
-        SEGMENT_UNIT_TEST_SPECS,
-    "segment_mean":
-        SEGMENT_UNIT_TEST_SPECS,
-    "segment_min":
-        SEGMENT_UNIT_TEST_SPECS,
-    "segment_prod":
-        SEGMENT_UNIT_TEST_SPECS,
-    "segment_sum":
-        SEGMENT_UNIT_TEST_SPECS,
-    "sigmoid":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=UNARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32, tf.complex64]),
-    "sign":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=UNARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32, tf.int32, tf.complex64]),
-    "sin":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=UNARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32, tf.complex64]),
-    "sinh":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=UNARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32, tf.complex64]),
-    "sobol_sample":
-        tf_test_utils.unit_test_specs_from_args(
-            names_to_input_args={"simple": [4, 3]}),
-    "softmax":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=UNARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32]),
-    "softplus":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=UNARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32]),
-    "softsign":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=UNARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32]),
-    "sqrt":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=UNARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32, tf.complex64]),
-    "square":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=UNARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32, tf.int32, tf.complex64]),
-    "squared_difference":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=BINARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32, tf.int32, tf.complex64]),
-    "subtract":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=BINARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32, tf.int32, tf.complex64]),
-    "tan":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=UNARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32, tf.complex64]),
-    "tanh":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=UNARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32, tf.complex64]),
-    "top_k":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=[[[2, 2]]],
-            signature_dtypes=[tf.float32],
-            kwargs_to_values={"k": [1, 2]}),
-    "truediv":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=BINARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32, tf.complex64]),
-    "unsorted_segment_max":
-        UNSORTED_SEGMENT_UNIT_TEST_SPECS,
-    "unsorted_segment_mean":
-        UNSORTED_SEGMENT_UNIT_TEST_SPECS,
-    "unsorted_segment_min":
-        UNSORTED_SEGMENT_UNIT_TEST_SPECS,
-    "unsorted_segment_prod":
-        UNSORTED_SEGMENT_UNIT_TEST_SPECS,
-    "unsorted_segment_sqrt_n":
-        UNSORTED_SEGMENT_UNIT_TEST_SPECS,
-    "unsorted_segment_sum":
-        UNSORTED_SEGMENT_UNIT_TEST_SPECS,
-    "xdivy":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=BINARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32, tf.complex64]),
-    "xlog1py":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=BINARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32, tf.complex64]),
-    "xlogy":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=BINARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32, tf.complex64]),
-    "zero_fraction":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=UNARY_SIGNATURE_SHAPES,
-            signature_dtypes=[tf.float32, tf.int32, tf.complex64]),
-    "zeta":
-        tf_test_utils.unit_test_specs_from_signatures(
-            signature_shapes=BINARY_SIGNATURE_SHAPES,
-            # The function is poorly behaved near zero, so we test this range
-            # to avoid outputing all nans.
-            input_generators={
-                "uniform_3_4":
-                    lambda *args: tf_utils.uniform(*args, low=3.0, high=4.0)
-            },
-        )
-}
-
-for function, specs in FUNCTIONS_TO_UNIT_TEST_SPECS.items():
-  # Update using 'with_name' to avoid updating shared UnitTestSpecs.
-  specs = [
-      spec.with_name(f"{function}__{spec.unit_test_name}") for spec in specs
-  ]
-  FUNCTIONS_TO_UNIT_TEST_SPECS[function] = specs
-
-  # Validate that there are not multiple UnitTestSpecs with the same name.
-  seen_unit_test_names = set()
-  for spec in specs:
-    if spec.unit_test_name in seen_unit_test_names:
-      raise ValueError(
-          f"Found multiple UnitTestSpecs with the name '{spec.unit_test_name}'")
-    seen_unit_test_names.add(spec.unit_test_name)
-
-flags.DEFINE_list(
-    "functions", None,
-    f"Any of {list(FUNCTIONS_TO_UNIT_TEST_SPECS.keys())}. If more than one "
-    "function is provided then len(--target_backends) must be one.")
-flags.DEFINE_bool(
-    "dynamic_dims", False,
-    "Whether or not to compile the layer with dynamic dimensions.")
-flags.DEFINE_bool(
-    "test_complex", False,
-    "Whether or not to test or ignore function signatures with complex types.")
-flags.DEFINE_bool(
-    'list_functions_with_complex_tests', False,
-    'Whether or not to print out all functions with complex inputs '
-    '(and skip running the tests).')
-
-
-def _wrap_top_k(top_k):
-  # top_k returns a tensorflow.python.ops.gen_nn_ops.TopKV2. Wrap it in a tuple
-  # so we don't have to. (The lambda is wrapped to avoid a recursive capture).
-  return lambda *args, **kwargs: tuple(top_k(*args, **kwargs))
-
-
-def create_function_unit_test(
-    function_name: str,
-    unit_test_spec: tf_test_utils.UnitTestSpec) -> tf.function:
-  """Creates a tf_function_unit_test from the provided UnitTestSpec."""
-  function = getattr(tf.math, function_name)
-  signature = unit_test_spec.input_signature
-
-  if tf_utils.is_complex(signature):
-    function, signature = tf_utils.rewrite_complex_signature(
-        function, signature)
-  if function_name == "top_k":
-    function = _wrap_top_k(function)
-  wrapped_function = lambda *args: function(*args, **unit_test_spec.kwargs)
-
-  if FLAGS.dynamic_dims:
-    signature = tf_utils.apply_function(signature, tf_utils.make_dims_dynamic)
-
-  return tf_test_utils.tf_function_unit_test(
-      input_signature=signature,
-      input_generator=unit_test_spec.input_generator,
-      input_args=unit_test_spec.input_args,
-      name=unit_test_spec.unit_test_name,
-      rtol=1e-5,
-      atol=1e-5)(wrapped_function)
-
-
-class TfMathModule(tf_test_utils.TestModule):
-
-  def __init__(self):
-    super().__init__()
-    for function in FLAGS.functions:
-      for unit_test_spec in FUNCTIONS_TO_UNIT_TEST_SPECS[function]:
-        if not FLAGS.test_complex and tf_utils.is_complex(
-            unit_test_spec.input_signature):
-          continue
-        function_unit_test = create_function_unit_test(function, unit_test_spec)
-        setattr(self, unit_test_spec.unit_test_name, function_unit_test)
-
-
-def get_relative_artifacts_dir() -> str:
-  if len(FLAGS.functions) > 1:
-    # We only allow testing multiple functions with a single target backend
-    # so that we can store the artifacts under:
-    #   'artifacts_dir/multiple_functions__backend/...'
-    # We specialize the 'multiple_functions' dir by backend to avoid overwriting
-    # tf_input.mlir and iree_input.mlir. These are typically identical across
-    # backends, but are not when the functions to compile change per-backend.
-    if len(FLAGS.target_backends) != 1:
-      raise flags.IllegalFlagValueError(
-          "Expected len(target_backends) == 1 when len(functions) > 1, but got "
-          f"the following values for target_backends: {FLAGS.target_backends}.")
-    function_str = f"multiple_functions__{FLAGS.target_backends[0]}"
-  else:
-    function_str = FLAGS.functions[0]
-  dim_str = "dynamic_dims" if FLAGS.dynamic_dims else "static_dims"
-  complex_str = "complex" if FLAGS.test_complex else "non_complex"
-  return os.path.join("tf", "math", function_str, f"{dim_str}_{complex_str}")
-
-
-class TfMathTest(tf_test_utils.TracedModuleTestCase):
-
-  def __init__(self, *args, **kwargs):
-    super().__init__(*args, **kwargs)
-    self._modules = tf_test_utils.compile_tf_module(
-        TfMathModule,
-        exported_names=TfMathModule.get_tf_function_unit_tests(),
-        relative_artifacts_dir=get_relative_artifacts_dir())
-
-
-def main(argv):
-  del argv  # Unused.
-  if hasattr(tf, "enable_v2_behavior"):
-    tf.enable_v2_behavior()
-
-  if FLAGS.list_functions_with_complex_tests:
-    for function_name, unit_test_specs in FUNCTIONS_TO_UNIT_TEST_SPECS.items():
-      for spec in unit_test_specs:
-        if tf_utils.is_complex(spec.input_signature):
-          print(f'    "{function_name}",')
-    return
-
-  if FLAGS.functions is None:
-    raise flags.IllegalFlagValueError(
-        "'--functions' must be specified if "
-        "'--list_functions_with_complex_tests' isn't")
-
-  TfMathTest.generate_unit_tests(TfMathModule)
-  tf.test.main()
-
-
-if __name__ == "__main__":
-  app.run(main)
diff --git a/integrations/tensorflow/e2e/mobile_bert_squad_test.py b/integrations/tensorflow/e2e/mobile_bert_squad_test.py
deleted file mode 100644
index 99abbbb..0000000
--- a/integrations/tensorflow/e2e/mobile_bert_squad_test.py
+++ /dev/null
@@ -1,80 +0,0 @@
-# Lint as: python3
-# Copyright 2020 The IREE Authors
-#
-# Licensed under the Apache License v2.0 with LLVM Exceptions.
-# See https://llvm.org/LICENSE.txt for license information.
-# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-"""Test MobileBERT.
-
-Model topology and weights are from
-https://github.com/google-research/google-research/tree/master/mobilebert
-"""
-
-import os
-import posixpath
-
-from absl import app
-from absl import flags
-from iree.tf.support import tf_test_utils
-import numpy as np
-import tensorflow.compat.v2 as tf
-
-FLAGS = flags.FLAGS
-
-flags.DEFINE_boolean('use_quantized_weights', False,
-                     'Whether to use quantized or floating point weights.')
-
-MAX_SEQ_LENGTH = 384  # Max input sequence length used in mobilebert_squad.
-
-FILE_NAME = 'mobilebert_squad_savedmodels'
-MODEL_URL = posixpath.join(
-    f'https://storage.googleapis.com/cloud-tpu-checkpoints/mobilebert/{FILE_NAME}.tar.gz'
-)
-
-
-class MobileBertSquadTest(tf_test_utils.TracedModuleTestCase):
-  """Tests of MobileBertSquad."""
-
-  def __init__(self, *args, **kwargs):
-    super().__init__(*args, **kwargs)
-    model_type = 'quant_saved_model' if FLAGS.use_quantized_weights else 'float'
-
-    # Get_file will download the model weights from a publicly available folder,
-    # save them to cache_dir=~/.keras/datasets/ and return a path to them.
-    model_path = tf.keras.utils.get_file(FILE_NAME, MODEL_URL, untar=True)
-    model_dir = os.path.dirname(model_path)
-    extracted_name = FILE_NAME.split('.')[0]
-    model_path = os.path.join(model_dir, extracted_name, model_type)
-
-    self._modules = tf_test_utils.compile_tf_signature_def_saved_model(
-        saved_model_dir=model_path,
-        saved_model_tags=set(['serve']),
-        module_name='MobileBertSquad',
-        exported_name='serving_default',
-        input_names=['input_ids', 'input_mask', 'segment_ids'],
-        output_names=['start_logits', 'end_logits'])
-
-  def test_serving_default(self):
-
-    def serving_default(module):
-      input_ids = np.zeros((1, MAX_SEQ_LENGTH), dtype=np.int32)
-      input_mask = np.zeros((1, MAX_SEQ_LENGTH), dtype=np.int32)
-      segment_ids = np.zeros((1, MAX_SEQ_LENGTH), dtype=np.int32)
-
-      module.serving_default(input_ids=input_ids,
-                             input_mask=input_mask,
-                             segment_ids=segment_ids,
-                             atol=1e0)
-
-    self.compare_backends(serving_default, self._modules)
-
-
-def main(argv):
-  del argv  # Unused
-  if hasattr(tf, 'enable_v2_behavior'):
-    tf.enable_v2_behavior()
-  tf.test.main()
-
-
-if __name__ == '__main__':
-  app.run(main)
diff --git a/integrations/tensorflow/e2e/slim_vision_models/BUILD b/integrations/tensorflow/e2e/slim_vision_models/BUILD
deleted file mode 100644
index 5a7c603..0000000
--- a/integrations/tensorflow/e2e/slim_vision_models/BUILD
+++ /dev/null
@@ -1,152 +0,0 @@
-# Copyright 2019 The IREE Authors
-#
-# Licensed under the Apache License v2.0 with LLVM Exceptions.
-# See https://llvm.org/LICENSE.txt for license information.
-# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-
-# ***THIS FILE DOES NOT BUILD WITH BAZEL***
-#
-# It is open sourced to enable Bazel->CMake conversion to maintain test coverage
-# of our integration tests in open source while we figure out a long term plan
-# for our integration testing.
-
-load(
-    "@iree//integrations/tensorflow/e2e:iree_e2e_cartesian_product_test_suite.bzl",
-    "iree_e2e_cartesian_product_test_suite",
-)
-
-package(
-    default_visibility = ["//visibility:public"],
-    features = ["layering_check"],
-    licenses = ["notice"],  # Apache 2.0
-)
-
-# Create binaries for all test srcs to allow them to be run manually.
-py_binary(
-    name = "slim_vision_model_test_manual",
-    srcs = ["slim_vision_model_test.py"],
-    args = ["--tf_hub_url=https://tfhub.dev/google/imagenet/"],
-    main = "slim_vision_model_test.py",
-    python_version = "PY3",
-    deps = [
-        "//third_party/py/absl:app",
-        "//third_party/py/absl/flags",
-        "//third_party/py/iree:pylib_tf_support",
-        "//third_party/py/numpy",
-        "//third_party/py/tensorflow",
-        "//third_party/py/tensorflow_hub",
-        "//util/debuginfo:signalsafe_addr2line_installer",
-    ],
-)
-
-iree_e2e_cartesian_product_test_suite(
-    name = "slim_vision_tests",
-    size = "enormous",
-    failing_configurations = [
-        {
-            # SavedModelV2 (classification/4) not available.
-            "model": "amoebanet_a_n18_f448",
-        },
-        {
-            # Failing vulkan and llvmaot.
-            "model": [
-                "inception_resnet_v2",
-                "inception_v2",
-                "inception_v3",
-                "nasnet_mobile",
-                "nasnet_large",
-                "resnet_v2_152",
-            ],
-            "target_backends": [
-                "iree_llvmaot",
-                "iree_vulkan",
-            ],
-        },
-    ],
-    matrix = {
-        "src": "slim_vision_model_test.py",
-        "reference_backend": "tf",
-        "tf_hub_url": ["https://tfhub.dev/google/imagenet/"],
-        "model": [
-            "amoebanet_a_n18_f448",
-            "inception_resnet_v2",
-            "inception_v1",
-            "inception_v2",
-            "inception_v3",
-            # MobileNetV1
-            "mobilenet_v1_025_128",
-            "mobilenet_v1_025_160",
-            "mobilenet_v1_025_192",
-            "mobilenet_v1_025_224",
-            "mobilenet_v1_050_128",
-            "mobilenet_v1_050_160",
-            "mobilenet_v1_050_192",
-            "mobilenet_v1_050_224",
-            "mobilenet_v1_075_128",
-            "mobilenet_v1_075_160",
-            "mobilenet_v1_075_192",
-            "mobilenet_v1_075_224",
-            "mobilenet_v1_100_128",
-            "mobilenet_v1_100_160",
-            "mobilenet_v1_100_192",
-            "mobilenet_v1_100_224",
-            # MobileNetV2:
-            "mobilenet_v2_035_96",
-            "mobilenet_v2_035_128",
-            "mobilenet_v2_035_160",
-            "mobilenet_v2_035_192",
-            "mobilenet_v2_035_224",
-            "mobilenet_v2_050_96",
-            "mobilenet_v2_050_128",
-            "mobilenet_v2_050_160",
-            "mobilenet_v2_050_192",
-            "mobilenet_v2_050_224",
-            "mobilenet_v2_075_96",
-            "mobilenet_v2_075_128",
-            "mobilenet_v2_075_160",
-            "mobilenet_v2_075_192",
-            "mobilenet_v2_075_224",
-            "mobilenet_v2_100_96",
-            "mobilenet_v2_100_128",
-            "mobilenet_v2_100_160",
-            "mobilenet_v2_100_192",
-            "mobilenet_v2_100_224",
-            "mobilenet_v2_130_224",
-            "mobilenet_v2_140_224",
-            # MobileNetV3
-            "mobilenet_v3_large_100_224",
-            "nasnet_mobile",
-            "nasnet_large",
-            "pnasnet_large",
-            # ResNetV1
-            "resnet_v1_50",
-            "resnet_v1_101",
-            "resnet_v1_152",
-            # ResNetV2
-            "resnet_v2_50",
-            "resnet_v2_101",
-            "resnet_v2_152",
-        ],
-        "target_backends": [
-            "iree_llvmaot",
-            "iree_vulkan",
-        ],
-    },
-    tags = [
-        "external",
-        "guitar",
-        "manual",
-        "no-remote",
-        "nokokoro",
-        "notap",
-    ],
-    deps = [
-        "//third_party/py/absl:app",
-        "//third_party/py/absl/flags",
-        "//third_party/py/iree:pylib_tf_support",
-        "//third_party/py/numpy",
-        "//third_party/py/tensorflow",
-        "//third_party/py/tensorflow_hub",
-        "//util/debuginfo:signalsafe_addr2line_installer",
-    ],
-)
diff --git a/integrations/tensorflow/e2e/slim_vision_models/CMakeLists.txt b/integrations/tensorflow/e2e/slim_vision_models/CMakeLists.txt
deleted file mode 100644
index cacdb27..0000000
--- a/integrations/tensorflow/e2e/slim_vision_models/CMakeLists.txt
+++ /dev/null
@@ -1,51 +0,0 @@
-################################################################################
-# Autogenerated by build_tools/bazel_to_cmake/bazel_to_cmake.py from           #
-# integrations/tensorflow/e2e/slim_vision_models/BUILD                         #
-#                                                                              #
-# 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_e2e_cartesian_product_test_suite(
-  NAME
-    slim_vision_tests
-  MATRIX_KEYS
-    "src"
-    "reference_backend"
-    "tf_hub_url"
-    "model"
-    "target_backends"
-  MATRIX_VALUES
-    "slim_vision_model_test.py"
-    "tf"
-    "https://tfhub.dev/google/imagenet/"
-    "amoebanet_a_n18_f448;inception_resnet_v2;inception_v1;inception_v2;inception_v3;mobilenet_v1_025_128;mobilenet_v1_025_160;mobilenet_v1_025_192;mobilenet_v1_025_224;mobilenet_v1_050_128;mobilenet_v1_050_160;mobilenet_v1_050_192;mobilenet_v1_050_224;mobilenet_v1_075_128;mobilenet_v1_075_160;mobilenet_v1_075_192;mobilenet_v1_075_224;mobilenet_v1_100_128;mobilenet_v1_100_160;mobilenet_v1_100_192;mobilenet_v1_100_224;mobilenet_v2_035_96;mobilenet_v2_035_128;mobilenet_v2_035_160;mobilenet_v2_035_192;mobilenet_v2_035_224;mobilenet_v2_050_96;mobilenet_v2_050_128;mobilenet_v2_050_160;mobilenet_v2_050_192;mobilenet_v2_050_224;mobilenet_v2_075_96;mobilenet_v2_075_128;mobilenet_v2_075_160;mobilenet_v2_075_192;mobilenet_v2_075_224;mobilenet_v2_100_96;mobilenet_v2_100_128;mobilenet_v2_100_160;mobilenet_v2_100_192;mobilenet_v2_100_224;mobilenet_v2_130_224;mobilenet_v2_140_224;mobilenet_v3_large_100_224;nasnet_mobile;nasnet_large;pnasnet_large;resnet_v1_50;resnet_v1_101;resnet_v1_152;resnet_v2_50;resnet_v2_101;resnet_v2_152"
-    "iree_llvmaot;iree_vulkan"
-  FAILING_CONFIGURATIONS
-    ",,,amoebanet_a_n18_f448,"
-    ",,,inception_resnet_v2,iree_llvmaot"
-    ",,,inception_resnet_v2,iree_vulkan"
-    ",,,inception_v2,iree_llvmaot"
-    ",,,inception_v2,iree_vulkan"
-    ",,,inception_v3,iree_llvmaot"
-    ",,,inception_v3,iree_vulkan"
-    ",,,nasnet_mobile,iree_llvmaot"
-    ",,,nasnet_mobile,iree_vulkan"
-    ",,,nasnet_large,iree_llvmaot"
-    ",,,nasnet_large,iree_vulkan"
-    ",,,resnet_v2_152,iree_llvmaot"
-    ",,,resnet_v2_152,iree_vulkan"
-  LABELS
-    "external"
-    "guitar"
-    "manual"
-    "no-remote"
-    "nokokoro"
-    "notap"
-)
-
-### BAZEL_TO_CMAKE_PRESERVES_ALL_CONTENT_BELOW_THIS_LINE ###
diff --git a/integrations/tensorflow/e2e/slim_vision_models/README.md b/integrations/tensorflow/e2e/slim_vision_models/README.md
deleted file mode 100644
index 8a09a14..0000000
--- a/integrations/tensorflow/e2e/slim_vision_models/README.md
+++ /dev/null
@@ -1,10 +0,0 @@
-# Slim Vision Model Tests
-
-These tests require an additional python dependency on `tensorflow_hub`, which
-can be installed as follows:
-
-```shell
-python3 -m pip install tensorflow_hub
-```
-
-These tests are not checked by the OSS CI.
diff --git a/integrations/tensorflow/e2e/slim_vision_models/slim_vision_model_test.py b/integrations/tensorflow/e2e/slim_vision_models/slim_vision_model_test.py
deleted file mode 100644
index 1304f09..0000000
--- a/integrations/tensorflow/e2e/slim_vision_models/slim_vision_model_test.py
+++ /dev/null
@@ -1,104 +0,0 @@
-# Lint as: python3
-# Copyright 2020 The IREE Authors
-#
-# Licensed under the Apache License v2.0 with LLVM Exceptions.
-# See https://llvm.org/LICENSE.txt for license information.
-# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-"""Test all vision models from slim lib."""
-
-import posixpath
-
-from absl import app
-from absl import flags
-from iree.tf.support import tf_test_utils
-from iree.tf.support import tf_utils
-import numpy as np
-import tensorflow as tf
-import tensorflow_hub as hub
-
-FLAGS = flags.FLAGS
-
-# Testing vision models from
-# https://github.com/tensorflow/models/tree/master/research/slim
-# slim models were designed with tf v1 and then coverted to SavedModel
-# they are stored at tensorflow_hub.
-flags.DEFINE_string(
-    'model', 'mobilenet_v1_100_224', 'example model names: '
-    '[resnet_v1_50, resnet_v1_101, resnet_v2_50, resnet_v2_101, '
-    'mobilenet_v1_100_224, mobilenet_v1_025_224, mobilenet_v2_100_224, '
-    'mobilenet_v2_035_224]\nAt least a subset can be viewed here:\n'
-    'https://tfhub.dev/s?dataset=imagenet&module-type=image-classification,image-classifier'
-)
-flags.DEFINE_string(
-    'tf_hub_url', None, 'Base URL for the models to test. URL at the time of '
-    'writing:\nhttps://tfhub.dev/google/imagenet/')
-
-LARGE_MODELS = ['amoebanet_a_n18_f448', "nasnet_large", "pnasnet_large"]
-
-
-def get_input_shape():
-  if FLAGS.model in LARGE_MODELS:
-    return (1, 331, 331, 3)
-  elif FLAGS.model.startswith('mobilenet_v2'):
-    # The MobileNetV2 models have variable size that seems to be only inferrible
-    # from their TFHub name.
-    size = int(FLAGS.model.split('_')[-1])
-    return (1, size, size, 3)
-  elif FLAGS.model.startswith('mobilenet_v3_large'):
-    size = int(FLAGS.model.split('_')[-1])
-    return (1, size, size, 3)
-  else:
-    # Default input shape.
-    return (1, 224, 224, 3)
-
-
-def get_mode(model_name):
-  if model_name.startswith('mobilenet_v3'):
-    return 'classification/5'
-  # Classification mode; 4 - is a format of the model (SavedModel TF v2).
-  return 'classification/4'
-
-
-class SlimVisionModule(tf.Module):
-
-  def __init__(self):
-    super().__init__()
-    tf_utils.set_random_seed()
-    model_path = posixpath.join(FLAGS.tf_hub_url, FLAGS.model,
-                                get_mode(FLAGS.model))
-    hub_layer = hub.KerasLayer(model_path)
-    self.m = tf.keras.Sequential([hub_layer])
-    input_shape = get_input_shape()
-    self.m.build(input_shape)
-    self.predict = tf.function(input_signature=[tf.TensorSpec(input_shape)])(
-        self.m.call)
-
-
-class SlimVisionTest(tf_test_utils.TracedModuleTestCase):
-
-  def __init__(self, *args, **kwargs):
-    super().__init__(*args, **kwargs)
-    self._modules = tf_test_utils.compile_tf_module(
-        SlimVisionModule,
-        exported_names=['predict'],
-        relative_artifacts_dir=FLAGS.model)
-
-  def test_predict(self):
-
-    def predict(module):
-      input_data = np.random.rand(*get_input_shape()).astype(np.float32)
-      # Only TF vs. TF passes at the default atol.
-      module.predict(input_data, atol=5e-5)
-
-    self.compare_backends(predict, self._modules)
-
-
-def main(argv):
-  del argv  # Unused.
-  if hasattr(tf, 'enable_v2_behavior'):
-    tf.enable_v2_behavior()
-  tf.test.main()
-
-
-if __name__ == '__main__':
-  app.run(main)
diff --git a/integrations/tensorflow/iree_tf_compiler/CMakeLists.txt b/integrations/tensorflow/iree_tf_compiler/CMakeLists.txt
deleted file mode 100644
index 0e3e42b..0000000
--- a/integrations/tensorflow/iree_tf_compiler/CMakeLists.txt
+++ /dev/null
@@ -1,40 +0,0 @@
-# Copyright 2020 The IREE Authors
-#
-# Licensed under the Apache License v2.0 with LLVM Exceptions.
-# See https://llvm.org/LICENSE.txt for license information.
-# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-
-set(IREE_TF_TOOLS_ROOT
-    "${CMAKE_SOURCE_DIR}/integrations/tensorflow/bazel-bin/iree_tf_compiler"
-    CACHE STRING "Root directory for IREE TensorFlow integration binaries")
-
-iree_package_name(_PACKAGE_NAME)
-iree_package_ns(_PACKAGE_NS)
-
-function(configure_tf_binary BINARY_NAME)
-  set(_NAME "${_PACKAGE_NAME}_${BINARY_NAME}")
-  add_executable("${_NAME}" IMPORTED GLOBAL)
-  set_property(TARGET ${_NAME}
-    PROPERTY IMPORTED_LOCATION
-        "${IREE_TF_TOOLS_ROOT}/${BINARY_NAME}"
-  )
-  add_executable(${_PACKAGE_NS}::${BINARY_NAME} ALIAS ${_NAME})
-  add_executable(${BINARY_NAME} ALIAS ${_NAME})
-endfunction()
-
-if(${IREE_BUILD_TENSORFLOW_COMPILER})
-  configure_tf_binary("iree-import-tf")
-endif()
-
-if(${IREE_BUILD_TFLITE_COMPILER})
-  configure_tf_binary("iree-import-tflite")
-endif()
-
-if(${IREE_BUILD_XLA_COMPILER})
-  configure_tf_binary("iree-import-xla")
-endif()
-
-if(${IREE_BUILD_TESTS})
-  configure_tf_binary("iree-tf-opt")
-  configure_tf_binary("iree-opt-tflite")
-endif()
diff --git a/integrations/tensorflow/python_projects/.style.yapf b/integrations/tensorflow/python_projects/.style.yapf
new file mode 100644
index 0000000..9ef1dc1
--- /dev/null
+++ b/integrations/tensorflow/python_projects/.style.yapf
@@ -0,0 +1,4 @@
+[style]
+  based_on_style = google
+  column_limit = 80
+  indent_width = 2
diff --git a/integrations/tensorflow/bindings/python/iree/tf/support/__init__.py b/integrations/tensorflow/python_projects/iree_tf/iree/tf/support/__init__.py
similarity index 100%
rename from integrations/tensorflow/bindings/python/iree/tf/support/__init__.py
rename to integrations/tensorflow/python_projects/iree_tf/iree/tf/support/__init__.py
diff --git a/integrations/tensorflow/bindings/python/iree/tf/support/module_utils.py b/integrations/tensorflow/python_projects/iree_tf/iree/tf/support/module_utils.py
similarity index 100%
rename from integrations/tensorflow/bindings/python/iree/tf/support/module_utils.py
rename to integrations/tensorflow/python_projects/iree_tf/iree/tf/support/module_utils.py
diff --git a/integrations/tensorflow/bindings/python/iree/tf/support/module_utils_test.py b/integrations/tensorflow/python_projects/iree_tf/iree/tf/support/module_utils_test.py
similarity index 100%
rename from integrations/tensorflow/bindings/python/iree/tf/support/module_utils_test.py
rename to integrations/tensorflow/python_projects/iree_tf/iree/tf/support/module_utils_test.py
diff --git a/integrations/tensorflow/bindings/python/iree/tf/support/tf_test_utils.py b/integrations/tensorflow/python_projects/iree_tf/iree/tf/support/tf_test_utils.py
similarity index 100%
rename from integrations/tensorflow/bindings/python/iree/tf/support/tf_test_utils.py
rename to integrations/tensorflow/python_projects/iree_tf/iree/tf/support/tf_test_utils.py
diff --git a/integrations/tensorflow/bindings/python/iree/tf/support/tf_test_utils_test.py b/integrations/tensorflow/python_projects/iree_tf/iree/tf/support/tf_test_utils_test.py
similarity index 100%
rename from integrations/tensorflow/bindings/python/iree/tf/support/tf_test_utils_test.py
rename to integrations/tensorflow/python_projects/iree_tf/iree/tf/support/tf_test_utils_test.py
diff --git a/integrations/tensorflow/bindings/python/iree/tf/support/tf_utils.py b/integrations/tensorflow/python_projects/iree_tf/iree/tf/support/tf_utils.py
similarity index 100%
rename from integrations/tensorflow/bindings/python/iree/tf/support/tf_utils.py
rename to integrations/tensorflow/python_projects/iree_tf/iree/tf/support/tf_utils.py
diff --git a/integrations/tensorflow/bindings/python/iree/tf/support/tf_utils_test.py b/integrations/tensorflow/python_projects/iree_tf/iree/tf/support/tf_utils_test.py
similarity index 100%
rename from integrations/tensorflow/bindings/python/iree/tf/support/tf_utils_test.py
rename to integrations/tensorflow/python_projects/iree_tf/iree/tf/support/tf_utils_test.py
diff --git a/integrations/tensorflow/bindings/python/iree/tf/support/trace_utils.py b/integrations/tensorflow/python_projects/iree_tf/iree/tf/support/trace_utils.py
similarity index 100%
rename from integrations/tensorflow/bindings/python/iree/tf/support/trace_utils.py
rename to integrations/tensorflow/python_projects/iree_tf/iree/tf/support/trace_utils.py
diff --git a/integrations/tensorflow/bindings/python/iree/tf/support/trace_utils_test.py b/integrations/tensorflow/python_projects/iree_tf/iree/tf/support/trace_utils_test.py
similarity index 100%
rename from integrations/tensorflow/bindings/python/iree/tf/support/trace_utils_test.py
rename to integrations/tensorflow/python_projects/iree_tf/iree/tf/support/trace_utils_test.py
diff --git a/integrations/tensorflow/python_projects/iree_tf/iree/tools/tf/.gitignore b/integrations/tensorflow/python_projects/iree_tf/iree/tools/tf/.gitignore
new file mode 100644
index 0000000..c39b810
--- /dev/null
+++ b/integrations/tensorflow/python_projects/iree_tf/iree/tools/tf/.gitignore
@@ -0,0 +1 @@
+iree-import-tf
diff --git a/integrations/tensorflow/bindings/python/iree/tools/tf/__init__.py b/integrations/tensorflow/python_projects/iree_tf/iree/tools/tf/__init__.py
similarity index 100%
rename from integrations/tensorflow/bindings/python/iree/tools/tf/__init__.py
rename to integrations/tensorflow/python_projects/iree_tf/iree/tools/tf/__init__.py
diff --git a/integrations/tensorflow/bindings/python/iree/tools/tf/scripts/iree_import_tf/__main__.py b/integrations/tensorflow/python_projects/iree_tf/iree/tools/tf/scripts/iree_import_tf/__main__.py
similarity index 100%
rename from integrations/tensorflow/bindings/python/iree/tools/tf/scripts/iree_import_tf/__main__.py
rename to integrations/tensorflow/python_projects/iree_tf/iree/tools/tf/scripts/iree_import_tf/__main__.py
diff --git a/integrations/tensorflow/python_projects/iree_tf/pyproject.toml b/integrations/tensorflow/python_projects/iree_tf/pyproject.toml
new file mode 100644
index 0000000..f6c1689
--- /dev/null
+++ b/integrations/tensorflow/python_projects/iree_tf/pyproject.toml
@@ -0,0 +1,6 @@
+[build-system]
+requires = [
+    "setuptools>=42",
+    "wheel",
+]
+build-backend = "setuptools.build_meta"
diff --git a/integrations/tensorflow/python_projects/iree_tf/setup.py b/integrations/tensorflow/python_projects/iree_tf/setup.py
new file mode 100644
index 0000000..7a1f817
--- /dev/null
+++ b/integrations/tensorflow/python_projects/iree_tf/setup.py
@@ -0,0 +1,97 @@
+#!/usr/bin/python3
+
+# Copyright 2020 The IREE Authors
+#
+# Licensed under the Apache License v2.0 with LLVM Exceptions.
+# See https://llvm.org/LICENSE.txt for license information.
+# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+
+# Build platform specific wheel files for the iree.runtime package.
+# Built artifacts are per-platform and build out of the build tree.
+
+from distutils.command.install import install
+import os
+import platform
+from setuptools import setup, find_namespace_packages
+
+README = r'''
+TensorFlow TF Compiler Tools
+'''
+
+exe_suffix = ".exe" if platform.system() == "Windows" else ""
+import_tf_path = os.path.join(os.path.dirname(__file__), "iree", "tools", "tf",
+                              f"iree-import-tf{exe_suffix}")
+if not os.access(import_tf_path, os.X_OK):
+  raise RuntimeError(
+      f"Tool not found ({import_tf_path}). Be sure to build "
+      f"//iree_tf_compiler:iree-import-tf and run ./symlink_binaries.sh")
+
+# Force platform specific wheel.
+# https://stackoverflow.com/questions/45150304
+try:
+  from wheel.bdist_wheel import bdist_wheel as _bdist_wheel
+
+  class bdist_wheel(_bdist_wheel):
+
+    def finalize_options(self):
+      _bdist_wheel.finalize_options(self)
+      self.root_is_pure = False
+
+    def get_tag(self):
+      python, abi, plat = _bdist_wheel.get_tag(self)
+      # We don't contain any python extensions so are version agnostic
+      # but still want to be platform specific.
+      python, abi = 'py3', 'none'
+      return python, abi, plat
+
+except ImportError:
+  bdist_wheel = None
+
+
+# Force installation into platlib.
+# Since this is a pure-python library with platform binaries, it is
+# mis-detected as "pure", which fails audit. Usually, the presence of an
+# extension triggers non-pure install. We force it here.
+class platlib_install(install):
+
+  def finalize_options(self):
+    install.finalize_options(self)
+    self.install_lib = self.install_platlib
+
+
+setup(
+    name="iree-tools-tf",
+    version="0.1",
+    author="The IREE Team",
+    author_email="iree-discuss@googlegroups.com",
+    license="Apache",
+    description="IREE TensorFlow Compiler Tools",
+    long_description=README,
+    long_description_content_type="text/markdown",
+    url="https://github.com/google/iree",
+    classifiers=[
+        "Programming Language :: Python :: 3",
+        "License :: OSI Approved :: Apache License",
+        "Operating System :: OS Independent",
+        "Development Status :: 3 - Alpha",
+    ],
+    python_requires=">=3.7",
+    packages=find_namespace_packages(include=[
+        "iree.tools.tf",
+        "iree.tools.tf.*",
+        "iree.tf.support",
+    ]),
+    package_data={
+        "iree.tools.tf": [f"iree-import-tf{exe_suffix}",],
+    },
+    cmdclass={
+        'bdist_wheel': bdist_wheel,
+        'install': platlib_install,
+    },
+    entry_points={
+        "console_scripts": [
+            "iree-import-tf = iree.tools.tf.scripts.iree_import_tf.__main__:main",
+        ],
+    },
+    zip_safe=False,  # This package is fine but not zipping is more versatile.
+)
diff --git a/integrations/tensorflow/python_projects/iree_tflite/iree/tools/tflite/.gitignore b/integrations/tensorflow/python_projects/iree_tflite/iree/tools/tflite/.gitignore
new file mode 100644
index 0000000..a13df23
--- /dev/null
+++ b/integrations/tensorflow/python_projects/iree_tflite/iree/tools/tflite/.gitignore
@@ -0,0 +1 @@
+iree-import-tflite
diff --git a/integrations/tensorflow/bindings/python/iree/tools/tflite/__init__.py b/integrations/tensorflow/python_projects/iree_tflite/iree/tools/tflite/__init__.py
similarity index 100%
rename from integrations/tensorflow/bindings/python/iree/tools/tflite/__init__.py
rename to integrations/tensorflow/python_projects/iree_tflite/iree/tools/tflite/__init__.py
diff --git a/integrations/tensorflow/bindings/python/iree/tools/tflite/scripts/iree_import_tflite/__main__.py b/integrations/tensorflow/python_projects/iree_tflite/iree/tools/tflite/scripts/iree_import_tflite/__main__.py
similarity index 100%
rename from integrations/tensorflow/bindings/python/iree/tools/tflite/scripts/iree_import_tflite/__main__.py
rename to integrations/tensorflow/python_projects/iree_tflite/iree/tools/tflite/scripts/iree_import_tflite/__main__.py
diff --git a/integrations/tensorflow/python_projects/iree_tflite/pyproject.toml b/integrations/tensorflow/python_projects/iree_tflite/pyproject.toml
new file mode 100644
index 0000000..f6c1689
--- /dev/null
+++ b/integrations/tensorflow/python_projects/iree_tflite/pyproject.toml
@@ -0,0 +1,6 @@
+[build-system]
+requires = [
+    "setuptools>=42",
+    "wheel",
+]
+build-backend = "setuptools.build_meta"
diff --git a/integrations/tensorflow/python_projects/iree_tflite/setup.py b/integrations/tensorflow/python_projects/iree_tflite/setup.py
new file mode 100644
index 0000000..7e729b9
--- /dev/null
+++ b/integrations/tensorflow/python_projects/iree_tflite/setup.py
@@ -0,0 +1,96 @@
+#!/usr/bin/python3
+
+# Copyright 2020 The IREE Authors
+#
+# Licensed under the Apache License v2.0 with LLVM Exceptions.
+# See https://llvm.org/LICENSE.txt for license information.
+# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+
+# Build platform specific wheel files for the iree.runtime package.
+# Built artifacts are per-platform and build out of the build tree.
+
+from distutils.command.install import install
+import os
+import platform
+from setuptools import setup, find_namespace_packages
+
+README = r'''
+TensorFlow TFLite Compiler Tools
+'''
+
+exe_suffix = ".exe" if platform.system() == "Windows" else ""
+import_tflite_path = os.path.join(os.path.dirname(__file__), "iree", "tools",
+                                  "tflite", f"iree-import-tflite{exe_suffix}")
+if not os.access(import_tflite_path, os.X_OK):
+  raise RuntimeError(
+      f"Tool not found ({import_tflite_path}). Be sure to build "
+      f"//iree_tf_compiler:iree-import-tflite and run ./symlink_binaries.sh")
+
+# Force platform specific wheel.
+# https://stackoverflow.com/questions/45150304
+try:
+  from wheel.bdist_wheel import bdist_wheel as _bdist_wheel
+
+  class bdist_wheel(_bdist_wheel):
+
+    def finalize_options(self):
+      _bdist_wheel.finalize_options(self)
+      self.root_is_pure = False
+
+    def get_tag(self):
+      python, abi, plat = _bdist_wheel.get_tag(self)
+      # We don't contain any python extensions so are version agnostic
+      # but still want to be platform specific.
+      python, abi = 'py3', 'none'
+      return python, abi, plat
+
+except ImportError:
+  bdist_wheel = None
+
+
+# Force installation into platlib.
+# Since this is a pure-python library with platform binaries, it is
+# mis-detected as "pure", which fails audit. Usually, the presence of an
+# extension triggers non-pure install. We force it here.
+class platlib_install(install):
+
+  def finalize_options(self):
+    install.finalize_options(self)
+    self.install_lib = self.install_platlib
+
+
+setup(
+    name="iree-tools-tflite",
+    version="0.1",
+    author="The IREE Team",
+    author_email="iree-discuss@googlegroups.com",
+    license="Apache",
+    description="IREE TFLite Compiler Tools",
+    long_description=README,
+    long_description_content_type="text/markdown",
+    url="https://github.com/google/iree",
+    classifiers=[
+        "Programming Language :: Python :: 3",
+        "License :: OSI Approved :: Apache License",
+        "Operating System :: OS Independent",
+        "Development Status :: 3 - Alpha",
+    ],
+    python_requires=">=3.7",
+    packages=find_namespace_packages(include=[
+        "iree.tools.tflite",
+        "iree.tools.tflite.*",
+    ]),
+    package_data={
+        "iree.tools.tflite": [f"iree-import-tflite{exe_suffix}",],
+    },
+    cmdclass={
+        'bdist_wheel': bdist_wheel,
+        'install': platlib_install,
+    },
+    entry_points={
+        "console_scripts": [
+            "iree-import-tflite = iree.tools.tflite.scripts.iree_import_tflite.__main__:main",
+        ],
+    },
+    zip_safe=False,  # This package is fine but not zipping is more versatile.
+)
diff --git a/integrations/tensorflow/python_projects/iree_xla/iree/tools/xla/.gitignore b/integrations/tensorflow/python_projects/iree_xla/iree/tools/xla/.gitignore
new file mode 100644
index 0000000..1dc5dca
--- /dev/null
+++ b/integrations/tensorflow/python_projects/iree_xla/iree/tools/xla/.gitignore
@@ -0,0 +1 @@
+iree-import-xla
diff --git a/integrations/tensorflow/bindings/python/iree/tools/xla/__init__.py b/integrations/tensorflow/python_projects/iree_xla/iree/tools/xla/__init__.py
similarity index 100%
rename from integrations/tensorflow/bindings/python/iree/tools/xla/__init__.py
rename to integrations/tensorflow/python_projects/iree_xla/iree/tools/xla/__init__.py
diff --git a/integrations/tensorflow/bindings/python/iree/tools/xla/scripts/iree_import_xla/__main__.py b/integrations/tensorflow/python_projects/iree_xla/iree/tools/xla/scripts/iree_import_xla/__main__.py
similarity index 100%
rename from integrations/tensorflow/bindings/python/iree/tools/xla/scripts/iree_import_xla/__main__.py
rename to integrations/tensorflow/python_projects/iree_xla/iree/tools/xla/scripts/iree_import_xla/__main__.py
diff --git a/integrations/tensorflow/python_projects/iree_xla/pyproject.toml b/integrations/tensorflow/python_projects/iree_xla/pyproject.toml
new file mode 100644
index 0000000..f6c1689
--- /dev/null
+++ b/integrations/tensorflow/python_projects/iree_xla/pyproject.toml
@@ -0,0 +1,6 @@
+[build-system]
+requires = [
+    "setuptools>=42",
+    "wheel",
+]
+build-backend = "setuptools.build_meta"
diff --git a/integrations/tensorflow/python_projects/iree_xla/setup.py b/integrations/tensorflow/python_projects/iree_xla/setup.py
new file mode 100644
index 0000000..0409ac7
--- /dev/null
+++ b/integrations/tensorflow/python_projects/iree_xla/setup.py
@@ -0,0 +1,96 @@
+#!/usr/bin/python3
+
+# Copyright 2020 The IREE Authors
+#
+# Licensed under the Apache License v2.0 with LLVM Exceptions.
+# See https://llvm.org/LICENSE.txt for license information.
+# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+
+# Build platform specific wheel files for the iree.runtime package.
+# Built artifacts are per-platform and build out of the build tree.
+
+from distutils.command.install import install
+import os
+import platform
+from setuptools import setup, find_namespace_packages
+
+README = r'''
+TensorFlow XLA Compiler Tools
+'''
+
+exe_suffix = ".exe" if platform.system() == "Windows" else ""
+import_xla_path = os.path.join(os.path.dirname(__file__), "iree", "tools",
+                               "xla", f"iree-import-xla{exe_suffix}")
+if not os.access(import_xla_path, os.X_OK):
+  raise RuntimeError(
+      f"Tool not found ({import_xla_path}). Be sure to build "
+      f"//iree_tf_compiler:iree-import-xla and run ./symlink_binaries.sh")
+
+# Force platform specific wheel.
+# https://stackoverflow.com/questions/45150304
+try:
+  from wheel.bdist_wheel import bdist_wheel as _bdist_wheel
+
+  class bdist_wheel(_bdist_wheel):
+
+    def finalize_options(self):
+      _bdist_wheel.finalize_options(self)
+      self.root_is_pure = False
+
+    def get_tag(self):
+      python, abi, plat = _bdist_wheel.get_tag(self)
+      # We don't contain any python extensions so are version agnostic
+      # but still want to be platform specific.
+      python, abi = 'py3', 'none'
+      return python, abi, plat
+
+except ImportError:
+  bdist_wheel = None
+
+
+# Force installation into platlib.
+# Since this is a pure-python library with platform binaries, it is
+# mis-detected as "pure", which fails audit. Usually, the presence of an
+# extension triggers non-pure install. We force it here.
+class platlib_install(install):
+
+  def finalize_options(self):
+    install.finalize_options(self)
+    self.install_lib = self.install_platlib
+
+
+setup(
+    name="iree-tools-xla",
+    version="0.1",
+    author="The IREE Team",
+    author_email="iree-discuss@googlegroups.com",
+    license="Apache",
+    description="IREE XLA Compiler Tools",
+    long_description=README,
+    long_description_content_type="text/markdown",
+    url="https://github.com/google/iree",
+    classifiers=[
+        "Programming Language :: Python :: 3",
+        "License :: OSI Approved :: Apache License",
+        "Operating System :: OS Independent",
+        "Development Status :: 3 - Alpha",
+    ],
+    python_requires=">=3.7",
+    packages=find_namespace_packages(include=[
+        "iree.tools.xla",
+        "iree.tools.xla.*",
+    ]),
+    package_data={
+        "iree.tools.xla": [f"iree-import-xla{exe_suffix}",],
+    },
+    cmdclass={
+        'bdist_wheel': bdist_wheel,
+        'install': platlib_install,
+    },
+    entry_points={
+        "console_scripts": [
+            "iree-import-xla = iree.tools.xla.scripts.iree_import_xla.__main__:main",
+        ],
+    },
+    zip_safe=False,  # This package is fine but not zipping is more versatile.
+)
diff --git a/integrations/tensorflow/symlink_binaries.sh b/integrations/tensorflow/symlink_binaries.sh
new file mode 100755
index 0000000..730bd50
--- /dev/null
+++ b/integrations/tensorflow/symlink_binaries.sh
@@ -0,0 +1,21 @@
+# Copyright 2021 The IREE Authors
+#
+# Licensed under the Apache License v2.0 with LLVM Exceptions.
+# See https://llvm.org/LICENSE.txt for license information.
+# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+
+# Symlinks built binaries from the bazel-bin/ directory into the corresponding
+# python packages.
+
+set -e
+
+cd "$(dirname $0)"
+if [ -f bazel-bin/iree_tf_compiler/iree-import-tf ]; then
+  ln -sf $PWD/bazel-bin/iree_tf_compiler/iree-import-tf python_projects/iree_tf/iree/tools/tf/
+fi
+if [ -f bazel-bin/iree_tf_compiler/iree-import-tflite ]; then
+  ln -sf $PWD/bazel-bin/iree_tf_compiler/iree-import-tflite python_projects/iree_tflite/iree/tools/tflite/
+fi
+if [ -f bazel-bin/iree_tf_compiler/iree-import-xla ]; then
+  ln -sf $PWD/bazel-bin/iree_tf_compiler/iree-import-xla python_projects/iree_xla/iree/tools/xla/
+fi
diff --git a/integrations/tensorflow/test/.gitignore b/integrations/tensorflow/test/.gitignore
new file mode 100644
index 0000000..79a8994
--- /dev/null
+++ b/integrations/tensorflow/test/.gitignore
@@ -0,0 +1,2 @@
+.lit_test_times.txt
+Output
diff --git a/integrations/tensorflow/test/CMakeLists.txt b/integrations/tensorflow/test/CMakeLists.txt
deleted file mode 100644
index 17b84f6..0000000
--- a/integrations/tensorflow/test/CMakeLists.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-# Copyright 2021 The IREE Authors
-#
-# Licensed under the Apache License v2.0 with LLVM Exceptions.
-# See https://llvm.org/LICENSE.txt for license information.
-# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-
-
-if(${IREE_ENABLE_NEW_INTEGRATION_TESTS})
-  add_subdirectory(tf_integration)
-endif()
-
-if(${IREE_ENABLE_TFLITE_INTEGRATION_TESTS})
-  add_subdirectory(tflite_integration)
-endif()
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Activation.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Activation.run
new file mode 100644
index 0000000..3175044
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Activation.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=Activation -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__ActivityRegularization.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__ActivityRegularization.run
new file mode 100644
index 0000000..23c0402
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__ActivityRegularization.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=ActivityRegularization -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Add.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Add.run
new file mode 100644
index 0000000..335066e
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Add.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=Add -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__AdditiveAttention.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__AdditiveAttention.run
new file mode 100644
index 0000000..a7ee25b
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__AdditiveAttention.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=AdditiveAttention -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__AlphaDropout.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__AlphaDropout.run
new file mode 100644
index 0000000..3c3c698
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__AlphaDropout.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=AlphaDropout -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Attention.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Attention.run
new file mode 100644
index 0000000..9cebe0b
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Attention.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=Attention -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Average.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Average.run
new file mode 100644
index 0000000..b2f94cc
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Average.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=Average -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__AveragePooling1D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__AveragePooling1D.run
new file mode 100644
index 0000000..516a4e3
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__AveragePooling1D.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=AveragePooling1D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__AveragePooling2D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__AveragePooling2D.run
new file mode 100644
index 0000000..cc75256
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__AveragePooling2D.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=AveragePooling2D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__AveragePooling3D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__AveragePooling3D.run
new file mode 100644
index 0000000..37685be
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__AveragePooling3D.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=AveragePooling3D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__BatchNormalization.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__BatchNormalization.run
new file mode 100644
index 0000000..75df1de
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__BatchNormalization.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=BatchNormalization -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Concatenate.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Concatenate.run
new file mode 100644
index 0000000..080dfcd
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Concatenate.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=Concatenate -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Conv1D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Conv1D.run
new file mode 100644
index 0000000..28d81a1
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Conv1D.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=Conv1D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Conv1DTranspose.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Conv1DTranspose.run
new file mode 100644
index 0000000..cac1ada
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Conv1DTranspose.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=Conv1DTranspose -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Conv2D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Conv2D.run
new file mode 100644
index 0000000..e9f8496
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Conv2D.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=Conv2D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Conv2DTranspose.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Conv2DTranspose.run
new file mode 100644
index 0000000..3ec7e45
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Conv2DTranspose.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=Conv2DTranspose -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Conv3D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Conv3D.run
new file mode 100644
index 0000000..0119367
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Conv3D.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=Conv3D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Conv3DTranspose.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Conv3DTranspose.run
new file mode 100644
index 0000000..9c92b2c
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Conv3DTranspose.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=Conv3DTranspose -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Cropping1D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Cropping1D.run
new file mode 100644
index 0000000..1d92c3a
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Cropping1D.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=Cropping1D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Cropping2D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Cropping2D.run
new file mode 100644
index 0000000..9f59e77
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Cropping2D.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=Cropping2D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Cropping3D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Cropping3D.run
new file mode 100644
index 0000000..7027f60
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Cropping3D.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=Cropping3D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Dense.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Dense.run
new file mode 100644
index 0000000..ae1d073
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Dense.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=Dense -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__DepthwiseConv2D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__DepthwiseConv2D.run
new file mode 100644
index 0000000..9932a17
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__DepthwiseConv2D.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=DepthwiseConv2D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Dot.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Dot.run
new file mode 100644
index 0000000..4ec920a
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Dot.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=Dot -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Dropout.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Dropout.run
new file mode 100644
index 0000000..abf644a
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Dropout.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=Dropout -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__ELU.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__ELU.run
new file mode 100644
index 0000000..c372085
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__ELU.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=ELU -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Embedding.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Embedding.run
new file mode 100644
index 0000000..7e939e4
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Embedding.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=Embedding -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Flatten.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Flatten.run
new file mode 100644
index 0000000..b774e39
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Flatten.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=Flatten -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__GRU.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__GRU.run
new file mode 100644
index 0000000..9719cac
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__GRU.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=GRU -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__GaussianDropout.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__GaussianDropout.run
new file mode 100644
index 0000000..44d8a92
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__GaussianDropout.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=GaussianDropout -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__GaussianNoise.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__GaussianNoise.run
new file mode 100644
index 0000000..05fc6bd
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__GaussianNoise.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=GaussianNoise -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__GlobalAveragePooling1D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__GlobalAveragePooling1D.run
new file mode 100644
index 0000000..fdcb4df
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__GlobalAveragePooling1D.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=GlobalAveragePooling1D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__GlobalAveragePooling2D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__GlobalAveragePooling2D.run
new file mode 100644
index 0000000..47296ad
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__GlobalAveragePooling2D.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=GlobalAveragePooling2D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__GlobalAveragePooling3D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__GlobalAveragePooling3D.run
new file mode 100644
index 0000000..36f369f
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__GlobalAveragePooling3D.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=GlobalAveragePooling3D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__GlobalMaxPool1D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__GlobalMaxPool1D.run
new file mode 100644
index 0000000..8486644
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__GlobalMaxPool1D.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=GlobalMaxPool1D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__GlobalMaxPool2D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__GlobalMaxPool2D.run
new file mode 100644
index 0000000..bc9b4e9
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__GlobalMaxPool2D.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=GlobalMaxPool2D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__GlobalMaxPool3D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__GlobalMaxPool3D.run
new file mode 100644
index 0000000..7a2b2b2
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__GlobalMaxPool3D.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=GlobalMaxPool3D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__InputLayer.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__InputLayer.run
new file mode 100644
index 0000000..3c13afa
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__InputLayer.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=InputLayer -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__LSTM.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__LSTM.run
new file mode 100644
index 0000000..5db8bcf
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__LSTM.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=LSTM -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Lambda.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Lambda.run
new file mode 100644
index 0000000..a777122
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Lambda.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=Lambda -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__LayerNormalization.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__LayerNormalization.run
new file mode 100644
index 0000000..7612f63
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__LayerNormalization.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=LayerNormalization -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__LeakyReLU.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__LeakyReLU.run
new file mode 100644
index 0000000..231a47d
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__LeakyReLU.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=LeakyReLU -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__LocallyConnected1D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__LocallyConnected1D.run
new file mode 100644
index 0000000..5cb50ea
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__LocallyConnected1D.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=LocallyConnected1D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__LocallyConnected2D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__LocallyConnected2D.run
new file mode 100644
index 0000000..889b869
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__LocallyConnected2D.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=LocallyConnected2D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Masking.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Masking.run
new file mode 100644
index 0000000..a034c16
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Masking.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=Masking -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__MaxPool1D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__MaxPool1D.run
new file mode 100644
index 0000000..d23e4f3
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__MaxPool1D.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=MaxPool1D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__MaxPool2D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__MaxPool2D.run
new file mode 100644
index 0000000..09c25e5
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__MaxPool2D.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=MaxPool2D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__MaxPool3D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__MaxPool3D.run
new file mode 100644
index 0000000..03b780c
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__MaxPool3D.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=MaxPool3D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Maximum.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Maximum.run
new file mode 100644
index 0000000..1ce8da7
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Maximum.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=Maximum -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Minimum.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Minimum.run
new file mode 100644
index 0000000..6dc64d8
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Minimum.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=Minimum -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__MultiHeadAttention.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__MultiHeadAttention.run
new file mode 100644
index 0000000..da7c0d9
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__MultiHeadAttention.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=MultiHeadAttention -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Multiply.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Multiply.run
new file mode 100644
index 0000000..1d96d03
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Multiply.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=Multiply -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__PReLU.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__PReLU.run
new file mode 100644
index 0000000..f5e1d60
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__PReLU.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=PReLU -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Permute.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Permute.run
new file mode 100644
index 0000000..34bd291
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Permute.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=Permute -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__ReLU.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__ReLU.run
new file mode 100644
index 0000000..35cbc6e
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__ReLU.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=ReLU -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__RepeatVector.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__RepeatVector.run
new file mode 100644
index 0000000..31b3275
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__RepeatVector.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=RepeatVector -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Reshape.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Reshape.run
new file mode 100644
index 0000000..2a5b479
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Reshape.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=Reshape -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__SeparableConv1D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__SeparableConv1D.run
new file mode 100644
index 0000000..ab0a008
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__SeparableConv1D.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=SeparableConv1D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__SeparableConv2D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__SeparableConv2D.run
new file mode 100644
index 0000000..88afe16
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__SeparableConv2D.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=SeparableConv2D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Softmax.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Softmax.run
new file mode 100644
index 0000000..a53798b
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Softmax.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=Softmax -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__SpatialDropout1D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__SpatialDropout1D.run
new file mode 100644
index 0000000..58a8a2a
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__SpatialDropout1D.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=SpatialDropout1D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__SpatialDropout2D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__SpatialDropout2D.run
new file mode 100644
index 0000000..21af62b
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__SpatialDropout2D.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=SpatialDropout2D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__SpatialDropout3D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__SpatialDropout3D.run
new file mode 100644
index 0000000..90e844e
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__SpatialDropout3D.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=SpatialDropout3D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Subtract.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Subtract.run
new file mode 100644
index 0000000..3c35464
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__Subtract.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=Subtract -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__ThresholdedReLU.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__ThresholdedReLU.run
new file mode 100644
index 0000000..f40f3e6
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__ThresholdedReLU.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=ThresholdedReLU -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__UpSampling1D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__UpSampling1D.run
new file mode 100644
index 0000000..b33c780
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__UpSampling1D.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=UpSampling1D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__UpSampling2D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__UpSampling2D.run
new file mode 100644
index 0000000..f8faeb7
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__UpSampling2D.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=UpSampling2D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__UpSampling3D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__UpSampling3D.run
new file mode 100644
index 0000000..1ba3e24
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__UpSampling3D.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=UpSampling3D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__ZeroPadding1D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__ZeroPadding1D.run
new file mode 100644
index 0000000..fa552ef
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__ZeroPadding1D.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=ZeroPadding1D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__ZeroPadding2D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__ZeroPadding2D.run
new file mode 100644
index 0000000..386b1b1
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__ZeroPadding2D.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=ZeroPadding2D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__ZeroPadding3D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__ZeroPadding3D.run
new file mode 100644
index 0000000..31550ce
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__ZeroPadding3D.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=ZeroPadding3D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Activation.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Activation.run
new file mode 100644
index 0000000..640e4e3
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Activation.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=Activation -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_ActivityRegularization.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_ActivityRegularization.run
new file mode 100644
index 0000000..5f83641
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_ActivityRegularization.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=ActivityRegularization -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Add.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Add.run
new file mode 100644
index 0000000..fd0a0a2
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Add.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=Add -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_AdditiveAttention.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_AdditiveAttention.run
new file mode 100644
index 0000000..5979ac3
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_AdditiveAttention.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=AdditiveAttention -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_AlphaDropout.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_AlphaDropout.run
new file mode 100644
index 0000000..b9efbc6
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_AlphaDropout.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=AlphaDropout -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Attention.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Attention.run
new file mode 100644
index 0000000..1d361d4
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Attention.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=Attention -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Average.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Average.run
new file mode 100644
index 0000000..14b3265
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Average.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=Average -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_AveragePooling1D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_AveragePooling1D.run
new file mode 100644
index 0000000..fd60d86
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_AveragePooling1D.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=AveragePooling1D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_AveragePooling2D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_AveragePooling2D.run
new file mode 100644
index 0000000..75820f7
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_AveragePooling2D.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=AveragePooling2D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_AveragePooling3D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_AveragePooling3D.run
new file mode 100644
index 0000000..d6af954
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_AveragePooling3D.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=AveragePooling3D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_BatchNormalization.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_BatchNormalization.run
new file mode 100644
index 0000000..fb6c27b
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_BatchNormalization.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=BatchNormalization -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Concatenate.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Concatenate.run
new file mode 100644
index 0000000..041f53c
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Concatenate.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=Concatenate -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Conv1D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Conv1D.run
new file mode 100644
index 0000000..32564a8
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Conv1D.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=Conv1D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Conv1DTranspose.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Conv1DTranspose.run
new file mode 100644
index 0000000..43f73cd
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Conv1DTranspose.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=Conv1DTranspose -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Conv2D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Conv2D.run
new file mode 100644
index 0000000..7dea7d1
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Conv2D.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=Conv2D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Conv2DTranspose.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Conv2DTranspose.run
new file mode 100644
index 0000000..d9589ae
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Conv2DTranspose.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=Conv2DTranspose -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Conv3D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Conv3D.run
new file mode 100644
index 0000000..0e428f2
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Conv3D.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=Conv3D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Conv3DTranspose.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Conv3DTranspose.run
new file mode 100644
index 0000000..87cdd61
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Conv3DTranspose.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=Conv3DTranspose -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Cropping1D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Cropping1D.run
new file mode 100644
index 0000000..15569ad
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Cropping1D.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=Cropping1D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Cropping2D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Cropping2D.run
new file mode 100644
index 0000000..e75a9da
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Cropping2D.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=Cropping2D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Cropping3D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Cropping3D.run
new file mode 100644
index 0000000..34109e6
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Cropping3D.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=Cropping3D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Dense.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Dense.run
new file mode 100644
index 0000000..8d111c7
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Dense.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=Dense -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_DepthwiseConv2D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_DepthwiseConv2D.run
new file mode 100644
index 0000000..5ae7e20
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_DepthwiseConv2D.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=DepthwiseConv2D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Dot.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Dot.run
new file mode 100644
index 0000000..25e485d
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Dot.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=Dot -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Dropout.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Dropout.run
new file mode 100644
index 0000000..5fed502
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Dropout.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=Dropout -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_ELU.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_ELU.run
new file mode 100644
index 0000000..af55141
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_ELU.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=ELU -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Embedding.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Embedding.run
new file mode 100644
index 0000000..d274022
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Embedding.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=Embedding -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Flatten.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Flatten.run
new file mode 100644
index 0000000..8f24a9b
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Flatten.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=Flatten -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_GRU.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_GRU.run
new file mode 100644
index 0000000..3a41dd4
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_GRU.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=GRU -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_GaussianDropout.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_GaussianDropout.run
new file mode 100644
index 0000000..0548f50
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_GaussianDropout.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=GaussianDropout -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_GaussianNoise.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_GaussianNoise.run
new file mode 100644
index 0000000..af878ec
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_GaussianNoise.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=GaussianNoise -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_GlobalAveragePooling1D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_GlobalAveragePooling1D.run
new file mode 100644
index 0000000..06425cf
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_GlobalAveragePooling1D.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=GlobalAveragePooling1D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_GlobalAveragePooling2D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_GlobalAveragePooling2D.run
new file mode 100644
index 0000000..1a327ff
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_GlobalAveragePooling2D.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=GlobalAveragePooling2D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_GlobalAveragePooling3D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_GlobalAveragePooling3D.run
new file mode 100644
index 0000000..ae0febf
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_GlobalAveragePooling3D.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=GlobalAveragePooling3D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_GlobalMaxPool1D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_GlobalMaxPool1D.run
new file mode 100644
index 0000000..583746b
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_GlobalMaxPool1D.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=GlobalMaxPool1D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_GlobalMaxPool2D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_GlobalMaxPool2D.run
new file mode 100644
index 0000000..e3016a2
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_GlobalMaxPool2D.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=GlobalMaxPool2D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_GlobalMaxPool3D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_GlobalMaxPool3D.run
new file mode 100644
index 0000000..7cb7ee4
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_GlobalMaxPool3D.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=GlobalMaxPool3D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_InputLayer.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_InputLayer.run
new file mode 100644
index 0000000..b8347a4
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_InputLayer.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=InputLayer -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_LSTM.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_LSTM.run
new file mode 100644
index 0000000..acf0192
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_LSTM.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=LSTM -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Lambda.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Lambda.run
new file mode 100644
index 0000000..b5524e7
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Lambda.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=Lambda -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_LayerNormalization.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_LayerNormalization.run
new file mode 100644
index 0000000..7a7378b
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_LayerNormalization.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=LayerNormalization -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_LeakyReLU.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_LeakyReLU.run
new file mode 100644
index 0000000..6802bc2
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_LeakyReLU.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=LeakyReLU -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_LocallyConnected1D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_LocallyConnected1D.run
new file mode 100644
index 0000000..8efb719
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_LocallyConnected1D.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=LocallyConnected1D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_LocallyConnected2D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_LocallyConnected2D.run
new file mode 100644
index 0000000..b95fa7d
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_LocallyConnected2D.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=LocallyConnected2D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Masking.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Masking.run
new file mode 100644
index 0000000..df8e7e9
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Masking.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=Masking -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_MaxPool1D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_MaxPool1D.run
new file mode 100644
index 0000000..71adbb1
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_MaxPool1D.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=MaxPool1D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_MaxPool2D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_MaxPool2D.run
new file mode 100644
index 0000000..10dd424
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_MaxPool2D.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=MaxPool2D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_MaxPool3D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_MaxPool3D.run
new file mode 100644
index 0000000..42f7fb3
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_MaxPool3D.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=MaxPool3D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Maximum.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Maximum.run
new file mode 100644
index 0000000..c61d71f
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Maximum.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=Maximum -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Minimum.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Minimum.run
new file mode 100644
index 0000000..794e4e1
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Minimum.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=Minimum -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_MultiHeadAttention.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_MultiHeadAttention.run
new file mode 100644
index 0000000..bcd64b7
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_MultiHeadAttention.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=MultiHeadAttention -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Multiply.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Multiply.run
new file mode 100644
index 0000000..31a3315
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Multiply.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=Multiply -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_PReLU.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_PReLU.run
new file mode 100644
index 0000000..f74fbe3
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_PReLU.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=PReLU -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Permute.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Permute.run
new file mode 100644
index 0000000..bcc2bde
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Permute.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=Permute -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_ReLU.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_ReLU.run
new file mode 100644
index 0000000..9c0ba06
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_ReLU.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=ReLU -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_RepeatVector.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_RepeatVector.run
new file mode 100644
index 0000000..ea2d27c
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_RepeatVector.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=RepeatVector -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Reshape.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Reshape.run
new file mode 100644
index 0000000..585c59d
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Reshape.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=Reshape -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_SeparableConv1D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_SeparableConv1D.run
new file mode 100644
index 0000000..4ccf27d
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_SeparableConv1D.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=SeparableConv1D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_SeparableConv2D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_SeparableConv2D.run
new file mode 100644
index 0000000..af8dfeb
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_SeparableConv2D.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=SeparableConv2D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Softmax.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Softmax.run
new file mode 100644
index 0000000..2d9de84
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Softmax.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=Softmax -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_SpatialDropout1D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_SpatialDropout1D.run
new file mode 100644
index 0000000..0a27704
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_SpatialDropout1D.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=SpatialDropout1D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_SpatialDropout2D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_SpatialDropout2D.run
new file mode 100644
index 0000000..2183ff0
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_SpatialDropout2D.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=SpatialDropout2D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_SpatialDropout3D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_SpatialDropout3D.run
new file mode 100644
index 0000000..63c53d1
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_SpatialDropout3D.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=SpatialDropout3D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Subtract.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Subtract.run
new file mode 100644
index 0000000..162e126
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_Subtract.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=Subtract -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_ThresholdedReLU.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_ThresholdedReLU.run
new file mode 100644
index 0000000..a8d8078
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_ThresholdedReLU.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=ThresholdedReLU -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_UpSampling1D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_UpSampling1D.run
new file mode 100644
index 0000000..7239471
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_UpSampling1D.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=UpSampling1D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_UpSampling2D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_UpSampling2D.run
new file mode 100644
index 0000000..1e08edf
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_UpSampling2D.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=UpSampling2D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_UpSampling3D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_UpSampling3D.run
new file mode 100644
index 0000000..9fb0092
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_UpSampling3D.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=UpSampling3D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_ZeroPadding1D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_ZeroPadding1D.run
new file mode 100644
index 0000000..2a586c8
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_ZeroPadding1D.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=ZeroPadding1D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_ZeroPadding2D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_ZeroPadding2D.run
new file mode 100644
index 0000000..72f4130
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_ZeroPadding2D.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=ZeroPadding2D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_ZeroPadding3D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_ZeroPadding3D.run
new file mode 100644
index 0000000..9e23114
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__dynamic_dims_ZeroPadding3D.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=ZeroPadding3D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_ActivityRegularization.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_ActivityRegularization.run
new file mode 100644
index 0000000..71cd015
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_ActivityRegularization.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=false --layer=ActivityRegularization -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_AdditiveAttention.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_AdditiveAttention.run
new file mode 100644
index 0000000..85d405d
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_AdditiveAttention.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=false --layer=AdditiveAttention -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_Attention.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_Attention.run
new file mode 100644
index 0000000..a129fb1
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_Attention.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=false --layer=Attention -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_AveragePooling1D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_AveragePooling1D.run
new file mode 100644
index 0000000..0d6e63e
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_AveragePooling1D.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=false --layer=AveragePooling1D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_AveragePooling2D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_AveragePooling2D.run
new file mode 100644
index 0000000..4369cf6
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_AveragePooling2D.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=false --layer=AveragePooling2D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_AveragePooling3D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_AveragePooling3D.run
new file mode 100644
index 0000000..29d8b9e
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_AveragePooling3D.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=false --layer=AveragePooling3D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_BatchNormalization.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_BatchNormalization.run
new file mode 100644
index 0000000..dc785b7
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_BatchNormalization.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=false --layer=BatchNormalization -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_Concatenate.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_Concatenate.run
new file mode 100644
index 0000000..53ba0a6
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_Concatenate.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=false --layer=Concatenate -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_Conv1D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_Conv1D.run
new file mode 100644
index 0000000..282e9a7
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_Conv1D.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=false --layer=Conv1D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_Conv1DTranspose.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_Conv1DTranspose.run
new file mode 100644
index 0000000..c7e7d71
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_Conv1DTranspose.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=false --layer=Conv1DTranspose -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_Conv2D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_Conv2D.run
new file mode 100644
index 0000000..b1bf679
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_Conv2D.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=false --layer=Conv2D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_Conv2DTranspose.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_Conv2DTranspose.run
new file mode 100644
index 0000000..e468af6
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_Conv2DTranspose.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=false --layer=Conv2DTranspose -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_Conv3D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_Conv3D.run
new file mode 100644
index 0000000..0a57459
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_Conv3D.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=false --layer=Conv3D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_Conv3DTranspose.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_Conv3DTranspose.run
new file mode 100644
index 0000000..ae63e31
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_Conv3DTranspose.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=false --layer=Conv3DTranspose -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_Cropping1D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_Cropping1D.run
new file mode 100644
index 0000000..4bdfaee
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_Cropping1D.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=false --layer=Cropping1D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_Cropping2D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_Cropping2D.run
new file mode 100644
index 0000000..23a0469
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_Cropping2D.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=false --layer=Cropping2D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_Cropping3D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_Cropping3D.run
new file mode 100644
index 0000000..04a024b
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_Cropping3D.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=false --layer=Cropping3D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_DepthwiseConv2D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_DepthwiseConv2D.run
new file mode 100644
index 0000000..84c9025
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_DepthwiseConv2D.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=false --layer=DepthwiseConv2D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_GRU.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_GRU.run
new file mode 100644
index 0000000..dd6b281
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_GRU.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=false --layer=GRU -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_LSTM.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_LSTM.run
new file mode 100644
index 0000000..0533435
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_LSTM.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=false --layer=LSTM -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_LocallyConnected1D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_LocallyConnected1D.run
new file mode 100644
index 0000000..a153742
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_LocallyConnected1D.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=false --layer=LocallyConnected1D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_LocallyConnected2D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_LocallyConnected2D.run
new file mode 100644
index 0000000..2139e87
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_LocallyConnected2D.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=false --layer=LocallyConnected2D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_MaxPool1D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_MaxPool1D.run
new file mode 100644
index 0000000..0655262
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_MaxPool1D.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=false --layer=MaxPool1D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_MaxPool2D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_MaxPool2D.run
new file mode 100644
index 0000000..f0cff4c
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_MaxPool2D.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=false --layer=MaxPool2D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_MaxPool3D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_MaxPool3D.run
new file mode 100644
index 0000000..8db57a0
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_MaxPool3D.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=false --layer=MaxPool3D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_SeparableConv1D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_SeparableConv1D.run
new file mode 100644
index 0000000..bca9dc6
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_SeparableConv1D.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=false --layer=SeparableConv1D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_SeparableConv2D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_SeparableConv2D.run
new file mode 100644
index 0000000..a7cdf0b
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_SeparableConv2D.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=false --layer=SeparableConv2D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_SimpleRNN.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_SimpleRNN.run
new file mode 100644
index 0000000..7024df5
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__full_api_SimpleRNN.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=false --test_default_kwargs_only=false --layer=SimpleRNN -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__training_AdditiveAttention.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__training_AdditiveAttention.run
new file mode 100644
index 0000000..c47e0e2
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__training_AdditiveAttention.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=true --test_default_kwargs_only=true --layer=AdditiveAttention -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__training_AlphaDropout.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__training_AlphaDropout.run
new file mode 100644
index 0000000..6e07de5
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__training_AlphaDropout.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=true --test_default_kwargs_only=true --layer=AlphaDropout -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__training_Attention.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__training_Attention.run
new file mode 100644
index 0000000..5e47dd0
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__training_Attention.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=true --test_default_kwargs_only=true --layer=Attention -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__training_BatchNormalization.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__training_BatchNormalization.run
new file mode 100644
index 0000000..18dbd82
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__training_BatchNormalization.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=true --test_default_kwargs_only=true --layer=BatchNormalization -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__training_Dropout.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__training_Dropout.run
new file mode 100644
index 0000000..1a5b332
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__training_Dropout.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=true --test_default_kwargs_only=true --layer=Dropout -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__training_GRU.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__training_GRU.run
new file mode 100644
index 0000000..939254e
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__training_GRU.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=true --test_default_kwargs_only=true --layer=GRU -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__training_GaussianDropout.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__training_GaussianDropout.run
new file mode 100644
index 0000000..4efcde3
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__training_GaussianDropout.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=true --test_default_kwargs_only=true --layer=GaussianDropout -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__training_GaussianNoise.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__training_GaussianNoise.run
new file mode 100644
index 0000000..faa02f8
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__training_GaussianNoise.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=true --test_default_kwargs_only=true --layer=GaussianNoise -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__training_LSTM.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__training_LSTM.run
new file mode 100644
index 0000000..4c77edb
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__training_LSTM.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=true --test_default_kwargs_only=true --layer=LSTM -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__training_MultiHeadAttention.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__training_MultiHeadAttention.run
new file mode 100644
index 0000000..b34af9c
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__training_MultiHeadAttention.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=true --test_default_kwargs_only=true --layer=MultiHeadAttention -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__training_SpatialDropout1D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__training_SpatialDropout1D.run
new file mode 100644
index 0000000..e558773
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__training_SpatialDropout1D.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=true --test_default_kwargs_only=true --layer=SpatialDropout1D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__training_SpatialDropout2D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__training_SpatialDropout2D.run
new file mode 100644
index 0000000..fd0b095
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__training_SpatialDropout2D.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=true --test_default_kwargs_only=true --layer=SpatialDropout2D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__training_SpatialDropout3D.run b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__training_SpatialDropout3D.run
new file mode 100644
index 0000000..6926099
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/llvmaot__training_SpatialDropout3D.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_llvmaot --dynamic_dims=false --training=true --test_default_kwargs_only=true --layer=SpatialDropout3D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Activation.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Activation.run
new file mode 100644
index 0000000..56e3b6f
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Activation.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=Activation -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__ActivityRegularization.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__ActivityRegularization.run
new file mode 100644
index 0000000..0cd78ed
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__ActivityRegularization.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=ActivityRegularization -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Add.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Add.run
new file mode 100644
index 0000000..9546b88
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Add.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=Add -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__AdditiveAttention.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__AdditiveAttention.run
new file mode 100644
index 0000000..93fc2d6
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__AdditiveAttention.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=AdditiveAttention -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__AlphaDropout.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__AlphaDropout.run
new file mode 100644
index 0000000..c552c80
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__AlphaDropout.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=AlphaDropout -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Attention.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Attention.run
new file mode 100644
index 0000000..de0b68c
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Attention.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=Attention -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Average.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Average.run
new file mode 100644
index 0000000..be27f1a
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Average.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=Average -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__AveragePooling1D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__AveragePooling1D.run
new file mode 100644
index 0000000..e152734
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__AveragePooling1D.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=AveragePooling1D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__AveragePooling2D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__AveragePooling2D.run
new file mode 100644
index 0000000..c1c6af3
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__AveragePooling2D.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=AveragePooling2D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__AveragePooling3D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__AveragePooling3D.run
new file mode 100644
index 0000000..4fe624c
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__AveragePooling3D.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=AveragePooling3D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__BatchNormalization.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__BatchNormalization.run
new file mode 100644
index 0000000..095fe0d
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__BatchNormalization.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=BatchNormalization -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Concatenate.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Concatenate.run
new file mode 100644
index 0000000..dc3c5d8
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Concatenate.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=Concatenate -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Conv1D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Conv1D.run
new file mode 100644
index 0000000..fca667d
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Conv1D.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=Conv1D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Conv1DTranspose.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Conv1DTranspose.run
new file mode 100644
index 0000000..2088b94
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Conv1DTranspose.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=Conv1DTranspose -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Conv2D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Conv2D.run
new file mode 100644
index 0000000..25235ab
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Conv2D.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=Conv2D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Conv2DTranspose.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Conv2DTranspose.run
new file mode 100644
index 0000000..fe90540
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Conv2DTranspose.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=Conv2DTranspose -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Conv3D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Conv3D.run
new file mode 100644
index 0000000..46af318
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Conv3D.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=Conv3D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Conv3DTranspose.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Conv3DTranspose.run
new file mode 100644
index 0000000..7f43aad
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Conv3DTranspose.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=Conv3DTranspose -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Cropping1D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Cropping1D.run
new file mode 100644
index 0000000..89f44f8
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Cropping1D.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=Cropping1D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Cropping2D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Cropping2D.run
new file mode 100644
index 0000000..36697e6
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Cropping2D.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=Cropping2D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Cropping3D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Cropping3D.run
new file mode 100644
index 0000000..767550e
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Cropping3D.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=Cropping3D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Dense.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Dense.run
new file mode 100644
index 0000000..b3f990a
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Dense.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=Dense -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__DepthwiseConv2D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__DepthwiseConv2D.run
new file mode 100644
index 0000000..517f162
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__DepthwiseConv2D.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=DepthwiseConv2D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Dot.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Dot.run
new file mode 100644
index 0000000..fc85bee
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Dot.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=Dot -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Dropout.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Dropout.run
new file mode 100644
index 0000000..91f8f98
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Dropout.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=Dropout -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__ELU.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__ELU.run
new file mode 100644
index 0000000..0f0ade2
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__ELU.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=ELU -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Embedding.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Embedding.run
new file mode 100644
index 0000000..454205c
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Embedding.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=Embedding -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Flatten.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Flatten.run
new file mode 100644
index 0000000..7acb51a
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Flatten.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=Flatten -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__GRU.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__GRU.run
new file mode 100644
index 0000000..64d8a59
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__GRU.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=GRU -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__GaussianDropout.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__GaussianDropout.run
new file mode 100644
index 0000000..9c7812d
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__GaussianDropout.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=GaussianDropout -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__GaussianNoise.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__GaussianNoise.run
new file mode 100644
index 0000000..341de8a
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__GaussianNoise.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=GaussianNoise -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__GlobalAveragePooling1D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__GlobalAveragePooling1D.run
new file mode 100644
index 0000000..b9578e2
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__GlobalAveragePooling1D.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=GlobalAveragePooling1D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__GlobalAveragePooling2D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__GlobalAveragePooling2D.run
new file mode 100644
index 0000000..88ddcfc
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__GlobalAveragePooling2D.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=GlobalAveragePooling2D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__GlobalAveragePooling3D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__GlobalAveragePooling3D.run
new file mode 100644
index 0000000..4257872
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__GlobalAveragePooling3D.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=GlobalAveragePooling3D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__GlobalMaxPool1D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__GlobalMaxPool1D.run
new file mode 100644
index 0000000..9e62094
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__GlobalMaxPool1D.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=GlobalMaxPool1D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__GlobalMaxPool2D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__GlobalMaxPool2D.run
new file mode 100644
index 0000000..29e9fa1
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__GlobalMaxPool2D.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=GlobalMaxPool2D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__GlobalMaxPool3D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__GlobalMaxPool3D.run
new file mode 100644
index 0000000..ed2cd15
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__GlobalMaxPool3D.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=GlobalMaxPool3D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__InputLayer.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__InputLayer.run
new file mode 100644
index 0000000..2bf8f45
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__InputLayer.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=InputLayer -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__LSTM.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__LSTM.run
new file mode 100644
index 0000000..744a317
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__LSTM.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=LSTM -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Lambda.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Lambda.run
new file mode 100644
index 0000000..583ef70
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Lambda.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=Lambda -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__LayerNormalization.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__LayerNormalization.run
new file mode 100644
index 0000000..7f61f21
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__LayerNormalization.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=LayerNormalization -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__LeakyReLU.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__LeakyReLU.run
new file mode 100644
index 0000000..dde64f4
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__LeakyReLU.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=LeakyReLU -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__LocallyConnected1D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__LocallyConnected1D.run
new file mode 100644
index 0000000..a661d68
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__LocallyConnected1D.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=LocallyConnected1D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__LocallyConnected2D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__LocallyConnected2D.run
new file mode 100644
index 0000000..eb28280
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__LocallyConnected2D.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=LocallyConnected2D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Masking.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Masking.run
new file mode 100644
index 0000000..87e2295
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Masking.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=Masking -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__MaxPool1D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__MaxPool1D.run
new file mode 100644
index 0000000..157f7b4
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__MaxPool1D.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=MaxPool1D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__MaxPool2D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__MaxPool2D.run
new file mode 100644
index 0000000..e7f7768
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__MaxPool2D.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=MaxPool2D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__MaxPool3D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__MaxPool3D.run
new file mode 100644
index 0000000..bcc43b6
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__MaxPool3D.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=MaxPool3D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Maximum.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Maximum.run
new file mode 100644
index 0000000..885b4ed
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Maximum.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=Maximum -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Minimum.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Minimum.run
new file mode 100644
index 0000000..29495ed
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Minimum.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=Minimum -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__MultiHeadAttention.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__MultiHeadAttention.run
new file mode 100644
index 0000000..2c490c3
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__MultiHeadAttention.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=MultiHeadAttention -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Multiply.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Multiply.run
new file mode 100644
index 0000000..589faec
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Multiply.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=Multiply -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__PReLU.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__PReLU.run
new file mode 100644
index 0000000..2cb7884
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__PReLU.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=PReLU -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Permute.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Permute.run
new file mode 100644
index 0000000..9e2135b
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Permute.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=Permute -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__ReLU.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__ReLU.run
new file mode 100644
index 0000000..921e279
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__ReLU.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=ReLU -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__RepeatVector.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__RepeatVector.run
new file mode 100644
index 0000000..e776921
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__RepeatVector.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=RepeatVector -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Reshape.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Reshape.run
new file mode 100644
index 0000000..0d6b9b5
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Reshape.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=Reshape -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__SeparableConv1D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__SeparableConv1D.run
new file mode 100644
index 0000000..ccb8d5e
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__SeparableConv1D.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=SeparableConv1D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__SeparableConv2D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__SeparableConv2D.run
new file mode 100644
index 0000000..09c4424
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__SeparableConv2D.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=SeparableConv2D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Softmax.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Softmax.run
new file mode 100644
index 0000000..b0606b9
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Softmax.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=Softmax -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__SpatialDropout1D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__SpatialDropout1D.run
new file mode 100644
index 0000000..2f92a3c
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__SpatialDropout1D.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=SpatialDropout1D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__SpatialDropout2D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__SpatialDropout2D.run
new file mode 100644
index 0000000..5a7d430
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__SpatialDropout2D.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=SpatialDropout2D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__SpatialDropout3D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__SpatialDropout3D.run
new file mode 100644
index 0000000..5653090
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__SpatialDropout3D.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=SpatialDropout3D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Subtract.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Subtract.run
new file mode 100644
index 0000000..5f29cc6
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__Subtract.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=Subtract -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__ThresholdedReLU.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__ThresholdedReLU.run
new file mode 100644
index 0000000..55112ba
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__ThresholdedReLU.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=ThresholdedReLU -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__UpSampling1D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__UpSampling1D.run
new file mode 100644
index 0000000..dccc179
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__UpSampling1D.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=UpSampling1D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__UpSampling2D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__UpSampling2D.run
new file mode 100644
index 0000000..053cb07
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__UpSampling2D.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=UpSampling2D -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__UpSampling3D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__UpSampling3D.run
new file mode 100644
index 0000000..47cb091
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__UpSampling3D.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=UpSampling3D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__ZeroPadding1D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__ZeroPadding1D.run
new file mode 100644
index 0000000..a31ee4e
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__ZeroPadding1D.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=ZeroPadding1D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__ZeroPadding2D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__ZeroPadding2D.run
new file mode 100644
index 0000000..dd2960e
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__ZeroPadding2D.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=ZeroPadding2D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__ZeroPadding3D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__ZeroPadding3D.run
new file mode 100644
index 0000000..5796394
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__ZeroPadding3D.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=true --layer=ZeroPadding3D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Activation.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Activation.run
new file mode 100644
index 0000000..ce9dea5
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Activation.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=Activation -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_ActivityRegularization.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_ActivityRegularization.run
new file mode 100644
index 0000000..2cf5a0c
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_ActivityRegularization.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=ActivityRegularization -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Add.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Add.run
new file mode 100644
index 0000000..5cd8ba6
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Add.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=Add -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_AdditiveAttention.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_AdditiveAttention.run
new file mode 100644
index 0000000..686a3ad
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_AdditiveAttention.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=AdditiveAttention -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_AlphaDropout.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_AlphaDropout.run
new file mode 100644
index 0000000..275770a
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_AlphaDropout.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=AlphaDropout -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Attention.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Attention.run
new file mode 100644
index 0000000..5b45570
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Attention.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=Attention -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Average.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Average.run
new file mode 100644
index 0000000..a358e30
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Average.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=Average -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_AveragePooling1D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_AveragePooling1D.run
new file mode 100644
index 0000000..cbf13c2
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_AveragePooling1D.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=AveragePooling1D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_AveragePooling2D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_AveragePooling2D.run
new file mode 100644
index 0000000..a93f5f5
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_AveragePooling2D.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=AveragePooling2D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_AveragePooling3D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_AveragePooling3D.run
new file mode 100644
index 0000000..801a186
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_AveragePooling3D.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=AveragePooling3D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_BatchNormalization.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_BatchNormalization.run
new file mode 100644
index 0000000..150a55e
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_BatchNormalization.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=BatchNormalization -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Concatenate.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Concatenate.run
new file mode 100644
index 0000000..31588be
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Concatenate.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=Concatenate -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Conv1D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Conv1D.run
new file mode 100644
index 0000000..d6e21c9
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Conv1D.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=Conv1D -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Conv1DTranspose.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Conv1DTranspose.run
new file mode 100644
index 0000000..9b6e6da
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Conv1DTranspose.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=Conv1DTranspose -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Conv2D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Conv2D.run
new file mode 100644
index 0000000..9bbdbc7
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Conv2D.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=Conv2D -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Conv2DTranspose.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Conv2DTranspose.run
new file mode 100644
index 0000000..9283614
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Conv2DTranspose.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=Conv2DTranspose -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Conv3D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Conv3D.run
new file mode 100644
index 0000000..0ee5cee
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Conv3D.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=Conv3D -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Conv3DTranspose.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Conv3DTranspose.run
new file mode 100644
index 0000000..b5079e6
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Conv3DTranspose.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=Conv3DTranspose -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Cropping1D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Cropping1D.run
new file mode 100644
index 0000000..9d063eb
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Cropping1D.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=Cropping1D -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Cropping2D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Cropping2D.run
new file mode 100644
index 0000000..ec84d60
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Cropping2D.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=Cropping2D -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Cropping3D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Cropping3D.run
new file mode 100644
index 0000000..16c32cf
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Cropping3D.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=Cropping3D -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Dense.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Dense.run
new file mode 100644
index 0000000..76aa002
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Dense.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=Dense -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_DepthwiseConv2D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_DepthwiseConv2D.run
new file mode 100644
index 0000000..7e68800
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_DepthwiseConv2D.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=DepthwiseConv2D -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Dot.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Dot.run
new file mode 100644
index 0000000..a2ac45a
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Dot.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=Dot -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Dropout.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Dropout.run
new file mode 100644
index 0000000..20274cf
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Dropout.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=Dropout -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_ELU.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_ELU.run
new file mode 100644
index 0000000..dff199b
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_ELU.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=ELU -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Embedding.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Embedding.run
new file mode 100644
index 0000000..92859f7
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Embedding.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=Embedding -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Flatten.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Flatten.run
new file mode 100644
index 0000000..addb90a
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Flatten.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=Flatten -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_GRU.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_GRU.run
new file mode 100644
index 0000000..08d509e
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_GRU.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=GRU -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_GaussianDropout.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_GaussianDropout.run
new file mode 100644
index 0000000..42acf50
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_GaussianDropout.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=GaussianDropout -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_GaussianNoise.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_GaussianNoise.run
new file mode 100644
index 0000000..b6b608d
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_GaussianNoise.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=GaussianNoise -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_GlobalAveragePooling1D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_GlobalAveragePooling1D.run
new file mode 100644
index 0000000..92ab75f
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_GlobalAveragePooling1D.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=GlobalAveragePooling1D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_GlobalAveragePooling2D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_GlobalAveragePooling2D.run
new file mode 100644
index 0000000..b1cb0d8
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_GlobalAveragePooling2D.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=GlobalAveragePooling2D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_GlobalAveragePooling3D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_GlobalAveragePooling3D.run
new file mode 100644
index 0000000..1d801a3
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_GlobalAveragePooling3D.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=GlobalAveragePooling3D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_GlobalMaxPool1D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_GlobalMaxPool1D.run
new file mode 100644
index 0000000..1ddb65b
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_GlobalMaxPool1D.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=GlobalMaxPool1D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_GlobalMaxPool2D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_GlobalMaxPool2D.run
new file mode 100644
index 0000000..075ff8f
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_GlobalMaxPool2D.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=GlobalMaxPool2D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_GlobalMaxPool3D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_GlobalMaxPool3D.run
new file mode 100644
index 0000000..ffe49cc
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_GlobalMaxPool3D.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=GlobalMaxPool3D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_InputLayer.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_InputLayer.run
new file mode 100644
index 0000000..34656d1
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_InputLayer.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=InputLayer -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_LSTM.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_LSTM.run
new file mode 100644
index 0000000..57d7bbe
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_LSTM.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=LSTM -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Lambda.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Lambda.run
new file mode 100644
index 0000000..ee50a74
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Lambda.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=Lambda -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_LayerNormalization.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_LayerNormalization.run
new file mode 100644
index 0000000..9d6ed5c
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_LayerNormalization.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=LayerNormalization -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_LeakyReLU.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_LeakyReLU.run
new file mode 100644
index 0000000..dd02433
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_LeakyReLU.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=LeakyReLU -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_LocallyConnected1D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_LocallyConnected1D.run
new file mode 100644
index 0000000..255094c
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_LocallyConnected1D.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=LocallyConnected1D -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_LocallyConnected2D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_LocallyConnected2D.run
new file mode 100644
index 0000000..28bd93d
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_LocallyConnected2D.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=LocallyConnected2D -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Masking.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Masking.run
new file mode 100644
index 0000000..fa42954
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Masking.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=Masking -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_MaxPool1D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_MaxPool1D.run
new file mode 100644
index 0000000..27f34be
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_MaxPool1D.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=MaxPool1D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_MaxPool2D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_MaxPool2D.run
new file mode 100644
index 0000000..68f006b
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_MaxPool2D.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=MaxPool2D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_MaxPool3D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_MaxPool3D.run
new file mode 100644
index 0000000..9c553b7
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_MaxPool3D.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=MaxPool3D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Maximum.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Maximum.run
new file mode 100644
index 0000000..d30e987
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Maximum.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=Maximum -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Minimum.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Minimum.run
new file mode 100644
index 0000000..dbc1ca5
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Minimum.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=Minimum -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_MultiHeadAttention.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_MultiHeadAttention.run
new file mode 100644
index 0000000..9268ca8
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_MultiHeadAttention.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=MultiHeadAttention -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Multiply.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Multiply.run
new file mode 100644
index 0000000..2860371
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Multiply.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=Multiply -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_PReLU.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_PReLU.run
new file mode 100644
index 0000000..51cb9a4
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_PReLU.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=PReLU -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Permute.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Permute.run
new file mode 100644
index 0000000..45793e0
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Permute.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=Permute -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_ReLU.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_ReLU.run
new file mode 100644
index 0000000..79dfc90
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_ReLU.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=ReLU -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_RepeatVector.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_RepeatVector.run
new file mode 100644
index 0000000..0648540
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_RepeatVector.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=RepeatVector -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Reshape.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Reshape.run
new file mode 100644
index 0000000..4914cd3
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Reshape.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=Reshape -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_SeparableConv1D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_SeparableConv1D.run
new file mode 100644
index 0000000..9fcaa0c
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_SeparableConv1D.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=SeparableConv1D -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_SeparableConv2D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_SeparableConv2D.run
new file mode 100644
index 0000000..308a79f
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_SeparableConv2D.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=SeparableConv2D -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Softmax.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Softmax.run
new file mode 100644
index 0000000..48a6a8a
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Softmax.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=Softmax -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_SpatialDropout1D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_SpatialDropout1D.run
new file mode 100644
index 0000000..624bbc8
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_SpatialDropout1D.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=SpatialDropout1D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_SpatialDropout2D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_SpatialDropout2D.run
new file mode 100644
index 0000000..fef4ad5
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_SpatialDropout2D.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=SpatialDropout2D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_SpatialDropout3D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_SpatialDropout3D.run
new file mode 100644
index 0000000..6a7cc60
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_SpatialDropout3D.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=SpatialDropout3D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Subtract.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Subtract.run
new file mode 100644
index 0000000..349ec09
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_Subtract.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=Subtract -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_ThresholdedReLU.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_ThresholdedReLU.run
new file mode 100644
index 0000000..272efdc
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_ThresholdedReLU.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=ThresholdedReLU -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_UpSampling1D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_UpSampling1D.run
new file mode 100644
index 0000000..142590c
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_UpSampling1D.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=UpSampling1D -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_UpSampling2D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_UpSampling2D.run
new file mode 100644
index 0000000..7b114b8
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_UpSampling2D.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=UpSampling2D -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_UpSampling3D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_UpSampling3D.run
new file mode 100644
index 0000000..7272280
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_UpSampling3D.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=UpSampling3D -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_ZeroPadding1D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_ZeroPadding1D.run
new file mode 100644
index 0000000..f71bb86
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_ZeroPadding1D.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=ZeroPadding1D -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_ZeroPadding2D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_ZeroPadding2D.run
new file mode 100644
index 0000000..db65b82
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_ZeroPadding2D.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=ZeroPadding2D -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_ZeroPadding3D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_ZeroPadding3D.run
new file mode 100644
index 0000000..d45d661
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__dynamic_dims_ZeroPadding3D.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=true --training=false --test_default_kwargs_only=true --layer=ZeroPadding3D -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_ActivityRegularization.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_ActivityRegularization.run
new file mode 100644
index 0000000..f0e6249
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_ActivityRegularization.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=false --layer=ActivityRegularization -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_AdditiveAttention.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_AdditiveAttention.run
new file mode 100644
index 0000000..dd5c591
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_AdditiveAttention.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=false --layer=AdditiveAttention -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_Attention.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_Attention.run
new file mode 100644
index 0000000..3fb7aec
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_Attention.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=false --layer=Attention -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_AveragePooling1D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_AveragePooling1D.run
new file mode 100644
index 0000000..0fc609c
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_AveragePooling1D.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=false --layer=AveragePooling1D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_AveragePooling2D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_AveragePooling2D.run
new file mode 100644
index 0000000..0401d63
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_AveragePooling2D.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=false --layer=AveragePooling2D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_AveragePooling3D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_AveragePooling3D.run
new file mode 100644
index 0000000..04a177c
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_AveragePooling3D.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=false --layer=AveragePooling3D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_BatchNormalization.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_BatchNormalization.run
new file mode 100644
index 0000000..5ae02fb
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_BatchNormalization.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=false --layer=BatchNormalization -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_Concatenate.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_Concatenate.run
new file mode 100644
index 0000000..0e75525
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_Concatenate.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=false --layer=Concatenate -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_Conv1D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_Conv1D.run
new file mode 100644
index 0000000..0af1cca
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_Conv1D.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=false --layer=Conv1D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_Conv1DTranspose.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_Conv1DTranspose.run
new file mode 100644
index 0000000..21c5990
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_Conv1DTranspose.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=false --layer=Conv1DTranspose -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_Conv2D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_Conv2D.run
new file mode 100644
index 0000000..b547ba8
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_Conv2D.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=false --layer=Conv2D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_Conv2DTranspose.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_Conv2DTranspose.run
new file mode 100644
index 0000000..86db65b
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_Conv2DTranspose.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=false --layer=Conv2DTranspose -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_Conv3D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_Conv3D.run
new file mode 100644
index 0000000..c3b18ff
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_Conv3D.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=false --layer=Conv3D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_Conv3DTranspose.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_Conv3DTranspose.run
new file mode 100644
index 0000000..367b362
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_Conv3DTranspose.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=false --layer=Conv3DTranspose -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_Cropping1D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_Cropping1D.run
new file mode 100644
index 0000000..120fe72
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_Cropping1D.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=false --layer=Cropping1D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_Cropping2D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_Cropping2D.run
new file mode 100644
index 0000000..962b8e9
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_Cropping2D.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=false --layer=Cropping2D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_Cropping3D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_Cropping3D.run
new file mode 100644
index 0000000..94f6e60
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_Cropping3D.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=false --layer=Cropping3D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_DepthwiseConv2D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_DepthwiseConv2D.run
new file mode 100644
index 0000000..7dc3f1f
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_DepthwiseConv2D.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=false --layer=DepthwiseConv2D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_GRU.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_GRU.run
new file mode 100644
index 0000000..fbea482
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_GRU.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=false --layer=GRU -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_LSTM.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_LSTM.run
new file mode 100644
index 0000000..fa7dbef
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_LSTM.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=false --layer=LSTM -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_LocallyConnected1D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_LocallyConnected1D.run
new file mode 100644
index 0000000..930a054
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_LocallyConnected1D.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=false --layer=LocallyConnected1D -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_LocallyConnected2D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_LocallyConnected2D.run
new file mode 100644
index 0000000..452c118
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_LocallyConnected2D.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=false --layer=LocallyConnected2D -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_MaxPool1D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_MaxPool1D.run
new file mode 100644
index 0000000..bb2194f
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_MaxPool1D.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=false --layer=MaxPool1D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_MaxPool2D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_MaxPool2D.run
new file mode 100644
index 0000000..82eb263
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_MaxPool2D.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=false --layer=MaxPool2D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_MaxPool3D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_MaxPool3D.run
new file mode 100644
index 0000000..8fa9128
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_MaxPool3D.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=false --layer=MaxPool3D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_SeparableConv1D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_SeparableConv1D.run
new file mode 100644
index 0000000..e1b5343
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_SeparableConv1D.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=false --layer=SeparableConv1D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_SeparableConv2D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_SeparableConv2D.run
new file mode 100644
index 0000000..736eb70
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_SeparableConv2D.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=false --layer=SeparableConv2D -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_SimpleRNN.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_SimpleRNN.run
new file mode 100644
index 0000000..aae9231
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__full_api_SimpleRNN.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=false --test_default_kwargs_only=false --layer=SimpleRNN -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__training_AdditiveAttention.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__training_AdditiveAttention.run
new file mode 100644
index 0000000..9ef64e5
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__training_AdditiveAttention.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=true --test_default_kwargs_only=true --layer=AdditiveAttention -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__training_AlphaDropout.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__training_AlphaDropout.run
new file mode 100644
index 0000000..8e3dc1d
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__training_AlphaDropout.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=true --test_default_kwargs_only=true --layer=AlphaDropout -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__training_Attention.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__training_Attention.run
new file mode 100644
index 0000000..12ee6c5
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__training_Attention.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=true --test_default_kwargs_only=true --layer=Attention -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__training_BatchNormalization.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__training_BatchNormalization.run
new file mode 100644
index 0000000..fcfef8c
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__training_BatchNormalization.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=true --test_default_kwargs_only=true --layer=BatchNormalization -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__training_Dropout.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__training_Dropout.run
new file mode 100644
index 0000000..e8af71b
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__training_Dropout.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=true --test_default_kwargs_only=true --layer=Dropout -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__training_GRU.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__training_GRU.run
new file mode 100644
index 0000000..e85a33c
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__training_GRU.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=true --test_default_kwargs_only=true --layer=GRU -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__training_GaussianDropout.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__training_GaussianDropout.run
new file mode 100644
index 0000000..e8051e1
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__training_GaussianDropout.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=true --test_default_kwargs_only=true --layer=GaussianDropout -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__training_GaussianNoise.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__training_GaussianNoise.run
new file mode 100644
index 0000000..4b179a4
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__training_GaussianNoise.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=true --test_default_kwargs_only=true --layer=GaussianNoise -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__training_LSTM.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__training_LSTM.run
new file mode 100644
index 0000000..ac12360
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__training_LSTM.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=true --test_default_kwargs_only=true --layer=LSTM -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__training_MultiHeadAttention.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__training_MultiHeadAttention.run
new file mode 100644
index 0000000..f543fa2
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__training_MultiHeadAttention.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=true --test_default_kwargs_only=true --layer=MultiHeadAttention -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__training_SpatialDropout1D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__training_SpatialDropout1D.run
new file mode 100644
index 0000000..85f1cb5
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__training_SpatialDropout1D.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=true --test_default_kwargs_only=true --layer=SpatialDropout1D -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__training_SpatialDropout2D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__training_SpatialDropout2D.run
new file mode 100644
index 0000000..210fe8f
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__training_SpatialDropout2D.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=true --test_default_kwargs_only=true --layer=SpatialDropout2D -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__training_SpatialDropout3D.run b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__training_SpatialDropout3D.run
new file mode 100644
index 0000000..00fd2e2
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/layers/vulkan__training_SpatialDropout3D.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.layers.layers_test --target_backends=iree_vulkan --dynamic_dims=false --training=true --test_default_kwargs_only=true --layer=SpatialDropout3D -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__abs.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__abs.run
new file mode 100644
index 0000000..f93f64b
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__abs.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=abs -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__accumulate_n.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__accumulate_n.run
new file mode 100644
index 0000000..dcbc15e
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__accumulate_n.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=accumulate_n -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__acos.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__acos.run
new file mode 100644
index 0000000..574310a
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__acos.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=acos -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__acosh.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__acosh.run
new file mode 100644
index 0000000..ce4809c
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__acosh.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=acosh -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__add.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__add.run
new file mode 100644
index 0000000..58320d7
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__add.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=add -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__add_n.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__add_n.run
new file mode 100644
index 0000000..63e37ff
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__add_n.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=add_n -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__angle.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__angle.run
new file mode 100644
index 0000000..42e3394
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__angle.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=angle -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__argmax.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__argmax.run
new file mode 100644
index 0000000..a16e143
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__argmax.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=argmax -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__argmin.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__argmin.run
new file mode 100644
index 0000000..e0bda2a
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__argmin.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=argmin -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__asin.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__asin.run
new file mode 100644
index 0000000..56818f3
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__asin.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=asin -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__asinh.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__asinh.run
new file mode 100644
index 0000000..c95b7b8
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__asinh.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=asinh -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__atan.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__atan.run
new file mode 100644
index 0000000..d138920
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__atan.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=atan -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__atan2.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__atan2.run
new file mode 100644
index 0000000..4e8b6e4
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__atan2.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=atan2 -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__atanh.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__atanh.run
new file mode 100644
index 0000000..6bb1469
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__atanh.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=atanh -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__bessel_i0.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__bessel_i0.run
new file mode 100644
index 0000000..411d518
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__bessel_i0.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=bessel_i0 -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__bessel_i0e.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__bessel_i0e.run
new file mode 100644
index 0000000..26c3157
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__bessel_i0e.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=bessel_i0e -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__bessel_i1.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__bessel_i1.run
new file mode 100644
index 0000000..dc5617f
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__bessel_i1.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=bessel_i1 -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__bessel_i1e.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__bessel_i1e.run
new file mode 100644
index 0000000..8e669f3
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__bessel_i1e.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=bessel_i1e -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__betainc.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__betainc.run
new file mode 100644
index 0000000..0d5a306
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__betainc.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=betainc -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__bincount.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__bincount.run
new file mode 100644
index 0000000..fc14aa9
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__bincount.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=bincount -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__ceil.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__ceil.run
new file mode 100644
index 0000000..a5f5ca6
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__ceil.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=ceil -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_abs.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_abs.run
new file mode 100644
index 0000000..f93f64b
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_abs.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=abs -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_add.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_add.run
new file mode 100644
index 0000000..58320d7
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_add.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=add -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_angle.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_angle.run
new file mode 100644
index 0000000..42e3394
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_angle.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=angle -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_asinh.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_asinh.run
new file mode 100644
index 0000000..c95b7b8
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_asinh.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=asinh -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_atanh.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_atanh.run
new file mode 100644
index 0000000..6bb1469
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_atanh.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=atanh -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_conj.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_conj.run
new file mode 100644
index 0000000..27301e1
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_conj.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=conj -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_cos.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_cos.run
new file mode 100644
index 0000000..124c833
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_cos.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=cos -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_cosh.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_cosh.run
new file mode 100644
index 0000000..b8fe979
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_cosh.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=cosh -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_count_nonzero.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_count_nonzero.run
new file mode 100644
index 0000000..6ae0ce8
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_count_nonzero.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=count_nonzero -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_cumprod.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_cumprod.run
new file mode 100644
index 0000000..7aee027
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_cumprod.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=cumprod -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_cumsum.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_cumsum.run
new file mode 100644
index 0000000..dd4d33a
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_cumsum.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=cumsum -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_divide.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_divide.run
new file mode 100644
index 0000000..303525c
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_divide.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=divide -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_divide_no_nan.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_divide_no_nan.run
new file mode 100644
index 0000000..e104443
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_divide_no_nan.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=divide_no_nan -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_abs.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_abs.run
new file mode 100644
index 0000000..bf4d2d6
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_abs.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=abs -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_add.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_add.run
new file mode 100644
index 0000000..c7b10f4
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_add.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=add -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_angle.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_angle.run
new file mode 100644
index 0000000..8c565b3
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_angle.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=angle -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_asinh.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_asinh.run
new file mode 100644
index 0000000..f54210b
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_asinh.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=asinh -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_atanh.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_atanh.run
new file mode 100644
index 0000000..708c723
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_atanh.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=atanh -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_conj.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_conj.run
new file mode 100644
index 0000000..764488e
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_conj.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=conj -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_cos.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_cos.run
new file mode 100644
index 0000000..c3f03c0
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_cos.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=cos -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_cosh.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_cosh.run
new file mode 100644
index 0000000..7c0b222
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_cosh.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=cosh -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_count_nonzero.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_count_nonzero.run
new file mode 100644
index 0000000..0dc2d36
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_count_nonzero.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=count_nonzero -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_cumprod.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_cumprod.run
new file mode 100644
index 0000000..ab9b887
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_cumprod.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=cumprod -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_cumsum.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_cumsum.run
new file mode 100644
index 0000000..a4c1083
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_cumsum.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=cumsum -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_divide.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_divide.run
new file mode 100644
index 0000000..1631b06
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_divide.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=divide -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_divide_no_nan.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_divide_no_nan.run
new file mode 100644
index 0000000..3c87c50
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_divide_no_nan.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=divide_no_nan -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_exp.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_exp.run
new file mode 100644
index 0000000..6c17528
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_exp.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=exp -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_expm1.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_expm1.run
new file mode 100644
index 0000000..6ad1301
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_expm1.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=expm1 -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_imag.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_imag.run
new file mode 100644
index 0000000..cd79090
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_imag.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=imag -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_l2_normalize.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_l2_normalize.run
new file mode 100644
index 0000000..3e4a68f
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_l2_normalize.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=l2_normalize -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_log.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_log.run
new file mode 100644
index 0000000..2c34774
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_log.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=log -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_log1p.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_log1p.run
new file mode 100644
index 0000000..1f42985
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_log1p.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=log1p -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_multiply.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_multiply.run
new file mode 100644
index 0000000..0a00e33
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_multiply.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=multiply -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_multiply_no_nan.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_multiply_no_nan.run
new file mode 100644
index 0000000..8bbd4da
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_multiply_no_nan.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=multiply_no_nan -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_negative.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_negative.run
new file mode 100644
index 0000000..fddaf44
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_negative.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=negative -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_pow.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_pow.run
new file mode 100644
index 0000000..6dc54f0
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_pow.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=pow -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_real.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_real.run
new file mode 100644
index 0000000..67d80e6
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_real.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=real -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_reciprocal.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_reciprocal.run
new file mode 100644
index 0000000..dd103cc
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_reciprocal.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=reciprocal -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_reciprocal_no_nan.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_reciprocal_no_nan.run
new file mode 100644
index 0000000..4c895cd
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_reciprocal_no_nan.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=reciprocal_no_nan -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_reduce_euclidean_norm.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_reduce_euclidean_norm.run
new file mode 100644
index 0000000..67c59f7
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_reduce_euclidean_norm.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=reduce_euclidean_norm -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_reduce_std.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_reduce_std.run
new file mode 100644
index 0000000..b942bd9
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_reduce_std.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=reduce_std -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_reduce_variance.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_reduce_variance.run
new file mode 100644
index 0000000..fe136e7
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_reduce_variance.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=reduce_variance -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_rsqrt.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_rsqrt.run
new file mode 100644
index 0000000..4262892
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_rsqrt.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=rsqrt -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_sigmoid.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_sigmoid.run
new file mode 100644
index 0000000..2b630fc
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_sigmoid.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=sigmoid -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_sign.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_sign.run
new file mode 100644
index 0000000..227423d
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_sign.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=sign -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_sin.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_sin.run
new file mode 100644
index 0000000..0a74636
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_sin.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=sin -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_sinh.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_sinh.run
new file mode 100644
index 0000000..f147a71
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_sinh.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=sinh -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_sqrt.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_sqrt.run
new file mode 100644
index 0000000..6d3fcec
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_sqrt.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=sqrt -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_square.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_square.run
new file mode 100644
index 0000000..23f834a
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_square.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=square -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_squared_difference.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_squared_difference.run
new file mode 100644
index 0000000..966e9f9
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_squared_difference.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=squared_difference -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_subtract.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_subtract.run
new file mode 100644
index 0000000..c685905
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_subtract.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=subtract -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_tan.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_tan.run
new file mode 100644
index 0000000..51fe0ed
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_tan.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=tan -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_tanh.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_tanh.run
new file mode 100644
index 0000000..861f26f
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_tanh.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=tanh -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_truediv.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_truediv.run
new file mode 100644
index 0000000..b80763a
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_truediv.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=truediv -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_xdivy.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_xdivy.run
new file mode 100644
index 0000000..c5007f0
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_xdivy.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=xdivy -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_xlog1py.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_xlog1py.run
new file mode 100644
index 0000000..f12709b
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_xlog1py.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=xlog1py -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_xlogy.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_xlogy.run
new file mode 100644
index 0000000..9b29402
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_xlogy.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=xlogy -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_zero_fraction.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_zero_fraction.run
new file mode 100644
index 0000000..18f1e82
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_dynamic_dim_zero_fraction.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=zero_fraction -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_exp.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_exp.run
new file mode 100644
index 0000000..9f32c1e
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_exp.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=exp -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_expm1.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_expm1.run
new file mode 100644
index 0000000..0fb7f8f
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_expm1.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=expm1 -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_imag.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_imag.run
new file mode 100644
index 0000000..36b113f
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_imag.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=imag -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_l2_normalize.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_l2_normalize.run
new file mode 100644
index 0000000..a115c80
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_l2_normalize.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=l2_normalize -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_log.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_log.run
new file mode 100644
index 0000000..95ebce9
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_log.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=log -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_log1p.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_log1p.run
new file mode 100644
index 0000000..5fd517b
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_log1p.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=log1p -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_multiply.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_multiply.run
new file mode 100644
index 0000000..83732de
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_multiply.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=multiply -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_multiply_no_nan.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_multiply_no_nan.run
new file mode 100644
index 0000000..55677cb
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_multiply_no_nan.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=multiply_no_nan -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_negative.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_negative.run
new file mode 100644
index 0000000..38906fe
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_negative.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=negative -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_pow.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_pow.run
new file mode 100644
index 0000000..5e30556
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_pow.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=pow -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_real.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_real.run
new file mode 100644
index 0000000..467d97a
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_real.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=real -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_reciprocal.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_reciprocal.run
new file mode 100644
index 0000000..c5d12ff
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_reciprocal.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=reciprocal -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_reciprocal_no_nan.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_reciprocal_no_nan.run
new file mode 100644
index 0000000..a597c2d
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_reciprocal_no_nan.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=reciprocal_no_nan -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_reduce_euclidean_norm.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_reduce_euclidean_norm.run
new file mode 100644
index 0000000..220e27b
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_reduce_euclidean_norm.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=reduce_euclidean_norm -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_reduce_std.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_reduce_std.run
new file mode 100644
index 0000000..2f06dfd
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_reduce_std.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=reduce_std -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_reduce_variance.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_reduce_variance.run
new file mode 100644
index 0000000..5a7b5ab
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_reduce_variance.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=reduce_variance -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_rsqrt.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_rsqrt.run
new file mode 100644
index 0000000..e810354
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_rsqrt.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=rsqrt -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_sigmoid.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_sigmoid.run
new file mode 100644
index 0000000..a46ec12
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_sigmoid.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=sigmoid -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_sign.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_sign.run
new file mode 100644
index 0000000..a47cfc2
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_sign.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=sign -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_sin.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_sin.run
new file mode 100644
index 0000000..227cf83
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_sin.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=sin -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_sinh.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_sinh.run
new file mode 100644
index 0000000..e349354
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_sinh.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=sinh -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_sqrt.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_sqrt.run
new file mode 100644
index 0000000..37372e8
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_sqrt.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=sqrt -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_square.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_square.run
new file mode 100644
index 0000000..471caf3
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_square.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=square -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_squared_difference.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_squared_difference.run
new file mode 100644
index 0000000..2bf925b
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_squared_difference.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=squared_difference -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_subtract.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_subtract.run
new file mode 100644
index 0000000..933106f
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_subtract.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=subtract -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_tan.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_tan.run
new file mode 100644
index 0000000..3e628fc
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_tan.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=tan -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_tanh.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_tanh.run
new file mode 100644
index 0000000..1228997
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_tanh.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=tanh -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_truediv.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_truediv.run
new file mode 100644
index 0000000..25a6224
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_truediv.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=truediv -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_xdivy.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_xdivy.run
new file mode 100644
index 0000000..858b45e
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_xdivy.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=xdivy -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_xlog1py.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_xlog1py.run
new file mode 100644
index 0000000..504787c
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_xlog1py.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=xlog1py -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_xlogy.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_xlogy.run
new file mode 100644
index 0000000..077df5e
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_xlogy.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=xlogy -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_zero_fraction.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_zero_fraction.run
new file mode 100644
index 0000000..a02b744
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__complex_zero_fraction.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=zero_fraction -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__confusion_matrix.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__confusion_matrix.run
new file mode 100644
index 0000000..12213f0
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__confusion_matrix.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=confusion_matrix -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__cos.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__cos.run
new file mode 100644
index 0000000..124c833
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__cos.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=cos -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__cosh.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__cosh.run
new file mode 100644
index 0000000..b8fe979
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__cosh.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=cosh -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__count_nonzero.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__count_nonzero.run
new file mode 100644
index 0000000..6ae0ce8
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__count_nonzero.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=count_nonzero -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__cumprod.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__cumprod.run
new file mode 100644
index 0000000..7aee027
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__cumprod.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=cumprod -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__cumsum.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__cumsum.run
new file mode 100644
index 0000000..dd4d33a
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__cumsum.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=cumsum -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__cumulative_logsumexp.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__cumulative_logsumexp.run
new file mode 100644
index 0000000..8a6cd35
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__cumulative_logsumexp.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=cumulative_logsumexp -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__digamma.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__digamma.run
new file mode 100644
index 0000000..e86a9d7
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__digamma.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=digamma -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__divide.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__divide.run
new file mode 100644
index 0000000..303525c
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__divide.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=divide -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__divide_no_nan.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__divide_no_nan.run
new file mode 100644
index 0000000..e104443
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__divide_no_nan.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=divide_no_nan -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_abs.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_abs.run
new file mode 100644
index 0000000..bf4d2d6
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_abs.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=abs -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_accumulate_n.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_accumulate_n.run
new file mode 100644
index 0000000..8093416
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_accumulate_n.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=accumulate_n -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_acos.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_acos.run
new file mode 100644
index 0000000..f528123
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_acos.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=acos -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_acosh.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_acosh.run
new file mode 100644
index 0000000..c34989c
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_acosh.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=acosh -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_add.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_add.run
new file mode 100644
index 0000000..c7b10f4
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_add.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=add -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_add_n.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_add_n.run
new file mode 100644
index 0000000..e6ff439
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_add_n.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=add_n -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_angle.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_angle.run
new file mode 100644
index 0000000..8c565b3
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_angle.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=angle -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_argmax.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_argmax.run
new file mode 100644
index 0000000..79856cc
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_argmax.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=argmax -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_argmin.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_argmin.run
new file mode 100644
index 0000000..83c9de0
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_argmin.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=argmin -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_asin.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_asin.run
new file mode 100644
index 0000000..a3360f3
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_asin.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=asin -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_asinh.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_asinh.run
new file mode 100644
index 0000000..f54210b
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_asinh.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=asinh -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_atan.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_atan.run
new file mode 100644
index 0000000..f60e967
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_atan.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=atan -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_atan2.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_atan2.run
new file mode 100644
index 0000000..e0a7f3b
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_atan2.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=atan2 -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_atanh.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_atanh.run
new file mode 100644
index 0000000..708c723
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_atanh.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=atanh -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_bessel_i0.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_bessel_i0.run
new file mode 100644
index 0000000..07344be
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_bessel_i0.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=bessel_i0 -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_bessel_i0e.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_bessel_i0e.run
new file mode 100644
index 0000000..600241b
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_bessel_i0e.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=bessel_i0e -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_bessel_i1.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_bessel_i1.run
new file mode 100644
index 0000000..01d7fff
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_bessel_i1.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=bessel_i1 -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_bessel_i1e.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_bessel_i1e.run
new file mode 100644
index 0000000..278ecd1
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_bessel_i1e.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=bessel_i1e -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_betainc.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_betainc.run
new file mode 100644
index 0000000..ab8799e
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_betainc.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=betainc -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_bincount.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_bincount.run
new file mode 100644
index 0000000..10fa8c6
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_bincount.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=bincount -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_ceil.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_ceil.run
new file mode 100644
index 0000000..31d0ce4
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_ceil.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=ceil -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_confusion_matrix.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_confusion_matrix.run
new file mode 100644
index 0000000..d418f5e
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_confusion_matrix.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=confusion_matrix -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_cos.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_cos.run
new file mode 100644
index 0000000..c3f03c0
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_cos.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=cos -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_cosh.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_cosh.run
new file mode 100644
index 0000000..7c0b222
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_cosh.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=cosh -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_count_nonzero.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_count_nonzero.run
new file mode 100644
index 0000000..0dc2d36
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_count_nonzero.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=count_nonzero -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_cumprod.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_cumprod.run
new file mode 100644
index 0000000..ab9b887
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_cumprod.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=cumprod -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_cumsum.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_cumsum.run
new file mode 100644
index 0000000..a4c1083
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_cumsum.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=cumsum -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_cumulative_logsumexp.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_cumulative_logsumexp.run
new file mode 100644
index 0000000..f18647f
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_cumulative_logsumexp.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=cumulative_logsumexp -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_digamma.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_digamma.run
new file mode 100644
index 0000000..3bae0fc
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_digamma.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=digamma -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_divide.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_divide.run
new file mode 100644
index 0000000..1631b06
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_divide.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=divide -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_divide_no_nan.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_divide_no_nan.run
new file mode 100644
index 0000000..3c87c50
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_divide_no_nan.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=divide_no_nan -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_equal.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_equal.run
new file mode 100644
index 0000000..fbba7f6
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_equal.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=equal -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_erf.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_erf.run
new file mode 100644
index 0000000..4cbfdfb
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_erf.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=erf -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_erfc.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_erfc.run
new file mode 100644
index 0000000..5b51752
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_erfc.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=erfc -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_erfinv.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_erfinv.run
new file mode 100644
index 0000000..89f43ce
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_erfinv.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=erfinv -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_exp.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_exp.run
new file mode 100644
index 0000000..6c17528
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_exp.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=exp -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_expm1.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_expm1.run
new file mode 100644
index 0000000..6ad1301
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_expm1.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=expm1 -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_floor.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_floor.run
new file mode 100644
index 0000000..2edad60
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_floor.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=floor -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_floordiv.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_floordiv.run
new file mode 100644
index 0000000..c9215e9
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_floordiv.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=floordiv -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_floormod.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_floormod.run
new file mode 100644
index 0000000..4f81edb
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_floormod.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=floormod -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_greater.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_greater.run
new file mode 100644
index 0000000..56d4bc9
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_greater.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=greater -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_greater_equal.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_greater_equal.run
new file mode 100644
index 0000000..f89bab1
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_greater_equal.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=greater_equal -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_igamma.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_igamma.run
new file mode 100644
index 0000000..ba135a3
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_igamma.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=igamma -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_igammac.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_igammac.run
new file mode 100644
index 0000000..3a23ac3
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_igammac.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=igammac -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_imag.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_imag.run
new file mode 100644
index 0000000..cd79090
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_imag.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=imag -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_in_top_k.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_in_top_k.run
new file mode 100644
index 0000000..b2e3715
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_in_top_k.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=in_top_k -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_invert_permutation.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_invert_permutation.run
new file mode 100644
index 0000000..df563ac
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_invert_permutation.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=invert_permutation -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_is_finite.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_is_finite.run
new file mode 100644
index 0000000..647e918
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_is_finite.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=is_finite -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_is_inf.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_is_inf.run
new file mode 100644
index 0000000..3bb1704
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_is_inf.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=is_inf -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_is_nan.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_is_nan.run
new file mode 100644
index 0000000..55c997c
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_is_nan.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=is_nan -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_is_non_decreasing.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_is_non_decreasing.run
new file mode 100644
index 0000000..989eb0c
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_is_non_decreasing.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=is_non_decreasing -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_is_strictly_increasing.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_is_strictly_increasing.run
new file mode 100644
index 0000000..08a75e9
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_is_strictly_increasing.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=is_strictly_increasing -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_lbeta.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_lbeta.run
new file mode 100644
index 0000000..77b8e84
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_lbeta.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=lbeta -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_less.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_less.run
new file mode 100644
index 0000000..429e24f
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_less.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=less -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_less_equal.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_less_equal.run
new file mode 100644
index 0000000..9d8c8fa
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_less_equal.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=less_equal -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_lgamma.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_lgamma.run
new file mode 100644
index 0000000..a9aac55
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_lgamma.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=lgamma -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_log.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_log.run
new file mode 100644
index 0000000..2c34774
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_log.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=log -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_log1p.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_log1p.run
new file mode 100644
index 0000000..1f42985
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_log1p.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=log1p -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_log_sigmoid.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_log_sigmoid.run
new file mode 100644
index 0000000..6209e89
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_log_sigmoid.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=log_sigmoid -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_log_softmax.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_log_softmax.run
new file mode 100644
index 0000000..f78304e
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_log_softmax.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=log_softmax -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_logical_and.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_logical_and.run
new file mode 100644
index 0000000..ce6cf2a
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_logical_and.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=logical_and -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_logical_not.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_logical_not.run
new file mode 100644
index 0000000..92339ed
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_logical_not.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=logical_not -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_logical_or.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_logical_or.run
new file mode 100644
index 0000000..1034d62
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_logical_or.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=logical_or -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_logical_xor.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_logical_xor.run
new file mode 100644
index 0000000..2e8ed9f
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_logical_xor.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=logical_xor -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_maximum.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_maximum.run
new file mode 100644
index 0000000..73dcb0e
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_maximum.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=maximum -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_minimum.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_minimum.run
new file mode 100644
index 0000000..22394b4
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_minimum.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=minimum -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_mod.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_mod.run
new file mode 100644
index 0000000..0adfb14
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_mod.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=mod -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_multiply.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_multiply.run
new file mode 100644
index 0000000..0a00e33
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_multiply.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=multiply -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_multiply_no_nan.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_multiply_no_nan.run
new file mode 100644
index 0000000..8bbd4da
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_multiply_no_nan.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=multiply_no_nan -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_ndtri.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_ndtri.run
new file mode 100644
index 0000000..e0e722c
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_ndtri.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=ndtri -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_negative.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_negative.run
new file mode 100644
index 0000000..fddaf44
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_negative.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=negative -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_nextafter.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_nextafter.run
new file mode 100644
index 0000000..ebe37cb
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_nextafter.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=nextafter -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_not_equal.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_not_equal.run
new file mode 100644
index 0000000..86ea80b
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_not_equal.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=not_equal -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_polygamma.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_polygamma.run
new file mode 100644
index 0000000..8387ae3
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_polygamma.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=polygamma -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_polyval.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_polyval.run
new file mode 100644
index 0000000..77d0235
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_polyval.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=polyval -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_pow.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_pow.run
new file mode 100644
index 0000000..6dc54f0
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_pow.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=pow -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_real.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_real.run
new file mode 100644
index 0000000..67d80e6
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_real.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=real -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_reciprocal.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_reciprocal.run
new file mode 100644
index 0000000..dd103cc
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_reciprocal.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=reciprocal -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_reciprocal_no_nan.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_reciprocal_no_nan.run
new file mode 100644
index 0000000..4c895cd
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_reciprocal_no_nan.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=reciprocal_no_nan -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_reduce_all.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_reduce_all.run
new file mode 100644
index 0000000..93cbb1b
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_reduce_all.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=reduce_all -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_reduce_any.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_reduce_any.run
new file mode 100644
index 0000000..3c092c4
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_reduce_any.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=reduce_any -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_reduce_euclidean_norm.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_reduce_euclidean_norm.run
new file mode 100644
index 0000000..67c59f7
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_reduce_euclidean_norm.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=reduce_euclidean_norm -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_reduce_logsumexp.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_reduce_logsumexp.run
new file mode 100644
index 0000000..1fcb0ab
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_reduce_logsumexp.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=reduce_logsumexp -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_reduce_max.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_reduce_max.run
new file mode 100644
index 0000000..c437010
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_reduce_max.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=reduce_max -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_reduce_mean.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_reduce_mean.run
new file mode 100644
index 0000000..1cfde11
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_reduce_mean.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=reduce_mean -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_reduce_min.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_reduce_min.run
new file mode 100644
index 0000000..f1d934c
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_reduce_min.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=reduce_min -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_reduce_prod.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_reduce_prod.run
new file mode 100644
index 0000000..c03a281
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_reduce_prod.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=reduce_prod -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_reduce_std.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_reduce_std.run
new file mode 100644
index 0000000..b942bd9
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_reduce_std.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=reduce_std -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_reduce_sum.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_reduce_sum.run
new file mode 100644
index 0000000..c7c62f1
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_reduce_sum.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=reduce_sum -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_reduce_variance.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_reduce_variance.run
new file mode 100644
index 0000000..fe136e7
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_reduce_variance.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=reduce_variance -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_rint.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_rint.run
new file mode 100644
index 0000000..302f8bf
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_rint.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=rint -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_round.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_round.run
new file mode 100644
index 0000000..c0048d7
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_round.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=round -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_rsqrt.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_rsqrt.run
new file mode 100644
index 0000000..4262892
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_rsqrt.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=rsqrt -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_scalar_mul.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_scalar_mul.run
new file mode 100644
index 0000000..2034949
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_scalar_mul.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=scalar_mul -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_segment_max.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_segment_max.run
new file mode 100644
index 0000000..c8a8309
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_segment_max.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=segment_max -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_segment_mean.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_segment_mean.run
new file mode 100644
index 0000000..e2a9d66
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_segment_mean.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=segment_mean -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_segment_min.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_segment_min.run
new file mode 100644
index 0000000..1e84284
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_segment_min.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=segment_min -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_segment_prod.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_segment_prod.run
new file mode 100644
index 0000000..c7ff057
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_segment_prod.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=segment_prod -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_segment_sum.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_segment_sum.run
new file mode 100644
index 0000000..8813403
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_segment_sum.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=segment_sum -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_sigmoid.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_sigmoid.run
new file mode 100644
index 0000000..2b630fc
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_sigmoid.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=sigmoid -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_sign.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_sign.run
new file mode 100644
index 0000000..227423d
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_sign.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=sign -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_sin.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_sin.run
new file mode 100644
index 0000000..0a74636
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_sin.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=sin -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_sinh.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_sinh.run
new file mode 100644
index 0000000..f147a71
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_sinh.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=sinh -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_sobol_sample.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_sobol_sample.run
new file mode 100644
index 0000000..3949456
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_sobol_sample.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=sobol_sample -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_softmax.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_softmax.run
new file mode 100644
index 0000000..d324b1b
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_softmax.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=softmax -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_softplus.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_softplus.run
new file mode 100644
index 0000000..bd30916
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_softplus.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=softplus -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_softsign.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_softsign.run
new file mode 100644
index 0000000..01f658e
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_softsign.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=softsign -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_sqrt.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_sqrt.run
new file mode 100644
index 0000000..6d3fcec
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_sqrt.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=sqrt -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_square.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_square.run
new file mode 100644
index 0000000..23f834a
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_square.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=square -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_squared_difference.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_squared_difference.run
new file mode 100644
index 0000000..966e9f9
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_squared_difference.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=squared_difference -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_subtract.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_subtract.run
new file mode 100644
index 0000000..c685905
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_subtract.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=subtract -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_tan.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_tan.run
new file mode 100644
index 0000000..51fe0ed
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_tan.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=tan -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_tanh.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_tanh.run
new file mode 100644
index 0000000..861f26f
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_tanh.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=tanh -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_top_k.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_top_k.run
new file mode 100644
index 0000000..22aa96c
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_top_k.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=top_k -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_truediv.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_truediv.run
new file mode 100644
index 0000000..b80763a
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_truediv.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=truediv -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_unsorted_segment_max.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_unsorted_segment_max.run
new file mode 100644
index 0000000..6d69389
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_unsorted_segment_max.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=unsorted_segment_max -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_unsorted_segment_mean.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_unsorted_segment_mean.run
new file mode 100644
index 0000000..ef3442b
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_unsorted_segment_mean.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=unsorted_segment_mean -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_unsorted_segment_min.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_unsorted_segment_min.run
new file mode 100644
index 0000000..28690c9
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_unsorted_segment_min.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=unsorted_segment_min -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_unsorted_segment_prod.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_unsorted_segment_prod.run
new file mode 100644
index 0000000..817a9ef
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_unsorted_segment_prod.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=unsorted_segment_prod -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_unsorted_segment_sqrt_n.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_unsorted_segment_sqrt_n.run
new file mode 100644
index 0000000..c375da0
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_unsorted_segment_sqrt_n.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=unsorted_segment_sqrt_n -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_unsorted_segment_sum.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_unsorted_segment_sum.run
new file mode 100644
index 0000000..00e7f84
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_unsorted_segment_sum.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=unsorted_segment_sum -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_xdivy.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_xdivy.run
new file mode 100644
index 0000000..c5007f0
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_xdivy.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=xdivy -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_xlog1py.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_xlog1py.run
new file mode 100644
index 0000000..f12709b
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_xlog1py.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=xlog1py -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_xlogy.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_xlogy.run
new file mode 100644
index 0000000..9b29402
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_xlogy.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=xlogy -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_zero_fraction.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_zero_fraction.run
new file mode 100644
index 0000000..18f1e82
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_zero_fraction.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=zero_fraction -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_zeta.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_zeta.run
new file mode 100644
index 0000000..78c89ad
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__dynamic_dim_zeta.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=true --functions=zeta -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__equal.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__equal.run
new file mode 100644
index 0000000..8380a86
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__equal.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=equal -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__erf.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__erf.run
new file mode 100644
index 0000000..5994b47
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__erf.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=erf -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__erfc.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__erfc.run
new file mode 100644
index 0000000..1adf9e1
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__erfc.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=erfc -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__erfinv.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__erfinv.run
new file mode 100644
index 0000000..90cc920
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__erfinv.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=erfinv -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__exp.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__exp.run
new file mode 100644
index 0000000..9f32c1e
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__exp.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=exp -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__expm1.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__expm1.run
new file mode 100644
index 0000000..0fb7f8f
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__expm1.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=expm1 -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__floor.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__floor.run
new file mode 100644
index 0000000..585dfc9
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__floor.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=floor -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__floordiv.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__floordiv.run
new file mode 100644
index 0000000..8965727
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__floordiv.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=floordiv -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__floormod.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__floormod.run
new file mode 100644
index 0000000..20b4099
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__floormod.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=floormod -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__greater.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__greater.run
new file mode 100644
index 0000000..f3c54df
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__greater.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=greater -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__greater_equal.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__greater_equal.run
new file mode 100644
index 0000000..a2d7846
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__greater_equal.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=greater_equal -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__igamma.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__igamma.run
new file mode 100644
index 0000000..bfb069b
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__igamma.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=igamma -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__igammac.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__igammac.run
new file mode 100644
index 0000000..03d33ea
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__igammac.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=igammac -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__imag.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__imag.run
new file mode 100644
index 0000000..36b113f
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__imag.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=imag -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__in_top_k.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__in_top_k.run
new file mode 100644
index 0000000..b2f93d5
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__in_top_k.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=in_top_k -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__invert_permutation.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__invert_permutation.run
new file mode 100644
index 0000000..fc71045
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__invert_permutation.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=invert_permutation -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__is_finite.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__is_finite.run
new file mode 100644
index 0000000..a952c95
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__is_finite.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=is_finite -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__is_inf.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__is_inf.run
new file mode 100644
index 0000000..d011a17
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__is_inf.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=is_inf -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__is_nan.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__is_nan.run
new file mode 100644
index 0000000..61a7173
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__is_nan.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=is_nan -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__is_non_decreasing.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__is_non_decreasing.run
new file mode 100644
index 0000000..2ce27d0
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__is_non_decreasing.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=is_non_decreasing -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__is_strictly_increasing.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__is_strictly_increasing.run
new file mode 100644
index 0000000..f6e6c4f
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__is_strictly_increasing.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=is_strictly_increasing -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__lbeta.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__lbeta.run
new file mode 100644
index 0000000..27d332c
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__lbeta.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=lbeta -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__less.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__less.run
new file mode 100644
index 0000000..64241cb
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__less.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=less -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__less_equal.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__less_equal.run
new file mode 100644
index 0000000..84b0a84
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__less_equal.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=less_equal -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__lgamma.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__lgamma.run
new file mode 100644
index 0000000..0694e91
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__lgamma.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=lgamma -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__log.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__log.run
new file mode 100644
index 0000000..95ebce9
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__log.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=log -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__log1p.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__log1p.run
new file mode 100644
index 0000000..5fd517b
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__log1p.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=log1p -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__log_sigmoid.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__log_sigmoid.run
new file mode 100644
index 0000000..2b6b88c
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__log_sigmoid.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=log_sigmoid -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__log_softmax.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__log_softmax.run
new file mode 100644
index 0000000..23a104f
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__log_softmax.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=log_softmax -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__logical_and.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__logical_and.run
new file mode 100644
index 0000000..44ad26b
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__logical_and.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=logical_and -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__logical_not.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__logical_not.run
new file mode 100644
index 0000000..84de67c
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__logical_not.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=logical_not -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__logical_or.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__logical_or.run
new file mode 100644
index 0000000..15a4ef6
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__logical_or.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=logical_or -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__logical_xor.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__logical_xor.run
new file mode 100644
index 0000000..6d34d6d
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__logical_xor.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=logical_xor -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__maximum.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__maximum.run
new file mode 100644
index 0000000..48d0f1b
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__maximum.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=maximum -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__minimum.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__minimum.run
new file mode 100644
index 0000000..823e4c7
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__minimum.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=minimum -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__mod.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__mod.run
new file mode 100644
index 0000000..6e7b061
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__mod.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=mod -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__multiply.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__multiply.run
new file mode 100644
index 0000000..83732de
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__multiply.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=multiply -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__multiply_no_nan.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__multiply_no_nan.run
new file mode 100644
index 0000000..55677cb
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__multiply_no_nan.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=multiply_no_nan -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__ndtri.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__ndtri.run
new file mode 100644
index 0000000..001a15d
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__ndtri.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=ndtri -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__negative.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__negative.run
new file mode 100644
index 0000000..38906fe
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__negative.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=negative -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__nextafter.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__nextafter.run
new file mode 100644
index 0000000..a4d3fc6
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__nextafter.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=nextafter -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__not_equal.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__not_equal.run
new file mode 100644
index 0000000..d921e9d
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__not_equal.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=not_equal -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__polygamma.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__polygamma.run
new file mode 100644
index 0000000..a529ecb
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__polygamma.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=polygamma -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__polyval.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__polyval.run
new file mode 100644
index 0000000..592d66b
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__polyval.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=polyval -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__pow.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__pow.run
new file mode 100644
index 0000000..5e30556
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__pow.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=pow -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__real.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__real.run
new file mode 100644
index 0000000..467d97a
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__real.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=real -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__reciprocal.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__reciprocal.run
new file mode 100644
index 0000000..c5d12ff
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__reciprocal.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=reciprocal -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__reciprocal_no_nan.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__reciprocal_no_nan.run
new file mode 100644
index 0000000..a597c2d
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__reciprocal_no_nan.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=reciprocal_no_nan -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__reduce_all.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__reduce_all.run
new file mode 100644
index 0000000..b8ccb5f
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__reduce_all.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=reduce_all -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__reduce_any.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__reduce_any.run
new file mode 100644
index 0000000..d0c3113
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__reduce_any.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=reduce_any -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__reduce_euclidean_norm.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__reduce_euclidean_norm.run
new file mode 100644
index 0000000..220e27b
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__reduce_euclidean_norm.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=reduce_euclidean_norm -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__reduce_logsumexp.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__reduce_logsumexp.run
new file mode 100644
index 0000000..bff8988
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__reduce_logsumexp.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=reduce_logsumexp -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__reduce_max.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__reduce_max.run
new file mode 100644
index 0000000..c9b43ce
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__reduce_max.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=reduce_max -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__reduce_mean.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__reduce_mean.run
new file mode 100644
index 0000000..1d3b569
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__reduce_mean.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=reduce_mean -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__reduce_min.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__reduce_min.run
new file mode 100644
index 0000000..b32af5d
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__reduce_min.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=reduce_min -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__reduce_prod.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__reduce_prod.run
new file mode 100644
index 0000000..9932922
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__reduce_prod.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=reduce_prod -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__reduce_std.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__reduce_std.run
new file mode 100644
index 0000000..2f06dfd
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__reduce_std.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=reduce_std -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__reduce_sum.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__reduce_sum.run
new file mode 100644
index 0000000..d083f59
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__reduce_sum.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=reduce_sum -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__reduce_variance.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__reduce_variance.run
new file mode 100644
index 0000000..5a7b5ab
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__reduce_variance.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=reduce_variance -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__rint.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__rint.run
new file mode 100644
index 0000000..5fd769f
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__rint.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=rint -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__round.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__round.run
new file mode 100644
index 0000000..d00f916
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__round.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=round -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__rsqrt.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__rsqrt.run
new file mode 100644
index 0000000..e810354
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__rsqrt.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=rsqrt -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__scalar_mul.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__scalar_mul.run
new file mode 100644
index 0000000..8bf5364
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__scalar_mul.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=scalar_mul -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__segment_max.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__segment_max.run
new file mode 100644
index 0000000..52c8e28
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__segment_max.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=segment_max -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__segment_mean.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__segment_mean.run
new file mode 100644
index 0000000..d6f5cc0
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__segment_mean.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=segment_mean -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__segment_min.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__segment_min.run
new file mode 100644
index 0000000..f50a6da
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__segment_min.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=segment_min -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__segment_prod.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__segment_prod.run
new file mode 100644
index 0000000..ce5b29e
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__segment_prod.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=segment_prod -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__segment_sum.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__segment_sum.run
new file mode 100644
index 0000000..630c313
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__segment_sum.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=segment_sum -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__sigmoid.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__sigmoid.run
new file mode 100644
index 0000000..a46ec12
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__sigmoid.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=sigmoid -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__sign.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__sign.run
new file mode 100644
index 0000000..a47cfc2
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__sign.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=sign -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__sin.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__sin.run
new file mode 100644
index 0000000..227cf83
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__sin.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=sin -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__sinh.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__sinh.run
new file mode 100644
index 0000000..e349354
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__sinh.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=sinh -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__sobol_sample.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__sobol_sample.run
new file mode 100644
index 0000000..cadb517
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__sobol_sample.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=sobol_sample -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__softmax.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__softmax.run
new file mode 100644
index 0000000..993faa8
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__softmax.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=softmax -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__softplus.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__softplus.run
new file mode 100644
index 0000000..a8cb325
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__softplus.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=softplus -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__softsign.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__softsign.run
new file mode 100644
index 0000000..903c979
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__softsign.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=softsign -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__sqrt.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__sqrt.run
new file mode 100644
index 0000000..37372e8
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__sqrt.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=sqrt -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__square.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__square.run
new file mode 100644
index 0000000..471caf3
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__square.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=square -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__squared_difference.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__squared_difference.run
new file mode 100644
index 0000000..2bf925b
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__squared_difference.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=squared_difference -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__subtract.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__subtract.run
new file mode 100644
index 0000000..933106f
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__subtract.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=subtract -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__tan.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__tan.run
new file mode 100644
index 0000000..3e628fc
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__tan.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=tan -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__tanh.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__tanh.run
new file mode 100644
index 0000000..1228997
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__tanh.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=tanh -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__top_k.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__top_k.run
new file mode 100644
index 0000000..4f29fe3
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__top_k.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=top_k -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__truediv.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__truediv.run
new file mode 100644
index 0000000..25a6224
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__truediv.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=truediv -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__unsorted_segment_max.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__unsorted_segment_max.run
new file mode 100644
index 0000000..33760d8
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__unsorted_segment_max.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=unsorted_segment_max -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__unsorted_segment_mean.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__unsorted_segment_mean.run
new file mode 100644
index 0000000..61e388f
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__unsorted_segment_mean.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=unsorted_segment_mean -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__unsorted_segment_min.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__unsorted_segment_min.run
new file mode 100644
index 0000000..204c3fd
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__unsorted_segment_min.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=unsorted_segment_min -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__unsorted_segment_prod.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__unsorted_segment_prod.run
new file mode 100644
index 0000000..43d74d5
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__unsorted_segment_prod.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=unsorted_segment_prod -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__unsorted_segment_sqrt_n.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__unsorted_segment_sqrt_n.run
new file mode 100644
index 0000000..30fd325
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__unsorted_segment_sqrt_n.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=unsorted_segment_sqrt_n -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__unsorted_segment_sum.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__unsorted_segment_sum.run
new file mode 100644
index 0000000..287ce7b
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__unsorted_segment_sum.run
@@ -0,0 +1,3 @@
+# XFAIL: *
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=unsorted_segment_sum -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__xdivy.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__xdivy.run
new file mode 100644
index 0000000..858b45e
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__xdivy.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=xdivy -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__xlog1py.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__xlog1py.run
new file mode 100644
index 0000000..504787c
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__xlog1py.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=xlog1py -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__xlogy.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__xlogy.run
new file mode 100644
index 0000000..077df5e
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__xlogy.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=xlogy -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__zero_fraction.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__zero_fraction.run
new file mode 100644
index 0000000..a02b744
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__zero_fraction.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=zero_fraction -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__zeta.run b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__zeta.run
new file mode 100644
index 0000000..bd9ae4c
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/llvmaot__zeta.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_llvmaot --dynamic_dims=false --functions=zeta -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__abs.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__abs.run
new file mode 100644
index 0000000..02acca3
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__abs.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=abs -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__accumulate_n.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__accumulate_n.run
new file mode 100644
index 0000000..6489425
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__accumulate_n.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=accumulate_n -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__acos.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__acos.run
new file mode 100644
index 0000000..ccb07e8
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__acos.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=acos -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__acosh.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__acosh.run
new file mode 100644
index 0000000..6f99b55
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__acosh.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=acosh -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__add.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__add.run
new file mode 100644
index 0000000..90d5e84
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__add.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=add -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__add_n.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__add_n.run
new file mode 100644
index 0000000..21bfe78
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__add_n.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=add_n -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__angle.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__angle.run
new file mode 100644
index 0000000..d9299ef
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__angle.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=angle -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__argmax.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__argmax.run
new file mode 100644
index 0000000..2c7b5a8
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__argmax.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=argmax -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__argmin.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__argmin.run
new file mode 100644
index 0000000..0693ebb
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__argmin.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=argmin -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__asin.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__asin.run
new file mode 100644
index 0000000..6d7746e
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__asin.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=asin -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__asinh.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__asinh.run
new file mode 100644
index 0000000..7b3ee42
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__asinh.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=asinh -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__atan.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__atan.run
new file mode 100644
index 0000000..61615b1
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__atan.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=atan -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__atan2.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__atan2.run
new file mode 100644
index 0000000..fd44c66
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__atan2.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=atan2 -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__atanh.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__atanh.run
new file mode 100644
index 0000000..7485c77
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__atanh.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=atanh -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__bessel_i0.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__bessel_i0.run
new file mode 100644
index 0000000..0d6661f
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__bessel_i0.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=bessel_i0 -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__bessel_i0e.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__bessel_i0e.run
new file mode 100644
index 0000000..8fafded
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__bessel_i0e.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=bessel_i0e -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__bessel_i1.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__bessel_i1.run
new file mode 100644
index 0000000..5f1e908
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__bessel_i1.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=bessel_i1 -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__bessel_i1e.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__bessel_i1e.run
new file mode 100644
index 0000000..8bfe832
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__bessel_i1e.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=bessel_i1e -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__betainc.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__betainc.run
new file mode 100644
index 0000000..ef57fe5
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__betainc.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=betainc -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__bincount.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__bincount.run
new file mode 100644
index 0000000..ab98069
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__bincount.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=bincount -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__ceil.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__ceil.run
new file mode 100644
index 0000000..9ae2435
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__ceil.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=ceil -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_abs.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_abs.run
new file mode 100644
index 0000000..02acca3
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_abs.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=abs -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_add.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_add.run
new file mode 100644
index 0000000..90d5e84
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_add.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=add -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_angle.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_angle.run
new file mode 100644
index 0000000..d9299ef
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_angle.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=angle -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_asinh.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_asinh.run
new file mode 100644
index 0000000..7b3ee42
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_asinh.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=asinh -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_atanh.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_atanh.run
new file mode 100644
index 0000000..7485c77
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_atanh.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=atanh -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_conj.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_conj.run
new file mode 100644
index 0000000..f924a0d
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_conj.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=conj -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_cos.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_cos.run
new file mode 100644
index 0000000..9a8c0f7
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_cos.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=cos -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_cosh.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_cosh.run
new file mode 100644
index 0000000..3ed9584
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_cosh.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=cosh -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_count_nonzero.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_count_nonzero.run
new file mode 100644
index 0000000..91fdd16
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_count_nonzero.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=count_nonzero -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_cumprod.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_cumprod.run
new file mode 100644
index 0000000..475bb85
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_cumprod.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=cumprod -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_cumsum.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_cumsum.run
new file mode 100644
index 0000000..4d7daab
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_cumsum.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=cumsum -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_divide.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_divide.run
new file mode 100644
index 0000000..4417b12
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_divide.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=divide -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_divide_no_nan.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_divide_no_nan.run
new file mode 100644
index 0000000..945205d
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_divide_no_nan.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=divide_no_nan -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_abs.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_abs.run
new file mode 100644
index 0000000..c9ca13e
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_abs.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=abs -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_add.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_add.run
new file mode 100644
index 0000000..3c9c223
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_add.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=add -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_angle.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_angle.run
new file mode 100644
index 0000000..8b859c4
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_angle.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=angle -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_asinh.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_asinh.run
new file mode 100644
index 0000000..1d0ef06
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_asinh.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=asinh -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_atanh.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_atanh.run
new file mode 100644
index 0000000..c2c717e
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_atanh.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=atanh -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_conj.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_conj.run
new file mode 100644
index 0000000..73b4409
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_conj.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=conj -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_cos.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_cos.run
new file mode 100644
index 0000000..8e0694b
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_cos.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=cos -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_cosh.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_cosh.run
new file mode 100644
index 0000000..2fe2b46
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_cosh.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=cosh -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_count_nonzero.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_count_nonzero.run
new file mode 100644
index 0000000..5c4bdb2
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_count_nonzero.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=count_nonzero -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_cumprod.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_cumprod.run
new file mode 100644
index 0000000..20fea57
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_cumprod.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=cumprod -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_cumsum.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_cumsum.run
new file mode 100644
index 0000000..832fa61
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_cumsum.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=cumsum -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_divide.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_divide.run
new file mode 100644
index 0000000..f1c818f
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_divide.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=divide -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_divide_no_nan.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_divide_no_nan.run
new file mode 100644
index 0000000..de338aa
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_divide_no_nan.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=divide_no_nan -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_exp.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_exp.run
new file mode 100644
index 0000000..e756626
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_exp.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=exp -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_expm1.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_expm1.run
new file mode 100644
index 0000000..27b6bb1
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_expm1.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=expm1 -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_imag.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_imag.run
new file mode 100644
index 0000000..6165e2c
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_imag.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=imag -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_l2_normalize.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_l2_normalize.run
new file mode 100644
index 0000000..51678d6
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_l2_normalize.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=l2_normalize -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_log.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_log.run
new file mode 100644
index 0000000..1407263
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_log.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=log -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_log1p.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_log1p.run
new file mode 100644
index 0000000..196593f
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_log1p.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=log1p -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_multiply.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_multiply.run
new file mode 100644
index 0000000..9ab3a0b
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_multiply.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=multiply -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_multiply_no_nan.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_multiply_no_nan.run
new file mode 100644
index 0000000..2294deb
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_multiply_no_nan.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=multiply_no_nan -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_negative.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_negative.run
new file mode 100644
index 0000000..dac6c4d
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_negative.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=negative -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_pow.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_pow.run
new file mode 100644
index 0000000..1e6ca55
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_pow.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=pow -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_real.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_real.run
new file mode 100644
index 0000000..f5f81c0
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_real.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=real -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_reciprocal.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_reciprocal.run
new file mode 100644
index 0000000..595b726
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_reciprocal.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=reciprocal -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_reciprocal_no_nan.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_reciprocal_no_nan.run
new file mode 100644
index 0000000..c126f98
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_reciprocal_no_nan.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=reciprocal_no_nan -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_reduce_euclidean_norm.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_reduce_euclidean_norm.run
new file mode 100644
index 0000000..a6f6122
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_reduce_euclidean_norm.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=reduce_euclidean_norm -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_reduce_std.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_reduce_std.run
new file mode 100644
index 0000000..f711012
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_reduce_std.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=reduce_std -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_reduce_variance.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_reduce_variance.run
new file mode 100644
index 0000000..86df659
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_reduce_variance.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=reduce_variance -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_rsqrt.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_rsqrt.run
new file mode 100644
index 0000000..10c81fe
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_rsqrt.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=rsqrt -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_sigmoid.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_sigmoid.run
new file mode 100644
index 0000000..c1b6c44
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_sigmoid.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=sigmoid -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_sign.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_sign.run
new file mode 100644
index 0000000..64c6765
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_sign.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=sign -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_sin.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_sin.run
new file mode 100644
index 0000000..37efdee
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_sin.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=sin -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_sinh.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_sinh.run
new file mode 100644
index 0000000..4d38a14
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_sinh.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=sinh -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_sqrt.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_sqrt.run
new file mode 100644
index 0000000..dce882d
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_sqrt.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=sqrt -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_square.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_square.run
new file mode 100644
index 0000000..ac26351
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_square.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=square -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_squared_difference.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_squared_difference.run
new file mode 100644
index 0000000..442fdf8
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_squared_difference.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=squared_difference -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_subtract.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_subtract.run
new file mode 100644
index 0000000..2722a2b
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_subtract.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=subtract -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_tan.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_tan.run
new file mode 100644
index 0000000..5967a56
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_tan.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=tan -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_tanh.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_tanh.run
new file mode 100644
index 0000000..2066d95
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_tanh.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=tanh -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_truediv.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_truediv.run
new file mode 100644
index 0000000..5eb3a8d
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_truediv.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=truediv -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_xdivy.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_xdivy.run
new file mode 100644
index 0000000..e07e28a
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_xdivy.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=xdivy -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_xlog1py.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_xlog1py.run
new file mode 100644
index 0000000..51010b9
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_xlog1py.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=xlog1py -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_xlogy.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_xlogy.run
new file mode 100644
index 0000000..423c912
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_xlogy.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=xlogy -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_zero_fraction.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_zero_fraction.run
new file mode 100644
index 0000000..a5541cb
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_dynamic_dim_zero_fraction.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=zero_fraction -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_exp.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_exp.run
new file mode 100644
index 0000000..b466878
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_exp.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=exp -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_expm1.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_expm1.run
new file mode 100644
index 0000000..0fed766
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_expm1.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=expm1 -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_imag.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_imag.run
new file mode 100644
index 0000000..a3eff58
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_imag.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=imag -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_l2_normalize.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_l2_normalize.run
new file mode 100644
index 0000000..0ee8322
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_l2_normalize.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=l2_normalize -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_log.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_log.run
new file mode 100644
index 0000000..03f5a95
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_log.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=log -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_log1p.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_log1p.run
new file mode 100644
index 0000000..90610ee
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_log1p.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=log1p -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_multiply.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_multiply.run
new file mode 100644
index 0000000..d5a555b
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_multiply.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=multiply -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_multiply_no_nan.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_multiply_no_nan.run
new file mode 100644
index 0000000..3399838
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_multiply_no_nan.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=multiply_no_nan -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_negative.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_negative.run
new file mode 100644
index 0000000..c854542
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_negative.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=negative -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_pow.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_pow.run
new file mode 100644
index 0000000..ea743b8
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_pow.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=pow -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_real.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_real.run
new file mode 100644
index 0000000..962b3a6
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_real.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=real -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_reciprocal.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_reciprocal.run
new file mode 100644
index 0000000..5758648
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_reciprocal.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=reciprocal -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_reciprocal_no_nan.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_reciprocal_no_nan.run
new file mode 100644
index 0000000..8e5a1f7
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_reciprocal_no_nan.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=reciprocal_no_nan -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_reduce_euclidean_norm.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_reduce_euclidean_norm.run
new file mode 100644
index 0000000..6d4c8bf
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_reduce_euclidean_norm.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=reduce_euclidean_norm -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_reduce_std.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_reduce_std.run
new file mode 100644
index 0000000..3da275d
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_reduce_std.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=reduce_std -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_reduce_variance.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_reduce_variance.run
new file mode 100644
index 0000000..4b32041
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_reduce_variance.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=reduce_variance -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_rsqrt.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_rsqrt.run
new file mode 100644
index 0000000..977c27f
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_rsqrt.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=rsqrt -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_sigmoid.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_sigmoid.run
new file mode 100644
index 0000000..c48c882
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_sigmoid.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=sigmoid -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_sign.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_sign.run
new file mode 100644
index 0000000..645622b
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_sign.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=sign -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_sin.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_sin.run
new file mode 100644
index 0000000..06eb77f
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_sin.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=sin -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_sinh.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_sinh.run
new file mode 100644
index 0000000..4f21985
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_sinh.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=sinh -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_sqrt.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_sqrt.run
new file mode 100644
index 0000000..984ac2b
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_sqrt.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=sqrt -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_square.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_square.run
new file mode 100644
index 0000000..aa2683d
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_square.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=square -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_squared_difference.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_squared_difference.run
new file mode 100644
index 0000000..a252051
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_squared_difference.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=squared_difference -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_subtract.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_subtract.run
new file mode 100644
index 0000000..c6f36ee
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_subtract.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=subtract -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_tan.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_tan.run
new file mode 100644
index 0000000..7972d2b
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_tan.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=tan -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_tanh.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_tanh.run
new file mode 100644
index 0000000..4dd5203
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_tanh.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=tanh -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_truediv.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_truediv.run
new file mode 100644
index 0000000..11d5a80
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_truediv.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=truediv -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_xdivy.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_xdivy.run
new file mode 100644
index 0000000..8b1a188
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_xdivy.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=xdivy -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_xlog1py.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_xlog1py.run
new file mode 100644
index 0000000..36c5904
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_xlog1py.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=xlog1py -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_xlogy.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_xlogy.run
new file mode 100644
index 0000000..28e5a12
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_xlogy.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=xlogy -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_zero_fraction.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_zero_fraction.run
new file mode 100644
index 0000000..4c6d4d0
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__complex_zero_fraction.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=zero_fraction -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__confusion_matrix.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__confusion_matrix.run
new file mode 100644
index 0000000..4610857
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__confusion_matrix.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=confusion_matrix -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__cos.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__cos.run
new file mode 100644
index 0000000..9a8c0f7
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__cos.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=cos -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__cosh.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__cosh.run
new file mode 100644
index 0000000..3ed9584
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__cosh.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=cosh -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__count_nonzero.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__count_nonzero.run
new file mode 100644
index 0000000..91fdd16
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__count_nonzero.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=count_nonzero -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__cumprod.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__cumprod.run
new file mode 100644
index 0000000..475bb85
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__cumprod.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=cumprod -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__cumsum.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__cumsum.run
new file mode 100644
index 0000000..4d7daab
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__cumsum.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=cumsum -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__cumulative_logsumexp.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__cumulative_logsumexp.run
new file mode 100644
index 0000000..c88bd5c
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__cumulative_logsumexp.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=cumulative_logsumexp -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__digamma.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__digamma.run
new file mode 100644
index 0000000..1906c47
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__digamma.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=digamma -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__divide.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__divide.run
new file mode 100644
index 0000000..4417b12
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__divide.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=divide -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__divide_no_nan.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__divide_no_nan.run
new file mode 100644
index 0000000..945205d
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__divide_no_nan.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=divide_no_nan -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_abs.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_abs.run
new file mode 100644
index 0000000..c9ca13e
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_abs.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=abs -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_accumulate_n.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_accumulate_n.run
new file mode 100644
index 0000000..c16d665
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_accumulate_n.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=accumulate_n -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_acos.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_acos.run
new file mode 100644
index 0000000..8e9bc65
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_acos.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=acos -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_acosh.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_acosh.run
new file mode 100644
index 0000000..d7013de
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_acosh.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=acosh -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_add.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_add.run
new file mode 100644
index 0000000..3c9c223
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_add.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=add -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_add_n.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_add_n.run
new file mode 100644
index 0000000..7d4810c
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_add_n.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=add_n -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_angle.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_angle.run
new file mode 100644
index 0000000..8b859c4
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_angle.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=angle -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_argmax.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_argmax.run
new file mode 100644
index 0000000..10da3bf
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_argmax.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=argmax -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_argmin.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_argmin.run
new file mode 100644
index 0000000..31d8e72
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_argmin.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=argmin -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_asin.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_asin.run
new file mode 100644
index 0000000..a02e877
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_asin.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=asin -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_asinh.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_asinh.run
new file mode 100644
index 0000000..1d0ef06
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_asinh.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=asinh -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_atan.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_atan.run
new file mode 100644
index 0000000..647f0f4
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_atan.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=atan -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_atan2.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_atan2.run
new file mode 100644
index 0000000..efddc8e
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_atan2.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=atan2 -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_atanh.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_atanh.run
new file mode 100644
index 0000000..c2c717e
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_atanh.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=atanh -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_bessel_i0.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_bessel_i0.run
new file mode 100644
index 0000000..e7db85a
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_bessel_i0.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=bessel_i0 -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_bessel_i0e.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_bessel_i0e.run
new file mode 100644
index 0000000..2c31e4c
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_bessel_i0e.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=bessel_i0e -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_bessel_i1.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_bessel_i1.run
new file mode 100644
index 0000000..f0c2761
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_bessel_i1.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=bessel_i1 -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_bessel_i1e.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_bessel_i1e.run
new file mode 100644
index 0000000..27b2df7
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_bessel_i1e.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=bessel_i1e -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_betainc.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_betainc.run
new file mode 100644
index 0000000..98d588a
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_betainc.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=betainc -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_bincount.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_bincount.run
new file mode 100644
index 0000000..15995b4
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_bincount.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=bincount -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_ceil.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_ceil.run
new file mode 100644
index 0000000..ecbe5e5
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_ceil.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=ceil -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_confusion_matrix.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_confusion_matrix.run
new file mode 100644
index 0000000..dce7460
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_confusion_matrix.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=confusion_matrix -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_cos.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_cos.run
new file mode 100644
index 0000000..8e0694b
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_cos.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=cos -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_cosh.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_cosh.run
new file mode 100644
index 0000000..2fe2b46
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_cosh.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=cosh -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_count_nonzero.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_count_nonzero.run
new file mode 100644
index 0000000..5c4bdb2
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_count_nonzero.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=count_nonzero -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_cumprod.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_cumprod.run
new file mode 100644
index 0000000..20fea57
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_cumprod.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=cumprod -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_cumsum.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_cumsum.run
new file mode 100644
index 0000000..832fa61
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_cumsum.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=cumsum -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_cumulative_logsumexp.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_cumulative_logsumexp.run
new file mode 100644
index 0000000..7fe6310
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_cumulative_logsumexp.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=cumulative_logsumexp -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_digamma.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_digamma.run
new file mode 100644
index 0000000..345dbd5
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_digamma.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=digamma -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_divide.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_divide.run
new file mode 100644
index 0000000..f1c818f
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_divide.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=divide -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_divide_no_nan.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_divide_no_nan.run
new file mode 100644
index 0000000..de338aa
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_divide_no_nan.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=divide_no_nan -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_equal.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_equal.run
new file mode 100644
index 0000000..63ecdc6
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_equal.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=equal -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_erf.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_erf.run
new file mode 100644
index 0000000..32b0b76
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_erf.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=erf -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_erfc.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_erfc.run
new file mode 100644
index 0000000..a0e4437
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_erfc.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=erfc -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_erfinv.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_erfinv.run
new file mode 100644
index 0000000..4eb0457
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_erfinv.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=erfinv -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_exp.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_exp.run
new file mode 100644
index 0000000..e756626
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_exp.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=exp -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_expm1.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_expm1.run
new file mode 100644
index 0000000..27b6bb1
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_expm1.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=expm1 -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_floor.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_floor.run
new file mode 100644
index 0000000..7466679
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_floor.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=floor -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_floordiv.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_floordiv.run
new file mode 100644
index 0000000..cee3817
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_floordiv.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=floordiv -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_floormod.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_floormod.run
new file mode 100644
index 0000000..1491510
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_floormod.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=floormod -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_greater.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_greater.run
new file mode 100644
index 0000000..6edb7cd
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_greater.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=greater -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_greater_equal.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_greater_equal.run
new file mode 100644
index 0000000..087ecc5
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_greater_equal.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=greater_equal -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_igamma.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_igamma.run
new file mode 100644
index 0000000..1a729f8
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_igamma.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=igamma -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_igammac.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_igammac.run
new file mode 100644
index 0000000..2d00c27
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_igammac.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=igammac -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_imag.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_imag.run
new file mode 100644
index 0000000..6165e2c
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_imag.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=imag -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_in_top_k.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_in_top_k.run
new file mode 100644
index 0000000..7dac748
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_in_top_k.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=in_top_k -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_invert_permutation.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_invert_permutation.run
new file mode 100644
index 0000000..dbb0c8b
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_invert_permutation.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=invert_permutation -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_is_finite.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_is_finite.run
new file mode 100644
index 0000000..93a31fd
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_is_finite.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=is_finite -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_is_inf.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_is_inf.run
new file mode 100644
index 0000000..fc4af0f
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_is_inf.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=is_inf -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_is_nan.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_is_nan.run
new file mode 100644
index 0000000..8b1e755
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_is_nan.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=is_nan -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_is_non_decreasing.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_is_non_decreasing.run
new file mode 100644
index 0000000..01e0f44
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_is_non_decreasing.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=is_non_decreasing -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_is_strictly_increasing.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_is_strictly_increasing.run
new file mode 100644
index 0000000..4d184be
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_is_strictly_increasing.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=is_strictly_increasing -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_lbeta.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_lbeta.run
new file mode 100644
index 0000000..9be0147
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_lbeta.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=lbeta -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_less.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_less.run
new file mode 100644
index 0000000..2d38edb
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_less.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=less -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_less_equal.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_less_equal.run
new file mode 100644
index 0000000..7ae361e
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_less_equal.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=less_equal -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_lgamma.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_lgamma.run
new file mode 100644
index 0000000..e0f65dd
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_lgamma.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=lgamma -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_log.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_log.run
new file mode 100644
index 0000000..1407263
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_log.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=log -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_log1p.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_log1p.run
new file mode 100644
index 0000000..196593f
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_log1p.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=log1p -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_log_sigmoid.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_log_sigmoid.run
new file mode 100644
index 0000000..27c1177
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_log_sigmoid.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=log_sigmoid -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_log_softmax.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_log_softmax.run
new file mode 100644
index 0000000..5e98b97
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_log_softmax.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=log_softmax -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_logical_and.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_logical_and.run
new file mode 100644
index 0000000..a9a425a
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_logical_and.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=logical_and -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_logical_not.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_logical_not.run
new file mode 100644
index 0000000..7769c5c
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_logical_not.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=logical_not -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_logical_or.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_logical_or.run
new file mode 100644
index 0000000..2f0c4b8
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_logical_or.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=logical_or -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_logical_xor.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_logical_xor.run
new file mode 100644
index 0000000..e50c79e
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_logical_xor.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=logical_xor -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_maximum.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_maximum.run
new file mode 100644
index 0000000..2280232
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_maximum.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=maximum -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_minimum.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_minimum.run
new file mode 100644
index 0000000..3ed272c
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_minimum.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=minimum -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_mod.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_mod.run
new file mode 100644
index 0000000..cd8e4c9
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_mod.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=mod -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_multiply.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_multiply.run
new file mode 100644
index 0000000..9ab3a0b
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_multiply.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=multiply -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_multiply_no_nan.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_multiply_no_nan.run
new file mode 100644
index 0000000..2294deb
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_multiply_no_nan.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=multiply_no_nan -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_ndtri.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_ndtri.run
new file mode 100644
index 0000000..7930854
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_ndtri.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=ndtri -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_negative.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_negative.run
new file mode 100644
index 0000000..dac6c4d
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_negative.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=negative -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_nextafter.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_nextafter.run
new file mode 100644
index 0000000..b83ff2a
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_nextafter.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=nextafter -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_not_equal.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_not_equal.run
new file mode 100644
index 0000000..7f4e158
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_not_equal.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=not_equal -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_polygamma.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_polygamma.run
new file mode 100644
index 0000000..26ea2ea
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_polygamma.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=polygamma -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_polyval.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_polyval.run
new file mode 100644
index 0000000..cae0508
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_polyval.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=polyval -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_pow.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_pow.run
new file mode 100644
index 0000000..1e6ca55
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_pow.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=pow -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_real.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_real.run
new file mode 100644
index 0000000..f5f81c0
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_real.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=real -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_reciprocal.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_reciprocal.run
new file mode 100644
index 0000000..595b726
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_reciprocal.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=reciprocal -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_reciprocal_no_nan.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_reciprocal_no_nan.run
new file mode 100644
index 0000000..c126f98
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_reciprocal_no_nan.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=reciprocal_no_nan -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_reduce_all.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_reduce_all.run
new file mode 100644
index 0000000..4a40dfb
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_reduce_all.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=reduce_all -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_reduce_any.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_reduce_any.run
new file mode 100644
index 0000000..b4775ab
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_reduce_any.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=reduce_any -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_reduce_euclidean_norm.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_reduce_euclidean_norm.run
new file mode 100644
index 0000000..a6f6122
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_reduce_euclidean_norm.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=reduce_euclidean_norm -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_reduce_logsumexp.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_reduce_logsumexp.run
new file mode 100644
index 0000000..34f48df
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_reduce_logsumexp.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=reduce_logsumexp -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_reduce_max.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_reduce_max.run
new file mode 100644
index 0000000..90873eb
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_reduce_max.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=reduce_max -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_reduce_mean.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_reduce_mean.run
new file mode 100644
index 0000000..3c39588
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_reduce_mean.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=reduce_mean -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_reduce_min.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_reduce_min.run
new file mode 100644
index 0000000..4a96e88
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_reduce_min.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=reduce_min -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_reduce_prod.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_reduce_prod.run
new file mode 100644
index 0000000..d58114b
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_reduce_prod.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=reduce_prod -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_reduce_std.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_reduce_std.run
new file mode 100644
index 0000000..f711012
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_reduce_std.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=reduce_std -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_reduce_sum.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_reduce_sum.run
new file mode 100644
index 0000000..5bbc3d3
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_reduce_sum.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=reduce_sum -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_reduce_variance.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_reduce_variance.run
new file mode 100644
index 0000000..86df659
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_reduce_variance.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=reduce_variance -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_rint.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_rint.run
new file mode 100644
index 0000000..dad3f99
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_rint.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=rint -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_round.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_round.run
new file mode 100644
index 0000000..5f1dfae
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_round.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=round -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_rsqrt.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_rsqrt.run
new file mode 100644
index 0000000..10c81fe
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_rsqrt.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=rsqrt -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_scalar_mul.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_scalar_mul.run
new file mode 100644
index 0000000..f8c6748
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_scalar_mul.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=scalar_mul -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_segment_max.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_segment_max.run
new file mode 100644
index 0000000..a2561fa
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_segment_max.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=segment_max -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_segment_mean.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_segment_mean.run
new file mode 100644
index 0000000..ec277d8
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_segment_mean.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=segment_mean -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_segment_min.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_segment_min.run
new file mode 100644
index 0000000..ec53c8f
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_segment_min.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=segment_min -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_segment_prod.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_segment_prod.run
new file mode 100644
index 0000000..fdee7e7
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_segment_prod.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=segment_prod -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_segment_sum.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_segment_sum.run
new file mode 100644
index 0000000..843d36f
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_segment_sum.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=segment_sum -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_sigmoid.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_sigmoid.run
new file mode 100644
index 0000000..c1b6c44
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_sigmoid.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=sigmoid -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_sign.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_sign.run
new file mode 100644
index 0000000..64c6765
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_sign.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=sign -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_sin.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_sin.run
new file mode 100644
index 0000000..37efdee
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_sin.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=sin -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_sinh.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_sinh.run
new file mode 100644
index 0000000..4d38a14
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_sinh.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=sinh -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_sobol_sample.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_sobol_sample.run
new file mode 100644
index 0000000..9f2afbb
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_sobol_sample.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=sobol_sample -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_softmax.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_softmax.run
new file mode 100644
index 0000000..40080fe
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_softmax.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=softmax -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_softplus.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_softplus.run
new file mode 100644
index 0000000..8d3bf84
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_softplus.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=softplus -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_softsign.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_softsign.run
new file mode 100644
index 0000000..8c697c5
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_softsign.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=softsign -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_sqrt.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_sqrt.run
new file mode 100644
index 0000000..dce882d
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_sqrt.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=sqrt -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_square.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_square.run
new file mode 100644
index 0000000..ac26351
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_square.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=square -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_squared_difference.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_squared_difference.run
new file mode 100644
index 0000000..442fdf8
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_squared_difference.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=squared_difference -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_subtract.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_subtract.run
new file mode 100644
index 0000000..2722a2b
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_subtract.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=subtract -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_tan.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_tan.run
new file mode 100644
index 0000000..5967a56
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_tan.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=tan -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_tanh.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_tanh.run
new file mode 100644
index 0000000..2066d95
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_tanh.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=tanh -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_top_k.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_top_k.run
new file mode 100644
index 0000000..ff42a97
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_top_k.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=top_k -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_truediv.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_truediv.run
new file mode 100644
index 0000000..5eb3a8d
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_truediv.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=truediv -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_unsorted_segment_max.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_unsorted_segment_max.run
new file mode 100644
index 0000000..4740ba1
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_unsorted_segment_max.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=unsorted_segment_max -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_unsorted_segment_mean.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_unsorted_segment_mean.run
new file mode 100644
index 0000000..8ee909c
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_unsorted_segment_mean.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=unsorted_segment_mean -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_unsorted_segment_min.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_unsorted_segment_min.run
new file mode 100644
index 0000000..31103c9
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_unsorted_segment_min.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=unsorted_segment_min -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_unsorted_segment_prod.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_unsorted_segment_prod.run
new file mode 100644
index 0000000..02de9f9
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_unsorted_segment_prod.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=unsorted_segment_prod -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_unsorted_segment_sqrt_n.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_unsorted_segment_sqrt_n.run
new file mode 100644
index 0000000..8ff8981
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_unsorted_segment_sqrt_n.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=unsorted_segment_sqrt_n -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_unsorted_segment_sum.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_unsorted_segment_sum.run
new file mode 100644
index 0000000..01519b3
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_unsorted_segment_sum.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=unsorted_segment_sum -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_xdivy.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_xdivy.run
new file mode 100644
index 0000000..e07e28a
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_xdivy.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=xdivy -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_xlog1py.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_xlog1py.run
new file mode 100644
index 0000000..51010b9
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_xlog1py.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=xlog1py -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_xlogy.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_xlogy.run
new file mode 100644
index 0000000..423c912
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_xlogy.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=xlogy -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_zero_fraction.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_zero_fraction.run
new file mode 100644
index 0000000..a5541cb
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_zero_fraction.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=zero_fraction -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_zeta.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_zeta.run
new file mode 100644
index 0000000..fc02c95
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__dynamic_dim_zeta.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=true --functions=zeta -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__equal.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__equal.run
new file mode 100644
index 0000000..db1ed03
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__equal.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=equal -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__erf.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__erf.run
new file mode 100644
index 0000000..930b0dd
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__erf.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=erf -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__erfc.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__erfc.run
new file mode 100644
index 0000000..2bb782d
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__erfc.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=erfc -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__erfinv.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__erfinv.run
new file mode 100644
index 0000000..03f6074
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__erfinv.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=erfinv -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__exp.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__exp.run
new file mode 100644
index 0000000..b466878
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__exp.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=exp -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__expm1.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__expm1.run
new file mode 100644
index 0000000..0fed766
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__expm1.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=expm1 -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__floor.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__floor.run
new file mode 100644
index 0000000..f48eda0
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__floor.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=floor -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__floordiv.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__floordiv.run
new file mode 100644
index 0000000..3f56600
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__floordiv.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=floordiv -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__floormod.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__floormod.run
new file mode 100644
index 0000000..2a258d5
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__floormod.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=floormod -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__greater.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__greater.run
new file mode 100644
index 0000000..a57a7b5
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__greater.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=greater -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__greater_equal.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__greater_equal.run
new file mode 100644
index 0000000..b94cfad
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__greater_equal.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=greater_equal -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__igamma.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__igamma.run
new file mode 100644
index 0000000..b15975d
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__igamma.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=igamma -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__igammac.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__igammac.run
new file mode 100644
index 0000000..d76d490
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__igammac.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=igammac -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__imag.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__imag.run
new file mode 100644
index 0000000..a3eff58
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__imag.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=imag -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__in_top_k.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__in_top_k.run
new file mode 100644
index 0000000..afc1e3b
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__in_top_k.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=in_top_k -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__invert_permutation.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__invert_permutation.run
new file mode 100644
index 0000000..a82cb7c
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__invert_permutation.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=invert_permutation -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__is_finite.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__is_finite.run
new file mode 100644
index 0000000..1bc3b6e
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__is_finite.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=is_finite -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__is_inf.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__is_inf.run
new file mode 100644
index 0000000..d083fe6
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__is_inf.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=is_inf -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__is_nan.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__is_nan.run
new file mode 100644
index 0000000..1f6f2d7
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__is_nan.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=is_nan -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__is_non_decreasing.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__is_non_decreasing.run
new file mode 100644
index 0000000..f92965b
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__is_non_decreasing.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=is_non_decreasing -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__is_strictly_increasing.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__is_strictly_increasing.run
new file mode 100644
index 0000000..cbebf09
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__is_strictly_increasing.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=is_strictly_increasing -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__lbeta.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__lbeta.run
new file mode 100644
index 0000000..df45319
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__lbeta.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=lbeta -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__less.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__less.run
new file mode 100644
index 0000000..b3db132
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__less.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=less -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__less_equal.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__less_equal.run
new file mode 100644
index 0000000..84b85e3
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__less_equal.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=less_equal -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__lgamma.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__lgamma.run
new file mode 100644
index 0000000..39fa196
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__lgamma.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=lgamma -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__log.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__log.run
new file mode 100644
index 0000000..03f5a95
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__log.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=log -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__log1p.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__log1p.run
new file mode 100644
index 0000000..90610ee
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__log1p.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=log1p -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__log_sigmoid.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__log_sigmoid.run
new file mode 100644
index 0000000..e91f573
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__log_sigmoid.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=log_sigmoid -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__log_softmax.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__log_softmax.run
new file mode 100644
index 0000000..6de4ab9
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__log_softmax.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=log_softmax -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__logical_and.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__logical_and.run
new file mode 100644
index 0000000..49956bb
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__logical_and.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=logical_and -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__logical_not.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__logical_not.run
new file mode 100644
index 0000000..1595861
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__logical_not.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=logical_not -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__logical_or.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__logical_or.run
new file mode 100644
index 0000000..95b1406
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__logical_or.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=logical_or -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__logical_xor.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__logical_xor.run
new file mode 100644
index 0000000..da59c0d
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__logical_xor.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=logical_xor -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__maximum.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__maximum.run
new file mode 100644
index 0000000..0f6f8c2
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__maximum.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=maximum -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__minimum.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__minimum.run
new file mode 100644
index 0000000..5810527
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__minimum.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=minimum -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__mod.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__mod.run
new file mode 100644
index 0000000..835deaf
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__mod.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=mod -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__multiply.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__multiply.run
new file mode 100644
index 0000000..d5a555b
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__multiply.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=multiply -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__multiply_no_nan.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__multiply_no_nan.run
new file mode 100644
index 0000000..3399838
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__multiply_no_nan.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=multiply_no_nan -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__ndtri.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__ndtri.run
new file mode 100644
index 0000000..202dd1a
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__ndtri.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=ndtri -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__negative.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__negative.run
new file mode 100644
index 0000000..c854542
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__negative.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=negative -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__nextafter.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__nextafter.run
new file mode 100644
index 0000000..cacab9f
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__nextafter.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=nextafter -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__not_equal.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__not_equal.run
new file mode 100644
index 0000000..0f1ea53
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__not_equal.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=not_equal -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__polygamma.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__polygamma.run
new file mode 100644
index 0000000..1fb9127
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__polygamma.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=polygamma -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__polyval.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__polyval.run
new file mode 100644
index 0000000..3bd783e
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__polyval.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=polyval -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__pow.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__pow.run
new file mode 100644
index 0000000..ea743b8
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__pow.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=pow -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__real.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__real.run
new file mode 100644
index 0000000..962b3a6
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__real.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=real -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__reciprocal.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__reciprocal.run
new file mode 100644
index 0000000..5758648
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__reciprocal.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=reciprocal -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__reciprocal_no_nan.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__reciprocal_no_nan.run
new file mode 100644
index 0000000..8e5a1f7
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__reciprocal_no_nan.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=reciprocal_no_nan -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__reduce_all.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__reduce_all.run
new file mode 100644
index 0000000..36a922a
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__reduce_all.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=reduce_all -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__reduce_any.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__reduce_any.run
new file mode 100644
index 0000000..d0f44e3
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__reduce_any.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=reduce_any -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__reduce_euclidean_norm.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__reduce_euclidean_norm.run
new file mode 100644
index 0000000..6d4c8bf
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__reduce_euclidean_norm.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=reduce_euclidean_norm -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__reduce_logsumexp.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__reduce_logsumexp.run
new file mode 100644
index 0000000..da2c600
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__reduce_logsumexp.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=reduce_logsumexp -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__reduce_max.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__reduce_max.run
new file mode 100644
index 0000000..e83bbc9
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__reduce_max.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=reduce_max -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__reduce_mean.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__reduce_mean.run
new file mode 100644
index 0000000..27bfb4f
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__reduce_mean.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=reduce_mean -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__reduce_min.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__reduce_min.run
new file mode 100644
index 0000000..4eb6ab1
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__reduce_min.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=reduce_min -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__reduce_prod.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__reduce_prod.run
new file mode 100644
index 0000000..90b7fac
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__reduce_prod.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=reduce_prod -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__reduce_std.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__reduce_std.run
new file mode 100644
index 0000000..3da275d
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__reduce_std.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=reduce_std -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__reduce_sum.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__reduce_sum.run
new file mode 100644
index 0000000..5394792
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__reduce_sum.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=reduce_sum -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__reduce_variance.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__reduce_variance.run
new file mode 100644
index 0000000..4b32041
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__reduce_variance.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=reduce_variance -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__rint.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__rint.run
new file mode 100644
index 0000000..ef4a9b7
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__rint.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=rint -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__round.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__round.run
new file mode 100644
index 0000000..cae356e
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__round.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=round -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__rsqrt.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__rsqrt.run
new file mode 100644
index 0000000..977c27f
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__rsqrt.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=rsqrt -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__scalar_mul.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__scalar_mul.run
new file mode 100644
index 0000000..ef93e08
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__scalar_mul.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=scalar_mul -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__segment_max.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__segment_max.run
new file mode 100644
index 0000000..b6761d6
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__segment_max.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=segment_max -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__segment_mean.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__segment_mean.run
new file mode 100644
index 0000000..32ec261
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__segment_mean.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=segment_mean -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__segment_min.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__segment_min.run
new file mode 100644
index 0000000..13628ba
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__segment_min.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=segment_min -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__segment_prod.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__segment_prod.run
new file mode 100644
index 0000000..8c80e3a
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__segment_prod.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=segment_prod -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__segment_sum.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__segment_sum.run
new file mode 100644
index 0000000..9dba1bf
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__segment_sum.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=segment_sum -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__sigmoid.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__sigmoid.run
new file mode 100644
index 0000000..c48c882
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__sigmoid.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=sigmoid -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__sign.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__sign.run
new file mode 100644
index 0000000..645622b
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__sign.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=sign -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__sin.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__sin.run
new file mode 100644
index 0000000..06eb77f
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__sin.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=sin -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__sinh.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__sinh.run
new file mode 100644
index 0000000..4f21985
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__sinh.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=sinh -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__sobol_sample.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__sobol_sample.run
new file mode 100644
index 0000000..9e44b0e
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__sobol_sample.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=sobol_sample -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__softmax.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__softmax.run
new file mode 100644
index 0000000..9aec2ef
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__softmax.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=softmax -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__softplus.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__softplus.run
new file mode 100644
index 0000000..e0bbfd8
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__softplus.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=softplus -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__softsign.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__softsign.run
new file mode 100644
index 0000000..d050e08
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__softsign.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=softsign -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__sqrt.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__sqrt.run
new file mode 100644
index 0000000..984ac2b
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__sqrt.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=sqrt -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__square.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__square.run
new file mode 100644
index 0000000..aa2683d
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__square.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=square -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__squared_difference.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__squared_difference.run
new file mode 100644
index 0000000..a252051
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__squared_difference.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=squared_difference -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__subtract.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__subtract.run
new file mode 100644
index 0000000..c6f36ee
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__subtract.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=subtract -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__tan.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__tan.run
new file mode 100644
index 0000000..7972d2b
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__tan.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=tan -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__tanh.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__tanh.run
new file mode 100644
index 0000000..4dd5203
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__tanh.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=tanh -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__top_k.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__top_k.run
new file mode 100644
index 0000000..ed57512
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__top_k.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=top_k -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__truediv.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__truediv.run
new file mode 100644
index 0000000..11d5a80
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__truediv.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=truediv -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__unsorted_segment_max.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__unsorted_segment_max.run
new file mode 100644
index 0000000..aa2fc9c
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__unsorted_segment_max.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=unsorted_segment_max -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__unsorted_segment_mean.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__unsorted_segment_mean.run
new file mode 100644
index 0000000..bf122a1
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__unsorted_segment_mean.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=unsorted_segment_mean -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__unsorted_segment_min.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__unsorted_segment_min.run
new file mode 100644
index 0000000..78a8e94
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__unsorted_segment_min.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=unsorted_segment_min -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__unsorted_segment_prod.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__unsorted_segment_prod.run
new file mode 100644
index 0000000..81345f7
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__unsorted_segment_prod.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=unsorted_segment_prod -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__unsorted_segment_sqrt_n.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__unsorted_segment_sqrt_n.run
new file mode 100644
index 0000000..edcb081
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__unsorted_segment_sqrt_n.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=unsorted_segment_sqrt_n -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__unsorted_segment_sum.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__unsorted_segment_sum.run
new file mode 100644
index 0000000..a09cb14
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__unsorted_segment_sum.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=unsorted_segment_sum -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__xdivy.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__xdivy.run
new file mode 100644
index 0000000..8b1a188
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__xdivy.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=xdivy -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__xlog1py.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__xlog1py.run
new file mode 100644
index 0000000..36c5904
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__xlog1py.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=xlog1py -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__xlogy.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__xlogy.run
new file mode 100644
index 0000000..28e5a12
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__xlogy.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=xlogy -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__zero_fraction.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__zero_fraction.run
new file mode 100644
index 0000000..4c6d4d0
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__zero_fraction.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=zero_fraction -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/math/vulkan__zeta.run b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__zeta.run
new file mode 100644
index 0000000..a11399c
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/math/vulkan__zeta.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.math.math_test --target_backends=iree_vulkan --dynamic_dims=false --functions=zeta -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__batch_norm.run b/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__batch_norm.run
new file mode 100644
index 0000000..01b2532
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__batch_norm.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.uncategorized.batch_norm_test --target_backends=iree_llvmaot -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__batch_to_space_nd.run b/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__batch_to_space_nd.run
new file mode 100644
index 0000000..ded2c7b
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__batch_to_space_nd.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.uncategorized.batch_to_space_nd_test --target_backends=iree_llvmaot -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__broadcast_to.run b/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__broadcast_to.run
new file mode 100644
index 0000000..4fa6fd1
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__broadcast_to.run
@@ -0,0 +1,3 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.uncategorized.broadcast_to_test --target_backends=iree_llvmaot -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__broadcasting.run b/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__broadcasting.run
new file mode 100644
index 0000000..c18b2fb
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__broadcasting.run
@@ -0,0 +1,3 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.uncategorized.broadcasting_test --target_backends=iree_llvmaot -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__concat.run b/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__concat.run
new file mode 100644
index 0000000..e8d785d
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__concat.run
@@ -0,0 +1,3 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.uncategorized.concat_test --target_backends=iree_llvmaot -artifacts_dir=%t
+
diff --git a/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__control_flow.run b/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__control_flow.run
new file mode 100644
index 0000000..8eeb139
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__control_flow.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.uncategorized.control_flow_test --target_backends=iree_llvmaot -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__conv.run b/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__conv.run
new file mode 100644
index 0000000..e18bd35
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__conv.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.uncategorized.conv_test --target_backends=iree_llvmaot -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__conv_transpose.run b/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__conv_transpose.run
new file mode 100644
index 0000000..1d40cb3
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__conv_transpose.run
@@ -0,0 +1,3 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.uncategorized.conv_transpose_test --target_backends=iree_llvmaot -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__depth_conv.run b/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__depth_conv.run
new file mode 100644
index 0000000..631ee2f
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__depth_conv.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.uncategorized.depth_conv_test --target_backends=iree_llvmaot -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__dynamic_mlp.run b/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__dynamic_mlp.run
new file mode 100644
index 0000000..7213d3f
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__dynamic_mlp.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.uncategorized.dynamic_mlp_test --target_backends=iree_llvmaot -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__dynamic_mlp_relu.run b/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__dynamic_mlp_relu.run
new file mode 100644
index 0000000..44ba9a7
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__dynamic_mlp_relu.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.uncategorized.dynamic_mlp_relu_test --target_backends=iree_llvmaot -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__einsum_dynamic.run b/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__einsum_dynamic.run
new file mode 100644
index 0000000..2df0bf1
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__einsum_dynamic.run
@@ -0,0 +1,3 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.uncategorized.einsum_dynamic_test --target_backends=iree_llvmaot -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__einsum_static.run b/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__einsum_static.run
new file mode 100644
index 0000000..d75a46e
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__einsum_static.run
@@ -0,0 +1,3 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.uncategorized.einsum_static_test --target_backends=iree_llvmaot -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__einsum_vector.run b/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__einsum_vector.run
new file mode 100644
index 0000000..b8fa11e
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__einsum_vector.run
@@ -0,0 +1,3 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.uncategorized.einsum_vector_test --target_backends=iree_llvmaot -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__fft.run b/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__fft.run
new file mode 100644
index 0000000..9b0c301
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__fft.run
@@ -0,0 +1,3 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.uncategorized.fft_test --target_backends=iree_llvmaot -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__fill.run b/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__fill.run
new file mode 100644
index 0000000..3b2ea72
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__fill.run
@@ -0,0 +1,3 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.uncategorized.fill_test --target_backends=iree_llvmaot -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__gather.run b/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__gather.run
new file mode 100644
index 0000000..2e3002c
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__gather.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.uncategorized.gather_test --target_backends=iree_llvmaot -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__image_resize.run b/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__image_resize.run
new file mode 100644
index 0000000..9cc6c5c
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__image_resize.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.uncategorized.image_resize_test --target_backends=iree_llvmaot -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__linspace.run b/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__linspace.run
new file mode 100644
index 0000000..9488c16
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__linspace.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.uncategorized.linspace_test --target_backends=iree_llvmaot -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__mandelbrot.run b/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__mandelbrot.run
new file mode 100644
index 0000000..1edc736
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__mandelbrot.run
@@ -0,0 +1,3 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.uncategorized.mandelbrot_test --target_backends=iree_llvmaot -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__matrix_ops_dynamic.run b/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__matrix_ops_dynamic.run
new file mode 100644
index 0000000..34ea59a
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__matrix_ops_dynamic.run
@@ -0,0 +1,3 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.uncategorized.matrix_ops_dynamic_test --target_backends=iree_llvmaot -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__matrix_ops_static.run b/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__matrix_ops_static.run
new file mode 100644
index 0000000..1912c33
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__matrix_ops_static.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.uncategorized.matrix_ops_static_test --target_backends=iree_llvmaot -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__mobile_bert_squad.run b/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__mobile_bert_squad.run
new file mode 100644
index 0000000..cc7d3a6
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__mobile_bert_squad.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.uncategorized.mobile_bert_squad_test --target_backends=iree_llvmaot -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__pytree.run b/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__pytree.run
new file mode 100644
index 0000000..30f3155
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__pytree.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.uncategorized.pytree_test --target_backends=iree_llvmaot -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__quantization.run b/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__quantization.run
new file mode 100644
index 0000000..2ab6d1b
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__quantization.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.uncategorized.quantization_test --target_backends=iree_llvmaot -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__quantization_dyn.run b/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__quantization_dyn.run
new file mode 100644
index 0000000..146dca1
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__quantization_dyn.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.uncategorized.quantization_dyn_test --target_backends=iree_llvmaot -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__range.run b/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__range.run
new file mode 100644
index 0000000..95792cc
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__range.run
@@ -0,0 +1,3 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.uncategorized.range_test --target_backends=iree_llvmaot -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__resource_ops.run b/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__resource_ops.run
new file mode 100644
index 0000000..e6065d7
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__resource_ops.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.uncategorized.resource_ops_test --target_backends=iree_llvmaot -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__ring_buffer.run b/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__ring_buffer.run
new file mode 100644
index 0000000..e9d9885
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__ring_buffer.run
@@ -0,0 +1,3 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.uncategorized.ring_buffer_test --target_backends=iree_llvmaot -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__scatter_update.run b/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__scatter_update.run
new file mode 100644
index 0000000..e6f65ae
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__scatter_update.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.uncategorized.scatter_update_test --target_backends=iree_llvmaot -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__simple_arithmetic.run b/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__simple_arithmetic.run
new file mode 100644
index 0000000..271f9a0
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__simple_arithmetic.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.uncategorized.simple_arithmetic_test --target_backends=iree_llvmaot -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__simple_stateful.run b/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__simple_stateful.run
new file mode 100644
index 0000000..107e71b
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__simple_stateful.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.uncategorized.simple_stateful_test --target_backends=iree_llvmaot -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__sliding_window.run b/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__sliding_window.run
new file mode 100644
index 0000000..d0a6735
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__sliding_window.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.uncategorized.sliding_window_test --target_backends=iree_llvmaot -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__space_to_batch_nd.run b/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__space_to_batch_nd.run
new file mode 100644
index 0000000..f4a55e7
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/uncategorized/llvmaot__space_to_batch_nd.run
@@ -0,0 +1,2 @@
+# REQUIRES: llvmaot
+# RUN: %PYTHON -m iree_tf_tests.uncategorized.space_to_batch_nd_test --target_backends=iree_llvmaot -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__batch_norm.run b/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__batch_norm.run
new file mode 100644
index 0000000..af267c2
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__batch_norm.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.uncategorized.batch_norm_test --target_backends=iree_vulkan -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__batch_to_space_nd.run b/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__batch_to_space_nd.run
new file mode 100644
index 0000000..37fda46
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__batch_to_space_nd.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.uncategorized.batch_to_space_nd_test --target_backends=iree_vulkan -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__broadcast_to.run b/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__broadcast_to.run
new file mode 100644
index 0000000..6a5212f
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__broadcast_to.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.uncategorized.broadcast_to_test --target_backends=iree_vulkan -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__broadcasting.run b/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__broadcasting.run
new file mode 100644
index 0000000..1351771
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__broadcasting.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.uncategorized.broadcasting_test --target_backends=iree_vulkan -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__concat.run b/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__concat.run
new file mode 100644
index 0000000..5c2cd92
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__concat.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.uncategorized.concat_test --target_backends=iree_vulkan -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__control_flow.run b/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__control_flow.run
new file mode 100644
index 0000000..576a0ee
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__control_flow.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.uncategorized.control_flow_test --target_backends=iree_vulkan -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__conv.run b/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__conv.run
new file mode 100644
index 0000000..ffd138c
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__conv.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.uncategorized.conv_test --target_backends=iree_vulkan -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__conv_transpose.run b/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__conv_transpose.run
new file mode 100644
index 0000000..a5a1204
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__conv_transpose.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.uncategorized.conv_transpose_test --target_backends=iree_vulkan -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__depth_conv.run b/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__depth_conv.run
new file mode 100644
index 0000000..1000577
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__depth_conv.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.uncategorized.depth_conv_test --target_backends=iree_vulkan -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__dynamic_mlp.run b/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__dynamic_mlp.run
new file mode 100644
index 0000000..b6565a0
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__dynamic_mlp.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.uncategorized.dynamic_mlp_test --target_backends=iree_vulkan -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__dynamic_mlp_relu.run b/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__dynamic_mlp_relu.run
new file mode 100644
index 0000000..4aad812
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__dynamic_mlp_relu.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.uncategorized.dynamic_mlp_relu_test --target_backends=iree_vulkan -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__einsum_dynamic.run b/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__einsum_dynamic.run
new file mode 100644
index 0000000..a66707e
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__einsum_dynamic.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.uncategorized.einsum_dynamic_test --target_backends=iree_vulkan -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__einsum_static.run b/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__einsum_static.run
new file mode 100644
index 0000000..894935b
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__einsum_static.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.uncategorized.einsum_static_test --target_backends=iree_vulkan -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__einsum_vector.run b/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__einsum_vector.run
new file mode 100644
index 0000000..8e0c786
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__einsum_vector.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.uncategorized.einsum_vector_test --target_backends=iree_vulkan -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__fft.run b/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__fft.run
new file mode 100644
index 0000000..f413114
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__fft.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.uncategorized.fft_test --target_backends=iree_vulkan -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__fill.run b/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__fill.run
new file mode 100644
index 0000000..0c252d3
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__fill.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.uncategorized.fill_test --target_backends=iree_vulkan -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__gather.run b/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__gather.run
new file mode 100644
index 0000000..2390bb4
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__gather.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.uncategorized.gather_test --target_backends=iree_vulkan -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__image_resize.run b/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__image_resize.run
new file mode 100644
index 0000000..4674780
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__image_resize.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.uncategorized.image_resize_test --target_backends=iree_vulkan -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__linspace.run b/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__linspace.run
new file mode 100644
index 0000000..fb1cbb4
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__linspace.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.uncategorized.linspace_test --target_backends=iree_vulkan -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__mandelbrot.run b/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__mandelbrot.run
new file mode 100644
index 0000000..d15f045
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__mandelbrot.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.uncategorized.mandelbrot_test --target_backends=iree_vulkan -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__matrix_ops_dynamic.run b/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__matrix_ops_dynamic.run
new file mode 100644
index 0000000..765d000
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__matrix_ops_dynamic.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.uncategorized.matrix_ops_dynamic_test --target_backends=iree_vulkan -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__matrix_ops_static.run b/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__matrix_ops_static.run
new file mode 100644
index 0000000..9dc2ef5
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__matrix_ops_static.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.uncategorized.matrix_ops_static_test --target_backends=iree_vulkan -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__mobile_bert_squad.run b/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__mobile_bert_squad.run
new file mode 100644
index 0000000..12a1ebc
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__mobile_bert_squad.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.uncategorized.mobile_bert_squad_test --target_backends=iree_vulkan -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__pytree.run b/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__pytree.run
new file mode 100644
index 0000000..b975ee4
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__pytree.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.uncategorized.pytree_test --target_backends=iree_vulkan -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__quantization.run b/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__quantization.run
new file mode 100644
index 0000000..93cf022
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__quantization.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.uncategorized.quantization_test --target_backends=iree_vulkan -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__quantization_dyn.run b/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__quantization_dyn.run
new file mode 100644
index 0000000..274f003
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__quantization_dyn.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.uncategorized.quantization_dyn_test --target_backends=iree_vulkan -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__range.run b/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__range.run
new file mode 100644
index 0000000..256ccc1
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__range.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.uncategorized.range_test --target_backends=iree_vulkan -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__resource_ops.run b/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__resource_ops.run
new file mode 100644
index 0000000..52146f3
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__resource_ops.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.uncategorized.resource_ops_test --target_backends=iree_vulkan -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__ring_buffer.run b/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__ring_buffer.run
new file mode 100644
index 0000000..14ace80
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__ring_buffer.run
@@ -0,0 +1,3 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.uncategorized.ring_buffer_test --target_backends=iree_vulkan -artifacts_dir=%t
+# XFAIL: *
diff --git a/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__scatter_update.run b/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__scatter_update.run
new file mode 100644
index 0000000..b96d2b0
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__scatter_update.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.uncategorized.scatter_update_test --target_backends=iree_vulkan -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__simple_arithmetic.run b/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__simple_arithmetic.run
new file mode 100644
index 0000000..0077bbb
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__simple_arithmetic.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.uncategorized.simple_arithmetic_test --target_backends=iree_vulkan -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__simple_stateful.run b/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__simple_stateful.run
new file mode 100644
index 0000000..44bf2d9
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__simple_stateful.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.uncategorized.simple_stateful_test --target_backends=iree_vulkan -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__sliding_window.run b/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__sliding_window.run
new file mode 100644
index 0000000..90dbc76
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__sliding_window.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.uncategorized.sliding_window_test --target_backends=iree_vulkan -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__space_to_batch_nd.run b/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__space_to_batch_nd.run
new file mode 100644
index 0000000..d532f32
--- /dev/null
+++ b/integrations/tensorflow/test/iree_tf_tests/uncategorized/vulkan__space_to_batch_nd.run
@@ -0,0 +1,2 @@
+# REQUIRES: vulkan
+# RUN: %PYTHON -m iree_tf_tests.uncategorized.space_to_batch_nd_test --target_backends=iree_vulkan -artifacts_dir=%t
diff --git a/integrations/tensorflow/test/lit.cfg.py b/integrations/tensorflow/test/lit.cfg.py
new file mode 100644
index 0000000..44cbca8
--- /dev/null
+++ b/integrations/tensorflow/test/lit.cfg.py
@@ -0,0 +1,72 @@
+# Copyright 2021 The IREE Authors
+#
+# Licensed under the Apache License v2.0 with LLVM Exceptions.
+# See https://llvm.org/LICENSE.txt for license information.
+# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+
+import os
+import sys
+import tempfile
+
+import lit.formats
+import lit.util
+
+import lit.llvm
+
+# Configuration file for the 'lit' test runner.
+lit.llvm.initialize(lit_config, config)
+from lit.llvm import llvm_config
+
+llvm_config.with_system_environment("PYTHONPATH")
+llvm_config.with_system_environment("VK_ICD_FILENAMES")
+
+# Put execution artifacts in the temp dir.
+config.test_exec_root = os.path.join(tempfile.gettempdir(), "lit")
+
+# name: The name of this test suite.
+config.name = 'TENSORFLOW_TESTS'
+
+config.test_format = lit.formats.ShTest()
+
+# suffixes: A list of file extensions to treat as test files.
+config.suffixes = ['.run']
+
+# test_source_root: The root path where tests are located.
+config.test_source_root = os.path.dirname(__file__)
+
+#config.use_default_substitutions()
+config.excludes = [
+    'lit.cfg.py',
+    'lit.site.cfg.py',
+    'test_util.py',
+    'manual_test.py',
+]
+
+config.substitutions.extend([
+    ('%PYTHON', sys.executable),
+])
+
+# Add our local projects to the PYTHONPATH
+python_projects_dir = os.path.join(os.path.dirname(__file__), "..",
+                                   "python_projects")
+test_src_dir = os.path.join(os.path.dirname(__file__), "python")
+llvm_config.with_environment("PYTHONPATH", [
+    test_src_dir,
+    os.path.join(python_projects_dir, "iree_tf"),
+    os.path.join(python_projects_dir, "iree_tflite"),
+    os.path.join(python_projects_dir, "iree_xla"),
+],
+                                      append_path=True)
+
+# Enable features based on -D FEATURES=hugetest,vulkan
+# syntax.
+# We always allow 'llvmaot'. It can be disabled with -D DISABLE_FEATURES=llvmaot
+disable_features_param = lit_config.params.get('DISABLE_FEATURES')
+disable_features = []
+if disable_features_param:
+    disable_features = disable_features_param.split(',')
+if 'llvmaot' not in disable_features:
+    config.available_features.add('llvmaot')
+features_param = lit_config.params.get('FEATURES')
+if features_param:
+  config.available_features.update(features_param.split(','))
diff --git a/integrations/tensorflow/test/python/README.md b/integrations/tensorflow/test/python/README.md
new file mode 100644
index 0000000..e0fc1db
--- /dev/null
+++ b/integrations/tensorflow/test/python/README.md
@@ -0,0 +1,8 @@
+# Python Test Sources
+
+Many of our Python integration tests are parameterized to run on multiple
+platforms, and they therefore are not ammenable to just including RUN
+lines in them. For these cases, we locate the python sources for the test
+here and add this to the PYTHONPATH.
+
+This directory is not scanned by the test runner.
diff --git a/integrations/tensorflow/test/python/generate_layers_tests.py b/integrations/tensorflow/test/python/generate_layers_tests.py
new file mode 100644
index 0000000..b287208
--- /dev/null
+++ b/integrations/tensorflow/test/python/generate_layers_tests.py
@@ -0,0 +1,186 @@
+# Copyright 2021 The IREE Authors
+#
+# Licensed under the Apache License v2.0 with LLVM Exceptions.
+# See https://llvm.org/LICENSE.txt for license information.
+# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+
+# Generates runner variants for the tf math tests.
+
+import generate_runner
+
+# These layers were selected by:
+#   1. Getting all subclasses of `tf.keras.layers.Layer`
+#   2. Removing deperacated layers based on the tf.keras docs
+#   3. Removing irrelevant layers
+#   4. Removing layers that don't fit in the testing framework (Wrappers, DenseFeatures, ...)
+LAYERS = [
+    "Activation",
+    "ActivityRegularization",
+    "Add",
+    "AdditiveAttention",
+    "AlphaDropout",
+    "Attention",
+    "Average",
+    "AveragePooling1D",
+    "AveragePooling2D",
+    "AveragePooling3D",
+    "BatchNormalization",
+    "Concatenate",
+    "Conv1D",
+    "Conv1DTranspose",
+    "Conv2D",
+    "Conv2DTranspose",
+    "Conv3D",
+    "Conv3DTranspose",
+    # "ConvLSTM2D",  # TODO(meadowlark): Debug flakiness.
+    "Cropping1D",
+    "Cropping2D",
+    "Cropping3D",
+    "Dense",
+    "DepthwiseConv2D",
+    "Dot",
+    "Dropout",
+    "ELU",
+    "Embedding",
+    "Flatten",
+    "GRU",
+    "GaussianDropout",
+    "GaussianNoise",
+    "GlobalAveragePooling1D",
+    "GlobalAveragePooling2D",
+    "GlobalAveragePooling3D",
+    "GlobalMaxPool1D",
+    "GlobalMaxPool2D",
+    "GlobalMaxPool3D",
+    "InputLayer",
+    "LSTM",
+    "Lambda",
+    "LayerNormalization",
+    "LeakyReLU",
+    "LocallyConnected1D",
+    "LocallyConnected2D",
+    "Masking",
+    "MaxPool1D",
+    "MaxPool2D",
+    "MaxPool3D",
+    "Maximum",
+    "Minimum",
+    "MultiHeadAttention",
+    "Multiply",
+    "PReLU",
+    "Permute",
+    "ReLU",
+    "RepeatVector",
+    "Reshape",
+    "SeparableConv1D",
+    "SeparableConv2D",
+    # "SimpleRNN",  # TODO(meadowlark): Debug flakiness.
+    "Softmax",
+    "SpatialDropout1D",
+    "SpatialDropout2D",
+    "SpatialDropout3D",
+    "Subtract",
+    "ThresholdedReLU",
+    "UpSampling1D",
+    "UpSampling2D",
+    "UpSampling3D",
+    "ZeroPadding1D",
+    "ZeroPadding2D",
+    "ZeroPadding3D",
+]
+
+# A list of all layers with non-default api tests can be generated by running:
+#   bazel run integrations/tensorflow/e2e/keras/layers:layers_test_manual -- \
+#     --list_layers_with_full_api_tests
+LAYERS_WITH_FULL_API_TESTS = [
+    "ActivityRegularization",
+    "AdditiveAttention",
+    "Attention",
+    "AveragePooling1D",
+    "AveragePooling2D",
+    "AveragePooling3D",
+    "BatchNormalization",
+    "Concatenate",
+    "Conv1D",
+    "Conv1DTranspose",
+    "Conv2D",
+    "Conv2DTranspose",
+    "Conv3D",
+    "Conv3DTranspose",
+    # "ConvLSTM2D",  # TODO(meadowlark): Debug flakiness.
+    "Cropping1D",
+    "Cropping2D",
+    "Cropping3D",
+    "DepthwiseConv2D",
+    "GRU",
+    "LSTM",
+    "LocallyConnected1D",
+    "LocallyConnected2D",
+    "MaxPool1D",
+    "MaxPool2D",
+    "MaxPool3D",
+    "SeparableConv1D",
+    "SeparableConv2D",
+    "SimpleRNN",
+    # "SimpleRNN",  # TODO(meadowlark): Debug flakiness.
+]
+
+# Layers that mention a training kwarg in their doc.
+LAYERS_WITH_TRAINING_BEHAVIOR = [
+    "AdditiveAttention",
+    "AlphaDropout",
+    "Attention",
+    "BatchNormalization",
+    # "ConvLSTM2D",  # TODO(meadowlark): Debug flakiness.
+    "Dropout",
+    "GRU",
+    "GaussianDropout",
+    "GaussianNoise",
+    "LSTM",
+    "MultiHeadAttention",
+    # "SimpleRNN",  # TODO(meadowlark): Debug flakiness.
+    "SpatialDropout1D",
+    "SpatialDropout2D",
+    "SpatialDropout3D",
+]
+
+BACKENDS = [
+    ("llvmaot", "--target_backends=iree_llvmaot"),
+    ("vulkan", "--target_backends=iree_vulkan"),
+]
+
+# Non dynamic dim tests.
+for variant, flags in BACKENDS:
+  for layer in LAYERS:
+    # Static.
+    generate_runner.main([
+        variant,
+        (f"{flags} --dynamic_dims=false --training=false "
+         f"--test_default_kwargs_only=true --layer={layer} --artifacts_dir=%t"),
+        f"iree_tf_tests/layers/layers_test.py:{layer}"
+    ])
+    # Dynamic.
+    generate_runner.main([
+        variant,
+        (f"{flags} --dynamic_dims=true --training=false "
+         f"--test_default_kwargs_only=true --layer={layer} --artifacts_dir=%t"),
+        f"iree_tf_tests/layers/layers_test.py:dynamic_dims_{layer}"
+    ])
+
+  # Test with test_default_kwargs_only=false
+  for layer in LAYERS_WITH_FULL_API_TESTS:
+    generate_runner.main([
+        variant,
+        (f"{flags} --dynamic_dims=false --training=false "
+         f"--test_default_kwargs_only=false --layer={layer} --artifacts_dir=%t"
+        ), f"iree_tf_tests/layers/layers_test.py:full_api_{layer}"
+    ])
+
+  # Test with training flags.
+  for layer in LAYERS_WITH_TRAINING_BEHAVIOR:
+    generate_runner.main([
+        variant,
+        (f"{flags} --dynamic_dims=false --training=true "
+         f"--test_default_kwargs_only=true --layer={layer} --artifacts_dir=%t"),
+        f"iree_tf_tests/layers/layers_test.py:training_{layer}"
+    ])
diff --git a/integrations/tensorflow/test/python/generate_math_tests.py b/integrations/tensorflow/test/python/generate_math_tests.py
new file mode 100644
index 0000000..6d7f2fb
--- /dev/null
+++ b/integrations/tensorflow/test/python/generate_math_tests.py
@@ -0,0 +1,224 @@
+# Copyright 2021 The IREE Authors
+#
+# Licensed under the Apache License v2.0 with LLVM Exceptions.
+# See https://llvm.org/LICENSE.txt for license information.
+# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+
+# Generates runner variants for the tf math tests.
+
+import generate_runner
+
+TF_MATH_FUNCTIONS = [
+    "abs",
+    "accumulate_n",
+    "acos",
+    "acosh",
+    "add",
+    "add_n",
+    "angle",
+    "argmax",
+    "argmin",
+    "asin",
+    "asinh",
+    "atan",
+    "atan2",
+    "atanh",
+    "bessel_i0",
+    "bessel_i0e",
+    "bessel_i1",
+    "bessel_i1e",
+    "betainc",
+    "bincount",
+    "ceil",
+    "confusion_matrix",
+    "cos",
+    "cosh",
+    "count_nonzero",
+    "cumprod",
+    "cumsum",
+    "cumulative_logsumexp",
+    "digamma",
+    "divide",
+    "divide_no_nan",
+    "equal",
+    "erf",
+    "erfc",
+    "erfinv",
+    "exp",
+    "expm1",
+    "floor",
+    "floordiv",
+    "floormod",
+    "greater",
+    "greater_equal",
+    "igamma",
+    "igammac",
+    "imag",
+    "in_top_k",
+    "invert_permutation",
+    "is_finite",
+    "is_inf",
+    "is_nan",
+    "is_non_decreasing",
+    "is_strictly_increasing",
+    "lbeta",
+    "less",
+    "less_equal",
+    "lgamma",
+    "log",
+    "log1p",
+    "log_sigmoid",
+    "log_softmax",
+    "logical_and",
+    "logical_not",
+    "logical_or",
+    "logical_xor",
+    "maximum",
+    "minimum",
+    "mod",
+    "multiply",
+    "multiply_no_nan",
+    "ndtri",
+    "negative",
+    "nextafter",
+    "not_equal",
+    "polygamma",
+    "polyval",
+    "pow",
+    "real",
+    "reciprocal",
+    "reciprocal_no_nan",
+    "reduce_all",
+    "reduce_any",
+    "reduce_euclidean_norm",
+    "reduce_logsumexp",
+    "reduce_max",
+    "reduce_mean",
+    "reduce_min",
+    "reduce_prod",
+    "reduce_std",
+    "reduce_sum",
+    "reduce_variance",
+    "rint",
+    "round",
+    "rsqrt",
+    "scalar_mul",
+    "segment_max",
+    "segment_mean",
+    "segment_min",
+    "segment_prod",
+    "segment_sum",
+    "sigmoid",
+    "sign",
+    "sin",
+    "sinh",
+    "sobol_sample",
+    "softmax",
+    "softplus",
+    "softsign",
+    "sqrt",
+    "square",
+    "squared_difference",
+    "subtract",
+    "tan",
+    "tanh",
+    "top_k",
+    "truediv",
+    "unsorted_segment_max",
+    "unsorted_segment_mean",
+    "unsorted_segment_min",
+    "unsorted_segment_prod",
+    "unsorted_segment_sqrt_n",
+    "unsorted_segment_sum",
+    "xdivy",
+    "xlog1py",
+    "xlogy",
+    "zero_fraction",
+    "zeta",
+]
+
+# This list was generated by running:
+#   bazel run integrations/tensorflow/e2e/math:math_test_manual -- --list_functions_with_complex_tests
+# keep sorted
+COMPLEX_FUNCTIONS = [
+    "abs",
+    "add",
+    "angle",
+    "asinh",
+    "atanh",
+    "conj",
+    "cos",
+    "cosh",
+    "count_nonzero",
+    "cumprod",
+    "cumsum",
+    "divide",
+    "divide_no_nan",
+    "exp",
+    "expm1",
+    "imag",
+    "l2_normalize",
+    "log",
+    "log1p",
+    "multiply",
+    "multiply_no_nan",
+    "negative",
+    "pow",
+    "real",
+    "reciprocal",
+    "reciprocal_no_nan",
+    "reduce_euclidean_norm",
+    "reduce_std",
+    "reduce_variance",
+    "rsqrt",
+    "sigmoid",
+    "sign",
+    "sin",
+    "sinh",
+    "sqrt",
+    "square",
+    "squared_difference",
+    "subtract",
+    "tan",
+    "tanh",
+    "truediv",
+    "xdivy",
+    "xlog1py",
+    "xlogy",
+    "zero_fraction",
+]
+
+BACKENDS = [
+    ("llvmaot", "--target_backends=iree_llvmaot"),
+    ("vulkan", "--target_backends=iree_vulkan"),
+]
+
+# Non dynamic dim tests.
+for variant, flags in BACKENDS:
+  for math_fn in TF_MATH_FUNCTIONS:
+    generate_runner.main([
+        variant,
+        f"{flags} --dynamic_dims=false --functions={math_fn} --artifacts_dir=%t",
+        f"iree_tf_tests/math/math_test.py:{math_fn}"
+    ])
+  for math_fn in COMPLEX_FUNCTIONS:
+    generate_runner.main([
+        variant,
+        f"{flags} --dynamic_dims=false --functions={math_fn} --artifacts_dir=%t",
+        f"iree_tf_tests/math/math_test.py:complex_{math_fn}"
+    ])
+
+# Dynamic dim tests.
+for variant, flags in BACKENDS:
+  for math_fn in TF_MATH_FUNCTIONS:
+    generate_runner.main([
+        variant,
+        f"{flags} --dynamic_dims=true --functions={math_fn} --artifacts_dir=%t",
+        f"iree_tf_tests/math/math_test.py:dynamic_dim_{math_fn}"
+    ])
+  for math_fn in COMPLEX_FUNCTIONS:
+    generate_runner.main([
+        variant,
+        f"{flags} --dynamic_dims=true --functions={math_fn} --artifacts_dir=%t",
+        f"iree_tf_tests/math/math_test.py:complex_dynamic_dim_{math_fn}"
+    ])
diff --git a/integrations/tensorflow/test/python/generate_runner.py b/integrations/tensorflow/test/python/generate_runner.py
new file mode 100644
index 0000000..b8493e5
--- /dev/null
+++ b/integrations/tensorflow/test/python/generate_runner.py
@@ -0,0 +1,93 @@
+# Copyright 2021 The IREE Authors
+#
+# Licensed under the Apache License v2.0 with LLVM Exceptions.
+# See https://llvm.org/LICENSE.txt for license information.
+# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+
+# Generates a ".run" file in the corresponding test tree for a file under
+# this directory. This is a convenience for bootstrapping new test files.
+# Usage:
+#   python generate_runner.py llvmaot "--target_backends=iree_llvmaot" \
+#     iree_tf_tests/uncategorized/batch_norm_test.py[:batch_norm_alias]
+#
+# The first argument is the lit feature that this test is gated on and will
+# be prepended to the test name as "{variant}__testfile".
+# The second argument is the flag string to include when running the test.
+# All remaining arguments are relative paths to python files under this
+# directory that should have a .run file created for them.
+
+import os
+import sys
+
+
+def main(args):
+  variant = args[0]
+  flags = args[1]
+  src_file_specs = args[2:]
+  src_files = [
+      transform_src_file_spec_to_src_file(spec) for spec in src_file_specs
+  ]
+  module_names = [transform_src_file_to_module(f) for f in src_files]
+  run_files = [
+      transform_src_file_spec_to_run_file(spec, variant)
+      for spec in src_file_specs
+  ]
+  for module, run_file in zip(module_names, run_files):
+    if os.path.exists(run_file):
+      print(f"SKIPPING (exists): {run_file}")
+      continue
+    print(f"CREATE RUN FILE: {module} -> {run_file}")
+    os.makedirs(os.path.dirname(run_file), exist_ok=True)
+    with open(run_file, "wt") as f:
+      print(f"# REQUIRES: {variant}", file=f)
+      print(f"# RUN: %PYTHON -m {module} {flags}", file=f)
+
+
+def transform_src_file_spec_to_src_file(spec: str):
+  try:
+    colon_pos = spec.index(":")
+  except ValueError:
+    return spec
+  return spec[0:colon_pos]
+
+
+def transform_src_file_to_module(file_name):
+  module_name = file_name.replace("/", ".")
+  if (module_name.endswith(".py")):
+    module_name = module_name[0:-3]
+  return module_name
+
+
+def transform_src_file_spec_to_run_file(spec, variant):
+  # Transform path:alias, defaulting to the basename if the alias is not
+  # specified.
+  file_path = spec
+  file_name = os.path.basename(file_path)
+  colon_pos = -1
+  try:
+    colon_pos = spec.index(":")
+  except ValueError:
+    pass
+  if colon_pos > -1:
+    # Explicit alias.
+    file_path = spec[0:colon_pos]
+    file_name = spec[colon_pos + 1:]
+    print(f"FILE PATH = {file_path}")
+  else:
+    # Auto detect the alias from the basename.
+    file_name = os.path.basename(file_path)
+    if file_name.endswith(".py"):
+      file_name = file_name[0:-3]
+    if file_name.endswith("_test"):
+      file_name = file_name[0:-5]
+
+  main_test_dir = os.path.join(os.path.dirname(__file__), "..")
+  parent_path = os.path.dirname(file_path)
+
+  file_name = f"{variant}__{file_name}.run"
+  run_file = os.path.join(main_test_dir, parent_path, file_name)
+  return run_file
+
+
+if __name__ == "__main__":
+  main(sys.argv[1:])
diff --git a/integrations/tensorflow/e2e/keras/layers/layers_test.py b/integrations/tensorflow/test/python/iree_tf_tests/layers/layers_test.py
similarity index 100%
rename from integrations/tensorflow/e2e/keras/layers/layers_test.py
rename to integrations/tensorflow/test/python/iree_tf_tests/layers/layers_test.py
diff --git a/integrations/tensorflow/test/tf_integration/math/math_test.py b/integrations/tensorflow/test/python/iree_tf_tests/math/math_test.py
similarity index 100%
rename from integrations/tensorflow/test/tf_integration/math/math_test.py
rename to integrations/tensorflow/test/python/iree_tf_tests/math/math_test.py
diff --git a/integrations/tensorflow/e2e/batch_norm_test.py b/integrations/tensorflow/test/python/iree_tf_tests/uncategorized/batch_norm_test.py
similarity index 100%
rename from integrations/tensorflow/e2e/batch_norm_test.py
rename to integrations/tensorflow/test/python/iree_tf_tests/uncategorized/batch_norm_test.py
diff --git a/integrations/tensorflow/e2e/batch_to_space_nd_test.py b/integrations/tensorflow/test/python/iree_tf_tests/uncategorized/batch_to_space_nd_test.py
similarity index 100%
rename from integrations/tensorflow/e2e/batch_to_space_nd_test.py
rename to integrations/tensorflow/test/python/iree_tf_tests/uncategorized/batch_to_space_nd_test.py
diff --git a/integrations/tensorflow/e2e/broadcast_to_test.py b/integrations/tensorflow/test/python/iree_tf_tests/uncategorized/broadcast_to_test.py
similarity index 100%
rename from integrations/tensorflow/e2e/broadcast_to_test.py
rename to integrations/tensorflow/test/python/iree_tf_tests/uncategorized/broadcast_to_test.py
diff --git a/integrations/tensorflow/e2e/broadcasting_test.py b/integrations/tensorflow/test/python/iree_tf_tests/uncategorized/broadcasting_test.py
similarity index 100%
rename from integrations/tensorflow/e2e/broadcasting_test.py
rename to integrations/tensorflow/test/python/iree_tf_tests/uncategorized/broadcasting_test.py
diff --git a/integrations/tensorflow/e2e/concat_test.py b/integrations/tensorflow/test/python/iree_tf_tests/uncategorized/concat_test.py
similarity index 100%
rename from integrations/tensorflow/e2e/concat_test.py
rename to integrations/tensorflow/test/python/iree_tf_tests/uncategorized/concat_test.py
diff --git a/integrations/tensorflow/e2e/control_flow_test.py b/integrations/tensorflow/test/python/iree_tf_tests/uncategorized/control_flow_test.py
similarity index 100%
rename from integrations/tensorflow/e2e/control_flow_test.py
rename to integrations/tensorflow/test/python/iree_tf_tests/uncategorized/control_flow_test.py
diff --git a/integrations/tensorflow/e2e/conv_test.py b/integrations/tensorflow/test/python/iree_tf_tests/uncategorized/conv_test.py
similarity index 100%
rename from integrations/tensorflow/e2e/conv_test.py
rename to integrations/tensorflow/test/python/iree_tf_tests/uncategorized/conv_test.py
diff --git a/integrations/tensorflow/e2e/conv_transpose_test.py b/integrations/tensorflow/test/python/iree_tf_tests/uncategorized/conv_transpose_test.py
similarity index 100%
rename from integrations/tensorflow/e2e/conv_transpose_test.py
rename to integrations/tensorflow/test/python/iree_tf_tests/uncategorized/conv_transpose_test.py
diff --git a/integrations/tensorflow/e2e/depth_conv_test.py b/integrations/tensorflow/test/python/iree_tf_tests/uncategorized/depth_conv_test.py
similarity index 100%
rename from integrations/tensorflow/e2e/depth_conv_test.py
rename to integrations/tensorflow/test/python/iree_tf_tests/uncategorized/depth_conv_test.py
diff --git a/integrations/tensorflow/e2e/dynamic_mlp_relu_test.py b/integrations/tensorflow/test/python/iree_tf_tests/uncategorized/dynamic_mlp_relu_test.py
similarity index 100%
rename from integrations/tensorflow/e2e/dynamic_mlp_relu_test.py
rename to integrations/tensorflow/test/python/iree_tf_tests/uncategorized/dynamic_mlp_relu_test.py
diff --git a/integrations/tensorflow/e2e/dynamic_mlp_test.py b/integrations/tensorflow/test/python/iree_tf_tests/uncategorized/dynamic_mlp_test.py
similarity index 100%
rename from integrations/tensorflow/e2e/dynamic_mlp_test.py
rename to integrations/tensorflow/test/python/iree_tf_tests/uncategorized/dynamic_mlp_test.py
diff --git a/integrations/tensorflow/e2e/einsum_dynamic_test.py b/integrations/tensorflow/test/python/iree_tf_tests/uncategorized/einsum_dynamic_test.py
similarity index 100%
rename from integrations/tensorflow/e2e/einsum_dynamic_test.py
rename to integrations/tensorflow/test/python/iree_tf_tests/uncategorized/einsum_dynamic_test.py
diff --git a/integrations/tensorflow/e2e/einsum_static_test.py b/integrations/tensorflow/test/python/iree_tf_tests/uncategorized/einsum_static_test.py
similarity index 100%
rename from integrations/tensorflow/e2e/einsum_static_test.py
rename to integrations/tensorflow/test/python/iree_tf_tests/uncategorized/einsum_static_test.py
diff --git a/integrations/tensorflow/e2e/einsum_vector_test.py b/integrations/tensorflow/test/python/iree_tf_tests/uncategorized/einsum_vector_test.py
similarity index 100%
rename from integrations/tensorflow/e2e/einsum_vector_test.py
rename to integrations/tensorflow/test/python/iree_tf_tests/uncategorized/einsum_vector_test.py
diff --git a/integrations/tensorflow/e2e/fft_test.py b/integrations/tensorflow/test/python/iree_tf_tests/uncategorized/fft_test.py
similarity index 100%
rename from integrations/tensorflow/e2e/fft_test.py
rename to integrations/tensorflow/test/python/iree_tf_tests/uncategorized/fft_test.py
diff --git a/integrations/tensorflow/e2e/fill_test.py b/integrations/tensorflow/test/python/iree_tf_tests/uncategorized/fill_test.py
similarity index 100%
rename from integrations/tensorflow/e2e/fill_test.py
rename to integrations/tensorflow/test/python/iree_tf_tests/uncategorized/fill_test.py
diff --git a/integrations/tensorflow/e2e/gather_test.py b/integrations/tensorflow/test/python/iree_tf_tests/uncategorized/gather_test.py
similarity index 100%
rename from integrations/tensorflow/e2e/gather_test.py
rename to integrations/tensorflow/test/python/iree_tf_tests/uncategorized/gather_test.py
diff --git a/integrations/tensorflow/e2e/image_resize_test.py b/integrations/tensorflow/test/python/iree_tf_tests/uncategorized/image_resize_test.py
similarity index 100%
rename from integrations/tensorflow/e2e/image_resize_test.py
rename to integrations/tensorflow/test/python/iree_tf_tests/uncategorized/image_resize_test.py
diff --git a/integrations/tensorflow/e2e/linspace_test.py b/integrations/tensorflow/test/python/iree_tf_tests/uncategorized/linspace_test.py
similarity index 100%
rename from integrations/tensorflow/e2e/linspace_test.py
rename to integrations/tensorflow/test/python/iree_tf_tests/uncategorized/linspace_test.py
diff --git a/integrations/tensorflow/e2e/mandelbrot_test.py b/integrations/tensorflow/test/python/iree_tf_tests/uncategorized/mandelbrot_test.py
similarity index 100%
rename from integrations/tensorflow/e2e/mandelbrot_test.py
rename to integrations/tensorflow/test/python/iree_tf_tests/uncategorized/mandelbrot_test.py
diff --git a/integrations/tensorflow/e2e/matrix_ops_dynamic_test.py b/integrations/tensorflow/test/python/iree_tf_tests/uncategorized/matrix_ops_dynamic_test.py
similarity index 100%
rename from integrations/tensorflow/e2e/matrix_ops_dynamic_test.py
rename to integrations/tensorflow/test/python/iree_tf_tests/uncategorized/matrix_ops_dynamic_test.py
diff --git a/integrations/tensorflow/e2e/matrix_ops_static_test.py b/integrations/tensorflow/test/python/iree_tf_tests/uncategorized/matrix_ops_static_test.py
similarity index 100%
rename from integrations/tensorflow/e2e/matrix_ops_static_test.py
rename to integrations/tensorflow/test/python/iree_tf_tests/uncategorized/matrix_ops_static_test.py
diff --git a/integrations/tensorflow/test/python/iree_tf_tests/uncategorized/mobile_bert_squad_test.py b/integrations/tensorflow/test/python/iree_tf_tests/uncategorized/mobile_bert_squad_test.py
new file mode 100644
index 0000000..4843e3c
--- /dev/null
+++ b/integrations/tensorflow/test/python/iree_tf_tests/uncategorized/mobile_bert_squad_test.py
@@ -0,0 +1,84 @@
+# Lint as: python3
+# Copyright 2020 The IREE Authors
+#
+# Licensed under the Apache License v2.0 with LLVM Exceptions.
+# See https://llvm.org/LICENSE.txt for license information.
+# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+"""Test MobileBERT.
+
+Model topology and weights are from
+https://github.com/google-research/google-research/tree/master/mobilebert
+"""
+
+import os
+import posixpath
+
+from absl import app
+from absl import flags
+from iree.tf.support import tf_test_utils
+import numpy as np
+import tensorflow.compat.v2 as tf
+
+FLAGS = flags.FLAGS
+
+flags.DEFINE_boolean('use_quantized_weights', False,
+                     'Whether to use quantized or floating point weights.')
+
+MAX_SEQ_LENGTH = 384  # Max input sequence length used in mobilebert_squad.
+
+FILE_NAME = 'mobilebert_squad_savedmodels'
+MODEL_URL = posixpath.join(
+    f'https://storage.googleapis.com/cloud-tpu-checkpoints/mobilebert/{FILE_NAME}.tar.gz'
+)
+
+
+class MobileBertSquadTest(tf_test_utils.TracedModuleTestCase):
+  """Tests of MobileBertSquad."""
+
+  def __init__(self, *args, **kwargs):
+    super().__init__(*args, **kwargs)
+    model_type = 'quant_saved_model' if FLAGS.use_quantized_weights else 'float'
+
+    # Get_file will download the model weights from a publicly available folder,
+    # save them to cache_dir=~/.keras/datasets/ and return a path to them.
+    model_path = tf.keras.utils.get_file(
+        FILE_NAME,
+        MODEL_URL,
+        untar=True,
+        cache_dir=tf_test_utils._setup_artifacts_dir("download"))
+    model_dir = os.path.dirname(model_path)
+    extracted_name = FILE_NAME.split('.')[0]
+    model_path = os.path.join(model_dir, extracted_name, model_type)
+
+    self._modules = tf_test_utils.compile_tf_signature_def_saved_model(
+        saved_model_dir=model_path,
+        saved_model_tags=set(['serve']),
+        module_name='MobileBertSquad',
+        exported_name='serving_default',
+        input_names=['input_ids', 'input_mask', 'segment_ids'],
+        output_names=['start_logits', 'end_logits'])
+
+  def test_serving_default(self):
+
+    def serving_default(module):
+      input_ids = np.zeros((1, MAX_SEQ_LENGTH), dtype=np.int32)
+      input_mask = np.zeros((1, MAX_SEQ_LENGTH), dtype=np.int32)
+      segment_ids = np.zeros((1, MAX_SEQ_LENGTH), dtype=np.int32)
+
+      module.serving_default(input_ids=input_ids,
+                             input_mask=input_mask,
+                             segment_ids=segment_ids,
+                             atol=1e0)
+
+    self.compare_backends(serving_default, self._modules)
+
+
+def main(argv):
+  del argv  # Unused
+  if hasattr(tf, 'enable_v2_behavior'):
+    tf.enable_v2_behavior()
+  tf.test.main()
+
+
+if __name__ == '__main__':
+  app.run(main)
diff --git a/integrations/tensorflow/e2e/pytree_test.py b/integrations/tensorflow/test/python/iree_tf_tests/uncategorized/pytree_test.py
similarity index 100%
rename from integrations/tensorflow/e2e/pytree_test.py
rename to integrations/tensorflow/test/python/iree_tf_tests/uncategorized/pytree_test.py
diff --git a/integrations/tensorflow/e2e/quantization_dyn_test.py b/integrations/tensorflow/test/python/iree_tf_tests/uncategorized/quantization_dyn_test.py
similarity index 100%
rename from integrations/tensorflow/e2e/quantization_dyn_test.py
rename to integrations/tensorflow/test/python/iree_tf_tests/uncategorized/quantization_dyn_test.py
diff --git a/integrations/tensorflow/e2e/quantization_test.py b/integrations/tensorflow/test/python/iree_tf_tests/uncategorized/quantization_test.py
similarity index 100%
rename from integrations/tensorflow/e2e/quantization_test.py
rename to integrations/tensorflow/test/python/iree_tf_tests/uncategorized/quantization_test.py
diff --git a/integrations/tensorflow/e2e/range_test.py b/integrations/tensorflow/test/python/iree_tf_tests/uncategorized/range_test.py
similarity index 100%
rename from integrations/tensorflow/e2e/range_test.py
rename to integrations/tensorflow/test/python/iree_tf_tests/uncategorized/range_test.py
diff --git a/integrations/tensorflow/e2e/resource_ops_test.py b/integrations/tensorflow/test/python/iree_tf_tests/uncategorized/resource_ops_test.py
similarity index 100%
rename from integrations/tensorflow/e2e/resource_ops_test.py
rename to integrations/tensorflow/test/python/iree_tf_tests/uncategorized/resource_ops_test.py
diff --git a/integrations/tensorflow/e2e/ring_buffer_test.py b/integrations/tensorflow/test/python/iree_tf_tests/uncategorized/ring_buffer_test.py
similarity index 100%
rename from integrations/tensorflow/e2e/ring_buffer_test.py
rename to integrations/tensorflow/test/python/iree_tf_tests/uncategorized/ring_buffer_test.py
diff --git a/integrations/tensorflow/e2e/scatter_update_test.py b/integrations/tensorflow/test/python/iree_tf_tests/uncategorized/scatter_update_test.py
similarity index 100%
rename from integrations/tensorflow/e2e/scatter_update_test.py
rename to integrations/tensorflow/test/python/iree_tf_tests/uncategorized/scatter_update_test.py
diff --git a/integrations/tensorflow/e2e/simple_arithmetic_test.py b/integrations/tensorflow/test/python/iree_tf_tests/uncategorized/simple_arithmetic_test.py
similarity index 100%
rename from integrations/tensorflow/e2e/simple_arithmetic_test.py
rename to integrations/tensorflow/test/python/iree_tf_tests/uncategorized/simple_arithmetic_test.py
diff --git a/integrations/tensorflow/e2e/simple_stateful_test.py b/integrations/tensorflow/test/python/iree_tf_tests/uncategorized/simple_stateful_test.py
similarity index 100%
rename from integrations/tensorflow/e2e/simple_stateful_test.py
rename to integrations/tensorflow/test/python/iree_tf_tests/uncategorized/simple_stateful_test.py
diff --git a/integrations/tensorflow/e2e/sliding_window_test.py b/integrations/tensorflow/test/python/iree_tf_tests/uncategorized/sliding_window_test.py
similarity index 100%
rename from integrations/tensorflow/e2e/sliding_window_test.py
rename to integrations/tensorflow/test/python/iree_tf_tests/uncategorized/sliding_window_test.py
diff --git a/integrations/tensorflow/e2e/space_to_batch_nd_test.py b/integrations/tensorflow/test/python/iree_tf_tests/uncategorized/space_to_batch_nd_test.py
similarity index 100%
rename from integrations/tensorflow/e2e/space_to_batch_nd_test.py
rename to integrations/tensorflow/test/python/iree_tf_tests/uncategorized/space_to_batch_nd_test.py
diff --git a/integrations/tensorflow/test/python/lit.local.cfg b/integrations/tensorflow/test/python/lit.local.cfg
new file mode 100644
index 0000000..e6f55ee
--- /dev/null
+++ b/integrations/tensorflow/test/python/lit.local.cfg
@@ -0,0 +1 @@
+config.suffixes = []
diff --git a/integrations/tensorflow/test/tf_integration/CMakeLists.txt b/integrations/tensorflow/test/tf_integration/CMakeLists.txt
deleted file mode 100644
index 43353bf..0000000
--- a/integrations/tensorflow/test/tf_integration/CMakeLists.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-# Copyright 2021 The IREE Authors
-#
-# Licensed under the Apache License v2.0 with LLVM Exceptions.
-# See https://llvm.org/LICENSE.txt for license information.
-# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-
-add_subdirectory(math)
diff --git a/integrations/tensorflow/test/tf_integration/math/CMakeLists.txt b/integrations/tensorflow/test/tf_integration/math/CMakeLists.txt
deleted file mode 100644
index 526e34a..0000000
--- a/integrations/tensorflow/test/tf_integration/math/CMakeLists.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-# Copyright 2021 The IREE Authors
-#
-# Licensed under the Apache License v2.0 with LLVM Exceptions.
-# See https://llvm.org/LICENSE.txt for license information.
-# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-
-include(iree_test_matrix)
-
-iree_test_matrix_gen()
-# TODO: If this becomes the only type of test we glob, collapse it into the
-# previous.
-iree_test_matrix_glob_py_tests()
diff --git a/integrations/tensorflow/test/tf_integration/math/test_matrix.yaml b/integrations/tensorflow/test/tf_integration/math/test_matrix.yaml
deleted file mode 100644
index c9f356e..0000000
--- a/integrations/tensorflow/test/tf_integration/math/test_matrix.yaml
+++ /dev/null
@@ -1,243 +0,0 @@
-# Copyright 2021 The IREE Authors
-#
-# Licensed under the Apache License v2.0 with LLVM Exceptions.
-# See https://llvm.org/LICENSE.txt for license information.
-# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-
-lists:
-  - &BACKENDS
-    - iree_llvmaot
-    - iree_vulkan
-  - &REF_BACKENDS
-    - tf
-  - &MATH_FUNCTIONS
-    - abs
-    - accumulate_n
-    - acos
-    - acosh
-    - add
-    - add_n
-    - angle
-    - argmax
-    - argmin
-    - asin
-    - asinh
-    - atan
-    - atan2
-    - atanh
-    - bessel_i0
-    - bessel_i0e
-    - bessel_i1
-    - bessel_i1e
-    - betainc
-    - bincount
-    - ceil
-    - confusion_matrix
-    - cos
-    - cosh
-    - count_nonzero
-    - cumprod
-    - cumsum
-    - cumulative_logsumexp
-    - digamma
-    - divide
-    - divide_no_nan
-    - equal
-    - erf
-    - erfc
-    - erfinv
-    - exp
-    - expm1
-    - floor
-    - floordiv
-    - floormod
-    - greater
-    - greater_equal
-    - igamma
-    - igammac
-    - imag
-    - in_top_k
-    - invert_permutation
-    - is_finite
-    - is_inf
-    - is_nan
-    - is_non_decreasing
-    - is_strictly_increasing
-    - lbeta
-    - less
-    - less_equal
-    - lgamma
-    - log
-    - log1p
-    - log_sigmoid
-    - log_softmax
-    - logical_and
-    - logical_not
-    - logical_or
-    - logical_xor
-    - maximum
-    - minimum
-    - mod
-    - multiply
-    - multiply_no_nan
-    - ndtri
-    - negative
-    - nextafter
-    - not_equal
-    - polygamma
-    - polyval
-    - pow
-    - real
-    - reciprocal
-    - reciprocal_no_nan
-    - reduce_all
-    - reduce_any
-    - reduce_euclidean_norm
-    - reduce_logsumexp
-    - reduce_max
-    - reduce_mean
-    - reduce_min
-    - reduce_prod
-    - reduce_std
-    - reduce_sum
-    - reduce_variance
-    - rint
-    - round
-    - rsqrt
-    - scalar_mul
-    - segment_max
-    - segment_mean
-    - segment_min
-    - segment_prod
-    - segment_sum
-    - sigmoid
-    - sign
-    - sin
-    - sinh
-    - sobol_sample
-    - softmax
-    - softplus
-    - softsign
-    - sqrt
-    - square
-    - squared_difference
-    - subtract
-    - tan
-    - tanh
-    - top_k
-    - truediv
-    - unsorted_segment_max
-    - unsorted_segment_mean
-    - unsorted_segment_min
-    - unsorted_segment_prod
-    - unsorted_segment_sqrt_n
-    - unsorted_segment_sum
-    - xdivy
-    - xlog1py
-    - xlogy
-    - zero_fraction
-    - zeta
-  - &UNIMPLEMENTED_MATH_FUNCTIONS
-    - acos
-    - argmax
-    - argmin
-    - asin
-    - atan
-    - atan2
-    - bessel_i0
-    - bessel_i0e
-    - bessel_i1
-    - bessel_i1e
-    - betainc
-    - bincount
-    - confusion_matrix
-    - count_nonzero
-    - cumprod
-    - cumsum
-    - cumulative_logsumexp
-    - divide
-    - erfinv
-    - igamma
-    - igammac
-    - in_top_k
-    - nextafter
-    - ndtri
-    - reduce_euclidean_norm
-    - reduce_prod
-    - segment_max
-    - segment_mean
-    - segment_min
-    - segment_prod
-    - segment_sum
-    - sobol_sample
-    - top_k
-    - unsorted_segment_max
-    - unsorted_segment_mean
-    - unsorted_segment_min
-    - unsorted_segment_prod
-    - unsorted_segment_sqrt_n
-    - unsorted_segment_sum
-  - &DYNDIMS_BROKEN_MATH_FUNCTIONS
-    - angle
-    - expm1
-    - imag
-    - invert_permutation
-    - is_non_decreasing
-    - is_strictly_increasing
-    - log1p
-    - log_sigmoid
-    # https://github.com/google/iree/issues/6310
-    - log_softmax
-    - reduce_logsumexp
-    - reduce_mean
-    - reduce_std
-    - reduce_variance
-    # TODO: Fix CHLO expansion of sinh to be high level
-    - sinh
-    - softplus
-    - xlog1py
-    - zero_fraction
-  - &VULKAN_BROKEN_MATH_FUNCTIONS
-    - asinh
-    - invert_permutation
-    - sign
-  - &VULKAN_DYNDIM_PASS_MATH_FUNCTIONS
-    - real
-
-
-test_groups:
-  - id: "math_real_{backend}_vs_{ref_backend}_{function}_dyndims_{dyndims}"
-    runner:
-      - type: tfhost
-        main: math_test.py
-        args:
-          - "--functions={function}"
-          - "--target_backends={backend}"
-          - "--reference_backend={ref_backend}"
-          - "--dynamic_dims={dyndims}"
-    matrix:
-      backend: *BACKENDS
-      ref_backend: *REF_BACKENDS
-      function: *MATH_FUNCTIONS
-      dyndims: ["true", "false"]
-    xfail:
-      # Completely IREE-unimplemented math functions
-      - matrix.function: *UNIMPLEMENTED_MATH_FUNCTIONS
-
-      # Some functions are strictly broken with dyndims
-      - matrix.function: *DYNDIMS_BROKEN_MATH_FUNCTIONS
-        matrix.dyndims: "true"
-
-      # Vulkan is currently structurally broken with dyndims.
-      - matrix.backend: iree_vulkan
-        matrix.dyndims: "true"
-
-      # Some math functions are broken on vulkan.
-      - matrix.backend: iree_vulkan
-        matrix.function: *VULKAN_BROKEN_MATH_FUNCTIONS
-    xpass:
-      # Some dynamic dim functions pass on vulkan regardless of overall
-      # broken support.
-      - matrix.backend: iree_vulkan
-        matrix.function: *VULKAN_DYNDIM_PASS_MATH_FUNCTIONS
-        matrix.dyndims: "true"
diff --git a/iree/compiler/InputConversion/MHLO/MHLOToMHLOPreprocessing.cpp b/iree/compiler/InputConversion/MHLO/MHLOToMHLOPreprocessing.cpp
index b3e2eaf..8e457eb 100644
--- a/iree/compiler/InputConversion/MHLO/MHLOToMHLOPreprocessing.cpp
+++ b/iree/compiler/InputConversion/MHLO/MHLOToMHLOPreprocessing.cpp
@@ -92,6 +92,10 @@
                                 PatternRewriter &rewriter) const override {
     Location loc = op.getLoc();
     auto type = op.operand().getType().cast<TensorType>();
+    // https://github.com/google/iree/issues/8083
+    if (!type.hasStaticShape()) {
+      return rewriter.notifyMatchFailure(op, "TODO: Support dynamic shape");
+    }
     DenseElementsAttr attr =
         DenseElementsAttr::get(type, rewriter.getF32FloatAttr(1.0));
     auto one = rewriter.create<arith::ConstantOp>(loc, attr);
@@ -109,6 +113,10 @@
                                 PatternRewriter &rewriter) const override {
     Location loc = op.getLoc();
     auto type = op.operand().getType().cast<TensorType>();
+    // https://github.com/google/iree/issues/8083
+    if (!type.hasStaticShape()) {
+      return rewriter.notifyMatchFailure(op, "TODO: Support dynamic shape");
+    }
     DenseElementsAttr attr =
         DenseElementsAttr::get(type, rewriter.getF32FloatAttr(1.0));
     auto one = rewriter.create<arith::ConstantOp>(loc, attr);