Enable dylib-llvm-aot backend e2e/xla_op tests (#2639)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 1a2377d..e54335d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -115,7 +115,7 @@
 
 # List of all target backends to be built by default:
 set(IREE_ALL_TARGET_BACKENDS
-  # TODO(scotttodd): LLVMAOT
+  DYLIB-LLVM-AOT
   LLVM-IR
   Vulkan-SPIRV
   VMLA
diff --git a/build_tools/bazel/build_bindings.sh b/build_tools/bazel/build_bindings.sh
index b4a417e..4ca7ddb 100755
--- a/build_tools/bazel/build_bindings.sh
+++ b/build_tools/bazel/build_bindings.sh
@@ -43,7 +43,7 @@
 declare -a test_env_args=(
   --test_env=IREE_LLVMJIT_DISABLE=$IREE_LLVMJIT_DISABLE
   --test_env=IREE_VULKAN_DISABLE=$IREE_VULKAN_DISABLE
-  --test_env=IREE_LLVMAOT_LINKER_PATH
+  --action_env=IREE_LLVMAOT_LINKER_PATH=$IREE_LLVMAOT_LINKER_PATH
 )
 
 declare -a default_build_tag_filters=("-nokokoro")
diff --git a/build_tools/bazel/build_core.sh b/build_tools/bazel/build_core.sh
index 89d94e2..bd04942 100755
--- a/build_tools/bazel/build_core.sh
+++ b/build_tools/bazel/build_core.sh
@@ -42,6 +42,7 @@
 declare -a test_env_args=(
   --test_env=IREE_LLVMJIT_DISABLE=$IREE_LLVMJIT_DISABLE
   --test_env=IREE_VULKAN_DISABLE=$IREE_VULKAN_DISABLE
+  --action_env=IREE_LLVMAOT_LINKER_PATH=$IREE_LLVMAOT_LINKER_PATH
 )
 
 declare -a default_build_tag_filters=("-nokokoro")
diff --git a/build_tools/bazel/build_tensorflow.sh b/build_tools/bazel/build_tensorflow.sh
index be82227..3634c4d 100755
--- a/build_tools/bazel/build_tensorflow.sh
+++ b/build_tools/bazel/build_tensorflow.sh
@@ -42,6 +42,7 @@
 declare -a test_env_args=(
   --test_env=IREE_LLVMJIT_DISABLE=$IREE_LLVMJIT_DISABLE
   --test_env=IREE_VULKAN_DISABLE=$IREE_VULKAN_DISABLE
+  --action_env=IREE_LLVMAOT_LINKER_PATH=$IREE_LLVMAOT_LINKER_PATH
 )
 # Pass in VK_ICD_FILENAMES if exists so that the Vulkan loader can find the
 # Vulkan implementation.
diff --git a/build_tools/bazel_to_cmake/bazel_to_cmake_converter.py b/build_tools/bazel_to_cmake/bazel_to_cmake_converter.py
index bc40c97..9add36f 100644
--- a/build_tools/bazel_to_cmake/bazel_to_cmake_converter.py
+++ b/build_tools/bazel_to_cmake/bazel_to_cmake_converter.py
@@ -43,6 +43,7 @@
     self.FLATBUFFER_SUPPORTS_REFLECTIONS = False
     self.PLATFORM_VULKAN_LOADER_COPTS = []
     self.IREE_DRIVER_MODULES = [
+        "//iree/hal/dylib:dylib_driver_module",
         "//iree/hal/vmla:vmla_driver_module",
         "//iree/hal/vulkan:vulkan_driver_module",
         "//iree/hal/llvmjit:llvmjit_driver_module",
diff --git a/build_tools/cmake/iree_check_test.cmake b/build_tools/cmake/iree_check_test.cmake
index 93fd934..82ac9c7 100644
--- a/build_tools/cmake/iree_check_test.cmake
+++ b/build_tools/cmake/iree_check_test.cmake
@@ -243,8 +243,8 @@
   )
 
   if(NOT DEFINED _RULE_TARGET_BACKENDS AND NOT DEFINED _RULE_DRIVERS)
-    set(_RULE_TARGET_BACKENDS "vmla" "vulkan-spirv" "llvm-ir")
-    set(_RULE_DRIVERS "vmla" "vulkan" "llvm")
+    set(_RULE_TARGET_BACKENDS "vmla" "vulkan-spirv" "llvm-ir" "dylib-llvm-aot")
+    set(_RULE_DRIVERS "vmla" "vulkan" "llvm" "dylib")
   endif()
 
   list(LENGTH _RULE_TARGET_BACKENDS _TARGET_BACKEND_COUNT)
diff --git a/iree/modules/check/CMakeLists.txt b/iree/modules/check/CMakeLists.txt
index 0a016be..0c6c103 100644
--- a/iree/modules/check/CMakeLists.txt
+++ b/iree/modules/check/CMakeLists.txt
@@ -57,6 +57,7 @@
     iree::base::status
     iree::base::target_platform
     iree::base::tracing
+    iree::hal::dylib::dylib_driver_module
     iree::hal::llvmjit::llvmjit_driver_module
     iree::hal::vmla::vmla_driver_module
     iree::hal::vulkan::vulkan_driver_module
diff --git a/iree/test/e2e/xla_ops/BUILD b/iree/test/e2e/xla_ops/BUILD
index 744ff22..d94e29c 100644
--- a/iree/test/e2e/xla_ops/BUILD
+++ b/iree/test/e2e/xla_ops/BUILD
@@ -134,9 +134,54 @@
     target_backend = "llvm-ir",
 )
 
+iree_check_single_backend_test_suite(
+    name = "check_dylib-llvm-aot_dylib",
+    srcs = [
+        "abs.mlir",
+        "add.mlir",
+        "batch_norm_inference.mlir",
+        "broadcast.mlir",
+        "broadcast_add.mlir",
+        "broadcast_in_dim.mlir",
+        "clamp.mlir",
+        "compare.mlir",
+        "concatenate.mlir",
+        "constant.mlir",
+        "convolution.mlir",
+        "cosine.mlir",
+        "divide.mlir",
+        "dot.mlir",
+        "exponential.mlir",
+        "log.mlir",
+        "maximum.mlir",
+        "minimum.mlir",
+        "multiply.mlir",
+        "negate.mlir",
+        "pad.mlir",
+        "reduce.mlir",
+        "reduce_window.mlir",
+        "remainder.mlir",
+        "reshape.mlir",
+        "reverse.mlir",
+        "rsqrt.mlir",
+        "select.mlir",
+        "sine.mlir",
+        "slice.mlir",
+        "sqrt.mlir",
+        "subtract.mlir",
+        "tanh.mlir",
+        "torch_index_select.mlir",
+        "transpose.mlir",
+        "while.mlir",
+    ],
+    driver = "dylib",
+    target_backend = "dylib-llvm-aot",
+)
+
 test_suite(
     name = "check",
     tests = [
+        ":check_dylib-llvm-aot_dylib",
         ":check_llvm-ir_llvm",
         ":check_vmla_vmla",
         ":check_vulkan-spirv_vulkan",
diff --git a/iree/test/e2e/xla_ops/CMakeLists.txt b/iree/test/e2e/xla_ops/CMakeLists.txt
index e4ae959..61239bb 100644
--- a/iree/test/e2e/xla_ops/CMakeLists.txt
+++ b/iree/test/e2e/xla_ops/CMakeLists.txt
@@ -120,3 +120,49 @@
   DRIVER
     llvm
 )
+
+iree_check_single_backend_test_suite(
+  NAME
+    check_dylib-llvm-aot_dylib
+  SRCS
+    "abs.mlir"
+    "add.mlir"
+    "batch_norm_inference.mlir"
+    "broadcast.mlir"
+    "broadcast_add.mlir"
+    "broadcast_in_dim.mlir"
+    "clamp.mlir"
+    "compare.mlir"
+    "concatenate.mlir"
+    "constant.mlir"
+    "convolution.mlir"
+    "cosine.mlir"
+    "divide.mlir"
+    "dot.mlir"
+    "exponential.mlir"
+    "log.mlir"
+    "maximum.mlir"
+    "minimum.mlir"
+    "multiply.mlir"
+    "negate.mlir"
+    "pad.mlir"
+    "reduce.mlir"
+    "reduce_window.mlir"
+    "remainder.mlir"
+    "reshape.mlir"
+    "reverse.mlir"
+    "rsqrt.mlir"
+    "select.mlir"
+    "sine.mlir"
+    "slice.mlir"
+    "sqrt.mlir"
+    "subtract.mlir"
+    "tanh.mlir"
+    "torch_index_select.mlir"
+    "transpose.mlir"
+    "while.mlir"
+  TARGET_BACKEND
+    dylib-llvm-aot
+  DRIVER
+    dylib
+)