Moving legacy dylib/vmvx driver modules to iree/hal/drivers/.
These will be replaced with local-* variants in the future.
Progress on #9336.
diff --git a/compiler/src/iree/compiler/ConstEval/BUILD b/compiler/src/iree/compiler/ConstEval/BUILD
index 92b5c45..1c33d06 100644
--- a/compiler/src/iree/compiler/ConstEval/BUILD
+++ b/compiler/src/iree/compiler/ConstEval/BUILD
@@ -75,7 +75,7 @@
     deps = [
         "//compiler/src/iree/compiler/Dialect/VM/Target/Bytecode",
         "//runtime/src/iree/hal",
-        "//runtime/src/iree/hal/vmvx/registration",
+        "//runtime/src/iree/hal/drivers/vmvx/registration",
         "//runtime/src/iree/modules/hal",
         "//runtime/src/iree/tools/utils:vm_util",
         "//runtime/src/iree/vm",
diff --git a/compiler/src/iree/compiler/ConstEval/CMakeLists.txt b/compiler/src/iree/compiler/ConstEval/CMakeLists.txt
index 2821009..f6c3fa8 100644
--- a/compiler/src/iree/compiler/ConstEval/CMakeLists.txt
+++ b/compiler/src/iree/compiler/ConstEval/CMakeLists.txt
@@ -65,7 +65,7 @@
     MLIRIR
     iree::compiler::Dialect::VM::Target::Bytecode
     iree::hal
-    iree::hal::vmvx::registration
+    iree::hal::drivers::vmvx::registration
     iree::modules::hal
     iree::tools::utils::vm_util
     iree::vm
diff --git a/compiler/src/iree/compiler/ConstEval/Runtime.cpp b/compiler/src/iree/compiler/ConstEval/Runtime.cpp
index 8c34591..98947f2 100644
--- a/compiler/src/iree/compiler/ConstEval/Runtime.cpp
+++ b/compiler/src/iree/compiler/ConstEval/Runtime.cpp
@@ -8,7 +8,7 @@
 
 #include "iree/compiler/Dialect/VM/Target/Bytecode/BytecodeModuleTarget.h"
 #include "iree/hal/api.h"
-#include "iree/hal/vmvx/registration/driver_module.h"
+#include "iree/hal/drivers/vmvx/registration/driver_module.h"
 #include "iree/modules/hal/module.h"
 #include "iree/vm/ref_cc.h"
 #include "mlir/IR/BuiltinOps.h"
diff --git a/docs/website/docs/bindings/c-api.md b/docs/website/docs/bindings/c-api.md
index 4de69e9..61276a8 100644
--- a/docs/website/docs/bindings/c-api.md
+++ b/docs/website/docs/bindings/c-api.md
@@ -71,7 +71,7 @@
 // with those for the specific HAL drivers your application uses.
 // Functionality extensions can be used via custom modules.
 #include "iree/modules/hal/module.h"
-#include "iree/hal/dylib/registration/driver_module.h"
+#include "iree/hal/drivers/dylib/registration/driver_module.h"
 #include "iree/vm/bytecode_module.h"
 ```
 
diff --git a/runtime/src/iree/hal/drivers/BUILD b/runtime/src/iree/hal/drivers/BUILD
index 5e67bdb..2d1c9f1 100644
--- a/runtime/src/iree/hal/drivers/BUILD
+++ b/runtime/src/iree/hal/drivers/BUILD
@@ -51,19 +51,19 @@
                "//runtime/src/iree/base",
                "//runtime/src/iree/base:tracing",
            ] + select({
-               ":dylib_enabled": ["//runtime/src/iree/hal/dylib/registration"],
+               ":dylib_enabled": ["//runtime/src/iree/hal/drivers/dylib/registration"],
                "//conditions:default": [],
            }) +
            select({
-               ":dylib-sync_enabled": ["//runtime/src/iree/hal/dylib/registration:sync"],
+               ":dylib-sync_enabled": ["//runtime/src/iree/hal/drivers/dylib_sync/registration"],
                "//conditions:default": [],
            }) +
            select({
-               ":vmvx_enabled": ["//runtime/src/iree/hal/vmvx/registration"],
+               ":vmvx_enabled": ["//runtime/src/iree/hal/drivers/vmvx/registration"],
                "//conditions:default": [],
            }) +
            select({
-               ":vmvx-sync_enabled": ["//runtime/src/iree/hal/vmvx/registration:sync"],
+               ":vmvx-sync_enabled": ["//runtime/src/iree/hal/drivers/vmvx_sync/registration"],
                "//conditions:default": [],
            }) +
            select({
diff --git a/runtime/src/iree/hal/drivers/CMakeLists.txt b/runtime/src/iree/hal/drivers/CMakeLists.txt
index 18f8784..b55f083 100644
--- a/runtime/src/iree/hal/drivers/CMakeLists.txt
+++ b/runtime/src/iree/hal/drivers/CMakeLists.txt
@@ -12,16 +12,20 @@
   list(APPEND IREE_HAL_DRIVER_MODULES iree::hal::drivers::cuda::registration)
 endif()
 if(IREE_HAL_DRIVER_DYLIB)
-  list(APPEND IREE_HAL_DRIVER_MODULES iree::hal::dylib::registration)
+  add_subdirectory(dylib)
+  list(APPEND IREE_HAL_DRIVER_MODULES iree::hal::drivers::dylib::registration)
 endif()
 if(IREE_HAL_DRIVER_DYLIB_SYNC)
-  list(APPEND IREE_HAL_DRIVER_MODULES iree::hal::dylib::registration::sync)
+  add_subdirectory(dylib_sync)
+  list(APPEND IREE_HAL_DRIVER_MODULES iree::hal::drivers::dylib_sync::registration)
 endif()
 if(IREE_HAL_DRIVER_VMVX)
-  list(APPEND IREE_HAL_DRIVER_MODULES iree::hal::vmvx::registration)
+  add_subdirectory(vmvx)
+  list(APPEND IREE_HAL_DRIVER_MODULES iree::hal::drivers::vmvx::registration)
 endif()
 if(IREE_HAL_DRIVER_VMVX_SYNC)
-  list(APPEND IREE_HAL_DRIVER_MODULES iree::hal::vmvx::registration::sync)
+  add_subdirectory(vmvx_sync)
+  list(APPEND IREE_HAL_DRIVER_MODULES iree::hal::drivers::vmvx_sync::registration)
 endif()
 if(IREE_HAL_DRIVER_VULKAN)
   add_subdirectory(vulkan)
diff --git a/runtime/src/iree/hal/dylib/BUILD b/runtime/src/iree/hal/drivers/dylib/BUILD
similarity index 100%
rename from runtime/src/iree/hal/dylib/BUILD
rename to runtime/src/iree/hal/drivers/dylib/BUILD
diff --git a/runtime/src/iree/hal/dylib/CMakeLists.txt b/runtime/src/iree/hal/drivers/dylib/CMakeLists.txt
similarity index 91%
copy from runtime/src/iree/hal/dylib/CMakeLists.txt
copy to runtime/src/iree/hal/drivers/dylib/CMakeLists.txt
index c6326d7..4f3b02c 100644
--- a/runtime/src/iree/hal/dylib/CMakeLists.txt
+++ b/runtime/src/iree/hal/drivers/dylib/CMakeLists.txt
@@ -1,6 +1,6 @@
 ################################################################################
 # Autogenerated by build_tools/bazel_to_cmake/bazel_to_cmake.py from           #
-# runtime/src/iree/hal/dylib/BUILD                                             #
+# runtime/src/iree/hal/drivers/dylib/BUILD                                     #
 #                                                                              #
 # Use iree_cmake_extra_content from iree/build_defs.oss.bzl to add arbitrary   #
 # CMake-only content.                                                          #
diff --git a/runtime/src/iree/hal/drivers/dylib/cts/CMakeLists.txt b/runtime/src/iree/hal/drivers/dylib/cts/CMakeLists.txt
new file mode 100644
index 0000000..e100dc0
--- /dev/null
+++ b/runtime/src/iree/hal/drivers/dylib/cts/CMakeLists.txt
@@ -0,0 +1,28 @@
+# 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_BYTECODE_MODULE_FORCE_SYSTEM_DYLIB_LINKER)
+  set(EXECUTABLE_FORMAT_PREFIX "system")
+else()
+  set(EXECUTABLE_FORMAT_PREFIX "embedded")
+endif()
+
+set(EXECUTABLE_FORMAT "\"${EXECUTABLE_FORMAT_PREFIX}-elf-\" IREE_ARCH")
+
+iree_hal_cts_test_suite(
+  DRIVER_NAME
+    dylib
+  DRIVER_REGISTRATION_HDR
+    "runtime/src/iree/hal/drivers/dylib/registration/driver_module.h"
+  DRIVER_REGISTRATION_FN
+    "iree_hal_dylib_driver_module_register"
+  COMPILER_TARGET_BACKEND
+    "dylib-llvm-aot"
+  EXECUTABLE_FORMAT
+    "${EXECUTABLE_FORMAT}"
+  DEPS
+    iree::hal::drivers::dylib::registration
+)
diff --git a/runtime/src/iree/hal/drivers/dylib/registration/BUILD b/runtime/src/iree/hal/drivers/dylib/registration/BUILD
new file mode 100644
index 0000000..bc949da
--- /dev/null
+++ b/runtime/src/iree/hal/drivers/dylib/registration/BUILD
@@ -0,0 +1,32 @@
+# 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
+
+load("//build_tools/bazel:build_defs.oss.bzl", "iree_runtime_cc_library")
+
+package(
+    default_visibility = ["//visibility:public"],
+    features = ["layering_check"],
+    licenses = ["notice"],  # Apache 2.0
+)
+
+iree_runtime_cc_library(
+    name = "registration",
+    srcs = ["driver_module.c"],
+    hdrs = ["driver_module.h"],
+    defines = [
+        "IREE_HAL_HAVE_DYLIB_DRIVER_MODULE=1",
+    ],
+    deps = [
+        "//runtime/src/iree/base",
+        "//runtime/src/iree/base/internal:flags",
+        "//runtime/src/iree/hal",
+        "//runtime/src/iree/hal/local",
+        "//runtime/src/iree/hal/local:task_driver",
+        "//runtime/src/iree/hal/local/loaders:embedded_library_loader",
+        "//runtime/src/iree/hal/local/loaders:system_library_loader",
+        "//runtime/src/iree/task:api",
+    ],
+)
diff --git a/runtime/src/iree/hal/dylib/registration/CMakeLists.txt b/runtime/src/iree/hal/drivers/dylib/registration/CMakeLists.txt
similarity index 71%
rename from runtime/src/iree/hal/dylib/registration/CMakeLists.txt
rename to runtime/src/iree/hal/drivers/dylib/registration/CMakeLists.txt
index e6c2883..676cb8d 100644
--- a/runtime/src/iree/hal/dylib/registration/CMakeLists.txt
+++ b/runtime/src/iree/hal/drivers/dylib/registration/CMakeLists.txt
@@ -1,6 +1,6 @@
 ################################################################################
 # Autogenerated by build_tools/bazel_to_cmake/bazel_to_cmake.py from           #
-# runtime/src/iree/hal/dylib/registration/BUILD                                #
+# runtime/src/iree/hal/drivers/dylib/registration/BUILD                        #
 #                                                                              #
 # Use iree_cmake_extra_content from iree/build_defs.oss.bzl to add arbitrary   #
 # CMake-only content.                                                          #
@@ -10,8 +10,6 @@
 
 iree_add_all_subdirs()
 
-if(IREE_HAL_DRIVER_DYLIB)
-
 iree_cc_library(
   NAME
     registration
@@ -33,28 +31,4 @@
   PUBLIC
 )
 
-endif()
-
-if(IREE_HAL_DRIVER_DYLIB_SYNC)
-
-iree_cc_library(
-  NAME
-    sync
-  HDRS
-    "driver_module_sync.h"
-  SRCS
-    "driver_module_sync.c"
-  DEPS
-    iree::base
-    iree::hal
-    iree::hal::local
-    iree::hal::local::loaders::embedded_library_loader
-    iree::hal::local::sync_driver
-  DEFINES
-    "IREE_HAL_HAVE_DYLIB_SYNC_DRIVER_MODULE=1"
-  PUBLIC
-)
-
-endif()
-
 ### BAZEL_TO_CMAKE_PRESERVES_ALL_CONTENT_BELOW_THIS_LINE ###
diff --git a/runtime/src/iree/hal/dylib/registration/driver_module.c b/runtime/src/iree/hal/drivers/dylib/registration/driver_module.c
similarity index 98%
rename from runtime/src/iree/hal/dylib/registration/driver_module.c
rename to runtime/src/iree/hal/drivers/dylib/registration/driver_module.c
index 836db33..cb0424d 100644
--- a/runtime/src/iree/hal/dylib/registration/driver_module.c
+++ b/runtime/src/iree/hal/drivers/dylib/registration/driver_module.c
@@ -4,7 +4,7 @@
 // See https://llvm.org/LICENSE.txt for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 
-#include "iree/hal/dylib/registration/driver_module.h"
+#include "iree/hal/drivers/dylib/registration/driver_module.h"
 
 #include <inttypes.h>
 #include <stddef.h>
diff --git a/runtime/src/iree/hal/dylib/registration/driver_module.h b/runtime/src/iree/hal/drivers/dylib/registration/driver_module.h
similarity index 77%
rename from runtime/src/iree/hal/dylib/registration/driver_module.h
rename to runtime/src/iree/hal/drivers/dylib/registration/driver_module.h
index 7c13188..782e02e 100644
--- a/runtime/src/iree/hal/dylib/registration/driver_module.h
+++ b/runtime/src/iree/hal/drivers/dylib/registration/driver_module.h
@@ -4,8 +4,8 @@
 // See https://llvm.org/LICENSE.txt for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 
-#ifndef IREE_HAL_DYLIB_REGISTRATION_DRIVER_MODULE_H_
-#define IREE_HAL_DYLIB_REGISTRATION_DRIVER_MODULE_H_
+#ifndef IREE_HAL_DRIVERS_DYLIB_REGISTRATION_DRIVER_MODULE_H_
+#define IREE_HAL_DRIVERS_DYLIB_REGISTRATION_DRIVER_MODULE_H_
 
 #include "iree/base/api.h"
 #include "iree/hal/api.h"
@@ -23,4 +23,4 @@
 }  // extern "C"
 #endif  // __cplusplus
 
-#endif  // IREE_HAL_DYLIB_REGISTRATION_DRIVER_MODULE_H_
+#endif  // IREE_HAL_DRIVERS_DYLIB_REGISTRATION_DRIVER_MODULE_H_
diff --git a/runtime/src/iree/hal/dylib/BUILD b/runtime/src/iree/hal/drivers/dylib_sync/BUILD
similarity index 100%
copy from runtime/src/iree/hal/dylib/BUILD
copy to runtime/src/iree/hal/drivers/dylib_sync/BUILD
diff --git a/runtime/src/iree/hal/dylib/CMakeLists.txt b/runtime/src/iree/hal/drivers/dylib_sync/CMakeLists.txt
similarity index 91%
copy from runtime/src/iree/hal/dylib/CMakeLists.txt
copy to runtime/src/iree/hal/drivers/dylib_sync/CMakeLists.txt
index c6326d7..1a54c3a 100644
--- a/runtime/src/iree/hal/dylib/CMakeLists.txt
+++ b/runtime/src/iree/hal/drivers/dylib_sync/CMakeLists.txt
@@ -1,6 +1,6 @@
 ################################################################################
 # Autogenerated by build_tools/bazel_to_cmake/bazel_to_cmake.py from           #
-# runtime/src/iree/hal/dylib/BUILD                                             #
+# runtime/src/iree/hal/drivers/dylib_sync/BUILD                                #
 #                                                                              #
 # Use iree_cmake_extra_content from iree/build_defs.oss.bzl to add arbitrary   #
 # CMake-only content.                                                          #
diff --git a/runtime/src/iree/hal/dylib/cts/CMakeLists.txt b/runtime/src/iree/hal/drivers/dylib_sync/cts/CMakeLists.txt
similarity index 65%
rename from runtime/src/iree/hal/dylib/cts/CMakeLists.txt
rename to runtime/src/iree/hal/drivers/dylib_sync/cts/CMakeLists.txt
index ea8a394..30cc15e 100644
--- a/runtime/src/iree/hal/dylib/cts/CMakeLists.txt
+++ b/runtime/src/iree/hal/drivers/dylib_sync/cts/CMakeLists.txt
@@ -14,24 +14,9 @@
 
 iree_hal_cts_test_suite(
   DRIVER_NAME
-    dylib
-  DRIVER_REGISTRATION_HDR
-    "runtime/src/iree/hal/dylib/registration/driver_module.h"
-  DRIVER_REGISTRATION_FN
-    "iree_hal_dylib_driver_module_register"
-  COMPILER_TARGET_BACKEND
-    "dylib-llvm-aot"
-  EXECUTABLE_FORMAT
-    "${EXECUTABLE_FORMAT}"
-  DEPS
-    iree::hal::dylib::registration
-)
-
-iree_hal_cts_test_suite(
-  DRIVER_NAME
     dylib-sync
   DRIVER_REGISTRATION_HDR
-    "runtime/src/iree/hal/dylib/registration/driver_module_sync.h"
+    "runtime/src/iree/hal/drivers/dylib_sync/registration/driver_module.h"
   DRIVER_REGISTRATION_FN
     "iree_hal_dylib_sync_driver_module_register"
   COMPILER_TARGET_BACKEND
@@ -39,7 +24,7 @@
   EXECUTABLE_FORMAT
     "${EXECUTABLE_FORMAT}"
   DEPS
-    iree::hal::dylib::registration::sync
+    iree::hal::drivers::dylib_sync::registration
   EXCLUDED_TESTS
     # TODO(#4680): command buffer recording so that these can run on sync HAL
     "command_buffer"
diff --git a/runtime/src/iree/hal/drivers/dylib_sync/registration/BUILD b/runtime/src/iree/hal/drivers/dylib_sync/registration/BUILD
new file mode 100644
index 0000000..8cb18bc
--- /dev/null
+++ b/runtime/src/iree/hal/drivers/dylib_sync/registration/BUILD
@@ -0,0 +1,29 @@
+# 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
+
+load("//build_tools/bazel:build_defs.oss.bzl", "iree_runtime_cc_library")
+
+package(
+    default_visibility = ["//visibility:public"],
+    features = ["layering_check"],
+    licenses = ["notice"],  # Apache 2.0
+)
+
+iree_runtime_cc_library(
+    name = "registration",
+    srcs = ["driver_module.c"],
+    hdrs = ["driver_module.h"],
+    defines = [
+        "IREE_HAL_HAVE_DYLIB_SYNC_DRIVER_MODULE=1",
+    ],
+    deps = [
+        "//runtime/src/iree/base",
+        "//runtime/src/iree/hal",
+        "//runtime/src/iree/hal/local",
+        "//runtime/src/iree/hal/local:sync_driver",
+        "//runtime/src/iree/hal/local/loaders:embedded_library_loader",
+    ],
+)
diff --git a/runtime/src/iree/hal/dylib/CMakeLists.txt b/runtime/src/iree/hal/drivers/dylib_sync/registration/CMakeLists.txt
similarity index 66%
copy from runtime/src/iree/hal/dylib/CMakeLists.txt
copy to runtime/src/iree/hal/drivers/dylib_sync/registration/CMakeLists.txt
index c6326d7..4823bc1 100644
--- a/runtime/src/iree/hal/dylib/CMakeLists.txt
+++ b/runtime/src/iree/hal/drivers/dylib_sync/registration/CMakeLists.txt
@@ -1,6 +1,6 @@
 ################################################################################
 # Autogenerated by build_tools/bazel_to_cmake/bazel_to_cmake.py from           #
-# runtime/src/iree/hal/dylib/BUILD                                             #
+# runtime/src/iree/hal/drivers/dylib_sync/registration/BUILD                   #
 #                                                                              #
 # Use iree_cmake_extra_content from iree/build_defs.oss.bzl to add arbitrary   #
 # CMake-only content.                                                          #
@@ -10,4 +10,22 @@
 
 iree_add_all_subdirs()
 
+iree_cc_library(
+  NAME
+    registration
+  HDRS
+    "driver_module.h"
+  SRCS
+    "driver_module.c"
+  DEPS
+    iree::base
+    iree::hal
+    iree::hal::local
+    iree::hal::local::loaders::embedded_library_loader
+    iree::hal::local::sync_driver
+  DEFINES
+    "IREE_HAL_HAVE_DYLIB_SYNC_DRIVER_MODULE=1"
+  PUBLIC
+)
+
 ### BAZEL_TO_CMAKE_PRESERVES_ALL_CONTENT_BELOW_THIS_LINE ###
diff --git a/runtime/src/iree/hal/dylib/registration/driver_module_sync.c b/runtime/src/iree/hal/drivers/dylib_sync/registration/driver_module.c
similarity index 97%
rename from runtime/src/iree/hal/dylib/registration/driver_module_sync.c
rename to runtime/src/iree/hal/drivers/dylib_sync/registration/driver_module.c
index 29f0a69..7ebb7fb 100644
--- a/runtime/src/iree/hal/dylib/registration/driver_module_sync.c
+++ b/runtime/src/iree/hal/drivers/dylib_sync/registration/driver_module.c
@@ -4,7 +4,7 @@
 // See https://llvm.org/LICENSE.txt for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 
-#include "iree/hal/dylib/registration/driver_module_sync.h"
+#include "iree/hal/drivers/dylib_sync/registration/driver_module.h"
 
 #include <inttypes.h>
 #include <stddef.h>
diff --git a/runtime/src/iree/hal/dylib/registration/driver_module_sync.h b/runtime/src/iree/hal/drivers/dylib_sync/registration/driver_module.h
similarity index 75%
rename from runtime/src/iree/hal/dylib/registration/driver_module_sync.h
rename to runtime/src/iree/hal/drivers/dylib_sync/registration/driver_module.h
index 2f8139f..08bd04e 100644
--- a/runtime/src/iree/hal/dylib/registration/driver_module_sync.h
+++ b/runtime/src/iree/hal/drivers/dylib_sync/registration/driver_module.h
@@ -4,8 +4,8 @@
 // See https://llvm.org/LICENSE.txt for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 
-#ifndef IREE_HAL_DYLIB_REGISTRATION_DRIVER_MODULE_SYNC_H_
-#define IREE_HAL_DYLIB_REGISTRATION_DRIVER_MODULE_SYNC_H_
+#ifndef IREE_HAL_DRIVER_DYLIB_SYNC_REGISTRATION_DRIVER_MODULE_H_
+#define IREE_HAL_DRIVER_DYLIB_SYNC_REGISTRATION_DRIVER_MODULE_H_
 
 #include "iree/base/api.h"
 #include "iree/hal/api.h"
@@ -23,4 +23,4 @@
 }  // extern "C"
 #endif  // __cplusplus
 
-#endif  // IREE_HAL_DYLIB_REGISTRATION_DRIVER_MODULE_SYNC_H_
+#endif  // IREE_HAL_DRIVER_DYLIB_SYNC_REGISTRATION_DRIVER_MODULE_H_
diff --git a/runtime/src/iree/hal/drivers/init.c b/runtime/src/iree/hal/drivers/init.c
index 4e905ac..a450cb8 100644
--- a/runtime/src/iree/hal/drivers/init.c
+++ b/runtime/src/iree/hal/drivers/init.c
@@ -13,19 +13,19 @@
 #endif  // IREE_HAL_HAVE_CUDA_DRIVER_MODULE
 
 #if defined(IREE_HAL_HAVE_DYLIB_DRIVER_MODULE)
-#include "iree/hal/dylib/registration/driver_module.h"
+#include "iree/hal/drivers/dylib/registration/driver_module.h"
 #endif  // IREE_HAL_HAVE_DYLIB_DRIVER_MODULE
 
 #if defined(IREE_HAL_HAVE_DYLIB_SYNC_DRIVER_MODULE)
-#include "iree/hal/dylib/registration/driver_module_sync.h"
+#include "iree/hal/drivers/dylib_sync/registration/driver_module.h"
 #endif  // IREE_HAL_HAVE_DYLIB_SYNC_DRIVER_MODULE
 
 #if defined(IREE_HAL_HAVE_VMVX_DRIVER_MODULE)
-#include "iree/hal/vmvx/registration/driver_module.h"
+#include "iree/hal/drivers/vmvx/registration/driver_module.h"
 #endif  // IREE_HAL_HAVE_VMVX_DRIVER_MODULE
 
 #if defined(IREE_HAL_HAVE_VMVX_SYNC_DRIVER_MODULE)
-#include "iree/hal/vmvx/registration/driver_module_sync.h"
+#include "iree/hal/drivers/vmvx_sync/registration/driver_module.h"
 #endif  // IREE_HAL_HAVE_VMVX_SYNC_DRIVER_MODULE
 
 #if defined(IREE_HAL_HAVE_VULKAN_DRIVER_MODULE)
diff --git a/runtime/src/iree/hal/vmvx/BUILD b/runtime/src/iree/hal/drivers/vmvx/BUILD
similarity index 100%
rename from runtime/src/iree/hal/vmvx/BUILD
rename to runtime/src/iree/hal/drivers/vmvx/BUILD
diff --git a/runtime/src/iree/hal/dylib/CMakeLists.txt b/runtime/src/iree/hal/drivers/vmvx/CMakeLists.txt
similarity index 91%
copy from runtime/src/iree/hal/dylib/CMakeLists.txt
copy to runtime/src/iree/hal/drivers/vmvx/CMakeLists.txt
index c6326d7..5afd954 100644
--- a/runtime/src/iree/hal/dylib/CMakeLists.txt
+++ b/runtime/src/iree/hal/drivers/vmvx/CMakeLists.txt
@@ -1,6 +1,6 @@
 ################################################################################
 # Autogenerated by build_tools/bazel_to_cmake/bazel_to_cmake.py from           #
-# runtime/src/iree/hal/dylib/BUILD                                             #
+# runtime/src/iree/hal/drivers/vmvx/BUILD                                      #
 #                                                                              #
 # Use iree_cmake_extra_content from iree/build_defs.oss.bzl to add arbitrary   #
 # CMake-only content.                                                          #
diff --git a/runtime/src/iree/hal/drivers/vmvx/cts/CMakeLists.txt b/runtime/src/iree/hal/drivers/vmvx/cts/CMakeLists.txt
new file mode 100644
index 0000000..b237fce
--- /dev/null
+++ b/runtime/src/iree/hal/drivers/vmvx/cts/CMakeLists.txt
@@ -0,0 +1,20 @@
+# 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_hal_cts_test_suite(
+  DRIVER_NAME
+    vmvx
+  DRIVER_REGISTRATION_HDR
+    "runtime/src/iree/hal/drivers/vmvx/registration/driver_module.h"
+  DRIVER_REGISTRATION_FN
+    "iree_hal_vmvx_driver_module_register"
+  COMPILER_TARGET_BACKEND
+    "vmvx"
+  EXECUTABLE_FORMAT
+    "\"vmvx-bytecode-fb\""
+  DEPS
+    iree::hal::drivers::vmvx::registration
+)
diff --git a/runtime/src/iree/hal/drivers/vmvx/registration/BUILD b/runtime/src/iree/hal/drivers/vmvx/registration/BUILD
new file mode 100644
index 0000000..7711a61
--- /dev/null
+++ b/runtime/src/iree/hal/drivers/vmvx/registration/BUILD
@@ -0,0 +1,31 @@
+# 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
+
+load("//build_tools/bazel:build_defs.oss.bzl", "iree_runtime_cc_library")
+
+package(
+    default_visibility = ["//visibility:public"],
+    features = ["layering_check"],
+    licenses = ["notice"],  # Apache 2.0
+)
+
+iree_runtime_cc_library(
+    name = "registration",
+    srcs = ["driver_module.c"],
+    hdrs = ["driver_module.h"],
+    defines = [
+        "IREE_HAL_HAVE_VMVX_DRIVER_MODULE=1",
+    ],
+    deps = [
+        "//runtime/src/iree/base",
+        "//runtime/src/iree/hal",
+        "//runtime/src/iree/hal/local",
+        "//runtime/src/iree/hal/local:task_driver",
+        "//runtime/src/iree/hal/local/loaders:vmvx_module_loader",
+        "//runtime/src/iree/task:api",
+        "//runtime/src/iree/vm",
+    ],
+)
diff --git a/runtime/src/iree/hal/vmvx/registration/CMakeLists.txt b/runtime/src/iree/hal/drivers/vmvx/registration/CMakeLists.txt
similarity index 70%
copy from runtime/src/iree/hal/vmvx/registration/CMakeLists.txt
copy to runtime/src/iree/hal/drivers/vmvx/registration/CMakeLists.txt
index 888138d..20e8b49 100644
--- a/runtime/src/iree/hal/vmvx/registration/CMakeLists.txt
+++ b/runtime/src/iree/hal/drivers/vmvx/registration/CMakeLists.txt
@@ -1,6 +1,6 @@
 ################################################################################
 # Autogenerated by build_tools/bazel_to_cmake/bazel_to_cmake.py from           #
-# runtime/src/iree/hal/vmvx/registration/BUILD                                 #
+# runtime/src/iree/hal/drivers/vmvx/registration/BUILD                         #
 #                                                                              #
 # Use iree_cmake_extra_content from iree/build_defs.oss.bzl to add arbitrary   #
 # CMake-only content.                                                          #
@@ -10,8 +10,6 @@
 
 iree_add_all_subdirs()
 
-if(IREE_HAL_DRIVER_VMVX)
-
 iree_cc_library(
   NAME
     registration
@@ -32,29 +30,4 @@
   PUBLIC
 )
 
-endif()
-
-if(IREE_HAL_DRIVER_VMVX_SYNC)
-
-iree_cc_library(
-  NAME
-    sync
-  HDRS
-    "driver_module_sync.h"
-  SRCS
-    "driver_module_sync.c"
-  DEPS
-    iree::base
-    iree::hal
-    iree::hal::local
-    iree::hal::local::loaders::vmvx_module_loader
-    iree::hal::local::sync_driver
-    iree::vm
-  DEFINES
-    "IREE_HAL_HAVE_VMVX_SYNC_DRIVER_MODULE=1"
-  PUBLIC
-)
-
-endif()
-
 ### BAZEL_TO_CMAKE_PRESERVES_ALL_CONTENT_BELOW_THIS_LINE ###
diff --git a/runtime/src/iree/hal/vmvx/registration/driver_module.c b/runtime/src/iree/hal/drivers/vmvx/registration/driver_module.c
similarity index 97%
rename from runtime/src/iree/hal/vmvx/registration/driver_module.c
rename to runtime/src/iree/hal/drivers/vmvx/registration/driver_module.c
index a1a0228..2ac5fe3 100644
--- a/runtime/src/iree/hal/vmvx/registration/driver_module.c
+++ b/runtime/src/iree/hal/drivers/vmvx/registration/driver_module.c
@@ -4,7 +4,7 @@
 // See https://llvm.org/LICENSE.txt for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 
-#include "iree/hal/vmvx/registration/driver_module.h"
+#include "iree/hal/drivers/vmvx/registration/driver_module.h"
 
 #include <inttypes.h>
 #include <stddef.h>
diff --git a/runtime/src/iree/hal/vmvx/registration/driver_module.h b/runtime/src/iree/hal/drivers/vmvx/registration/driver_module.h
similarity index 73%
rename from runtime/src/iree/hal/vmvx/registration/driver_module.h
rename to runtime/src/iree/hal/drivers/vmvx/registration/driver_module.h
index 578d9c2..bfde2a7 100644
--- a/runtime/src/iree/hal/vmvx/registration/driver_module.h
+++ b/runtime/src/iree/hal/drivers/vmvx/registration/driver_module.h
@@ -4,8 +4,8 @@
 // See https://llvm.org/LICENSE.txt for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 
-#ifndef IREE_HAL_VMVX_REGISTRATION_DRIVER_MODULE_H_
-#define IREE_HAL_VMVX_REGISTRATION_DRIVER_MODULE_H_
+#ifndef IREE_HAL_DRIVERS_VMVX_REGISTRATION_DRIVER_MODULE_H_
+#define IREE_HAL_DRIVERS_VMVX_REGISTRATION_DRIVER_MODULE_H_
 
 #include "iree/base/api.h"
 #include "iree/hal/api.h"
@@ -21,4 +21,4 @@
 }  // extern "C"
 #endif  // __cplusplus
 
-#endif  // IREE_HAL_VMVX_REGISTRATION_DRIVER_MODULE_H_
+#endif  // IREE_HAL_DRIVERS_VMVX_REGISTRATION_DRIVER_MODULE_H_
diff --git a/runtime/src/iree/hal/vmvx/BUILD b/runtime/src/iree/hal/drivers/vmvx_sync/BUILD
similarity index 100%
copy from runtime/src/iree/hal/vmvx/BUILD
copy to runtime/src/iree/hal/drivers/vmvx_sync/BUILD
diff --git a/runtime/src/iree/hal/dylib/CMakeLists.txt b/runtime/src/iree/hal/drivers/vmvx_sync/CMakeLists.txt
similarity index 91%
rename from runtime/src/iree/hal/dylib/CMakeLists.txt
rename to runtime/src/iree/hal/drivers/vmvx_sync/CMakeLists.txt
index c6326d7..d87ffa1 100644
--- a/runtime/src/iree/hal/dylib/CMakeLists.txt
+++ b/runtime/src/iree/hal/drivers/vmvx_sync/CMakeLists.txt
@@ -1,6 +1,6 @@
 ################################################################################
 # Autogenerated by build_tools/bazel_to_cmake/bazel_to_cmake.py from           #
-# runtime/src/iree/hal/dylib/BUILD                                             #
+# runtime/src/iree/hal/drivers/vmvx_sync/BUILD                                 #
 #                                                                              #
 # Use iree_cmake_extra_content from iree/build_defs.oss.bzl to add arbitrary   #
 # CMake-only content.                                                          #
diff --git a/runtime/src/iree/hal/drivers/vmvx_sync/cts/CMakeLists.txt b/runtime/src/iree/hal/drivers/vmvx_sync/cts/CMakeLists.txt
new file mode 100644
index 0000000..915d093
--- /dev/null
+++ b/runtime/src/iree/hal/drivers/vmvx_sync/cts/CMakeLists.txt
@@ -0,0 +1,25 @@
+# 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_hal_cts_test_suite(
+  DRIVER_NAME
+    vmvx-sync
+  DRIVER_REGISTRATION_HDR
+    "runtime/src/iree/hal/drivers/vmvx_sync/registration/driver_module.h"
+  DRIVER_REGISTRATION_FN
+    "iree_hal_vmvx_sync_driver_module_register"
+  COMPILER_TARGET_BACKEND
+    "vmvx"
+  EXECUTABLE_FORMAT
+    "\"vmvx-bytecode-fb\""
+  DEPS
+    iree::hal::drivers::vmvx_sync::registration
+  EXCLUDED_TESTS
+    # TODO(#4680): command buffer recording so that these can run on sync HAL
+    "command_buffer"
+    "event"
+    "semaphore_submission"
+)
diff --git a/runtime/src/iree/hal/drivers/vmvx_sync/registration/BUILD b/runtime/src/iree/hal/drivers/vmvx_sync/registration/BUILD
new file mode 100644
index 0000000..1dea46c
--- /dev/null
+++ b/runtime/src/iree/hal/drivers/vmvx_sync/registration/BUILD
@@ -0,0 +1,30 @@
+# 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
+
+load("//build_tools/bazel:build_defs.oss.bzl", "iree_runtime_cc_library")
+
+package(
+    default_visibility = ["//visibility:public"],
+    features = ["layering_check"],
+    licenses = ["notice"],  # Apache 2.0
+)
+
+iree_runtime_cc_library(
+    name = "registration",
+    srcs = ["driver_module.c"],
+    hdrs = ["driver_module.h"],
+    defines = [
+        "IREE_HAL_HAVE_VMVX_SYNC_DRIVER_MODULE=1",
+    ],
+    deps = [
+        "//runtime/src/iree/base",
+        "//runtime/src/iree/hal",
+        "//runtime/src/iree/hal/local",
+        "//runtime/src/iree/hal/local:sync_driver",
+        "//runtime/src/iree/hal/local/loaders:vmvx_module_loader",
+        "//runtime/src/iree/vm",
+    ],
+)
diff --git a/runtime/src/iree/hal/vmvx/registration/CMakeLists.txt b/runtime/src/iree/hal/drivers/vmvx_sync/registration/CMakeLists.txt
similarity index 71%
rename from runtime/src/iree/hal/vmvx/registration/CMakeLists.txt
rename to runtime/src/iree/hal/drivers/vmvx_sync/registration/CMakeLists.txt
index 888138d..ab891d0 100644
--- a/runtime/src/iree/hal/vmvx/registration/CMakeLists.txt
+++ b/runtime/src/iree/hal/drivers/vmvx_sync/registration/CMakeLists.txt
@@ -1,6 +1,6 @@
 ################################################################################
 # Autogenerated by build_tools/bazel_to_cmake/bazel_to_cmake.py from           #
-# runtime/src/iree/hal/vmvx/registration/BUILD                                 #
+# runtime/src/iree/hal/drivers/vmvx_sync/registration/BUILD                    #
 #                                                                              #
 # Use iree_cmake_extra_content from iree/build_defs.oss.bzl to add arbitrary   #
 # CMake-only content.                                                          #
@@ -10,7 +10,7 @@
 
 iree_add_all_subdirs()
 
-if(IREE_HAL_DRIVER_VMVX)
+if(IREE_HAL_DRIVER_VMVX_SYNC)
 
 iree_cc_library(
   NAME
@@ -24,30 +24,6 @@
     iree::hal
     iree::hal::local
     iree::hal::local::loaders::vmvx_module_loader
-    iree::hal::local::task_driver
-    iree::task::api
-    iree::vm
-  DEFINES
-    "IREE_HAL_HAVE_VMVX_DRIVER_MODULE=1"
-  PUBLIC
-)
-
-endif()
-
-if(IREE_HAL_DRIVER_VMVX_SYNC)
-
-iree_cc_library(
-  NAME
-    sync
-  HDRS
-    "driver_module_sync.h"
-  SRCS
-    "driver_module_sync.c"
-  DEPS
-    iree::base
-    iree::hal
-    iree::hal::local
-    iree::hal::local::loaders::vmvx_module_loader
     iree::hal::local::sync_driver
     iree::vm
   DEFINES
diff --git a/runtime/src/iree/hal/vmvx/registration/driver_module_sync.c b/runtime/src/iree/hal/drivers/vmvx_sync/registration/driver_module.c
similarity index 97%
rename from runtime/src/iree/hal/vmvx/registration/driver_module_sync.c
rename to runtime/src/iree/hal/drivers/vmvx_sync/registration/driver_module.c
index 6a5fc70..ff0a29c 100644
--- a/runtime/src/iree/hal/vmvx/registration/driver_module_sync.c
+++ b/runtime/src/iree/hal/drivers/vmvx_sync/registration/driver_module.c
@@ -4,7 +4,7 @@
 // See https://llvm.org/LICENSE.txt for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 
-#include "iree/hal/vmvx/registration/driver_module_sync.h"
+#include "iree/hal/drivers/vmvx_sync/registration/driver_module.h"
 
 #include <inttypes.h>
 #include <stddef.h>
diff --git a/runtime/src/iree/hal/vmvx/registration/driver_module_sync.h b/runtime/src/iree/hal/drivers/vmvx_sync/registration/driver_module.h
similarity index 76%
rename from runtime/src/iree/hal/vmvx/registration/driver_module_sync.h
rename to runtime/src/iree/hal/drivers/vmvx_sync/registration/driver_module.h
index a73006d..62a166d 100644
--- a/runtime/src/iree/hal/vmvx/registration/driver_module_sync.h
+++ b/runtime/src/iree/hal/drivers/vmvx_sync/registration/driver_module.h
@@ -4,8 +4,8 @@
 // See https://llvm.org/LICENSE.txt for license information.
 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 
-#ifndef IREE_HAL_VMVX_REGISTRATION_DRIVER_MODULE_SYNC_H_
-#define IREE_HAL_VMVX_REGISTRATION_DRIVER_MODULE_SYNC_H_
+#ifndef IREE_HAL_DRIVER_VMVX_SYNC_REGISTRATION_DRIVER_MODULE_H_
+#define IREE_HAL_DRIVER_VMVX_SYNC_REGISTRATION_DRIVER_MODULE_H_
 
 #include "iree/base/api.h"
 #include "iree/hal/api.h"
@@ -23,4 +23,4 @@
 }  // extern "C"
 #endif  // __cplusplus
 
-#endif  // IREE_HAL_VMVX_REGISTRATION_DRIVER_MODULE_SYNC_H_
+#endif  // IREE_HAL_DRIVER_VMVX_SYNC_REGISTRATION_DRIVER_MODULE_H_
diff --git a/runtime/src/iree/hal/dylib/registration/BUILD b/runtime/src/iree/hal/dylib/registration/BUILD
deleted file mode 100644
index d689b5b..0000000
--- a/runtime/src/iree/hal/dylib/registration/BUILD
+++ /dev/null
@@ -1,71 +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
-
-load("//build_tools/bazel:build_defs.oss.bzl", "iree_cmake_extra_content", "iree_runtime_cc_library")
-
-package(
-    default_visibility = ["//visibility:public"],
-    features = ["layering_check"],
-    licenses = ["notice"],  # Apache 2.0
-)
-
-iree_cmake_extra_content(
-    content = """
-if(IREE_HAL_DRIVER_DYLIB)
-""",
-    inline = True,
-)
-
-iree_runtime_cc_library(
-    name = "registration",
-    srcs = ["driver_module.c"],
-    hdrs = ["driver_module.h"],
-    defines = [
-        "IREE_HAL_HAVE_DYLIB_DRIVER_MODULE=1",
-    ],
-    deps = [
-        "//runtime/src/iree/base",
-        "//runtime/src/iree/base/internal:flags",
-        "//runtime/src/iree/hal",
-        "//runtime/src/iree/hal/local",
-        "//runtime/src/iree/hal/local:task_driver",
-        "//runtime/src/iree/hal/local/loaders:embedded_library_loader",
-        "//runtime/src/iree/hal/local/loaders:system_library_loader",
-        "//runtime/src/iree/task:api",
-    ],
-)
-
-iree_cmake_extra_content(
-    content = """
-endif()
-
-if(IREE_HAL_DRIVER_DYLIB_SYNC)
-""",
-    inline = True,
-)
-
-iree_runtime_cc_library(
-    name = "sync",
-    srcs = ["driver_module_sync.c"],
-    hdrs = ["driver_module_sync.h"],
-    defines = [
-        "IREE_HAL_HAVE_DYLIB_SYNC_DRIVER_MODULE=1",
-    ],
-    deps = [
-        "//runtime/src/iree/base",
-        "//runtime/src/iree/hal",
-        "//runtime/src/iree/hal/local",
-        "//runtime/src/iree/hal/local:sync_driver",
-        "//runtime/src/iree/hal/local/loaders:embedded_library_loader",
-    ],
-)
-
-iree_cmake_extra_content(
-    content = """
-endif()
-""",
-    inline = True,
-)
diff --git a/runtime/src/iree/hal/vmvx/CMakeLists.txt b/runtime/src/iree/hal/vmvx/CMakeLists.txt
deleted file mode 100644
index b1096fc..0000000
--- a/runtime/src/iree/hal/vmvx/CMakeLists.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-################################################################################
-# Autogenerated by build_tools/bazel_to_cmake/bazel_to_cmake.py from           #
-# runtime/src/iree/hal/vmvx/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()
-
-### BAZEL_TO_CMAKE_PRESERVES_ALL_CONTENT_BELOW_THIS_LINE ###
diff --git a/runtime/src/iree/hal/vmvx/cts/CMakeLists.txt b/runtime/src/iree/hal/vmvx/cts/CMakeLists.txt
deleted file mode 100644
index 8a116f9..0000000
--- a/runtime/src/iree/hal/vmvx/cts/CMakeLists.txt
+++ /dev/null
@@ -1,40 +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_hal_cts_test_suite(
-  DRIVER_NAME
-    vmvx
-  DRIVER_REGISTRATION_HDR
-    "runtime/src/iree/hal/vmvx/registration/driver_module.h"
-  DRIVER_REGISTRATION_FN
-    "iree_hal_vmvx_driver_module_register"
-  COMPILER_TARGET_BACKEND
-    "vmvx"
-  EXECUTABLE_FORMAT
-    "\"vmvx-bytecode-fb\""
-  DEPS
-    iree::hal::vmvx::registration
-)
-
-iree_hal_cts_test_suite(
-  DRIVER_NAME
-    vmvx-sync
-  DRIVER_REGISTRATION_HDR
-    "runtime/src/iree/hal/vmvx/registration/driver_module_sync.h"
-  DRIVER_REGISTRATION_FN
-    "iree_hal_vmvx_sync_driver_module_register"
-  COMPILER_TARGET_BACKEND
-    "vmvx"
-  EXECUTABLE_FORMAT
-    "\"vmvx-bytecode-fb\""
-  DEPS
-    iree::hal::vmvx::registration::sync
-  EXCLUDED_TESTS
-    # TODO(#4680): command buffer recording so that these can run on sync HAL
-    "command_buffer"
-    "event"
-    "semaphore_submission"
-)
diff --git a/runtime/src/iree/hal/vmvx/registration/BUILD b/runtime/src/iree/hal/vmvx/registration/BUILD
deleted file mode 100644
index ff2410a..0000000
--- a/runtime/src/iree/hal/vmvx/registration/BUILD
+++ /dev/null
@@ -1,71 +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
-
-load("//build_tools/bazel:build_defs.oss.bzl", "iree_cmake_extra_content", "iree_runtime_cc_library")
-
-package(
-    default_visibility = ["//visibility:public"],
-    features = ["layering_check"],
-    licenses = ["notice"],  # Apache 2.0
-)
-
-iree_cmake_extra_content(
-    content = """
-if(IREE_HAL_DRIVER_VMVX)
-""",
-    inline = True,
-)
-
-iree_runtime_cc_library(
-    name = "registration",
-    srcs = ["driver_module.c"],
-    hdrs = ["driver_module.h"],
-    defines = [
-        "IREE_HAL_HAVE_VMVX_DRIVER_MODULE=1",
-    ],
-    deps = [
-        "//runtime/src/iree/base",
-        "//runtime/src/iree/hal",
-        "//runtime/src/iree/hal/local",
-        "//runtime/src/iree/hal/local:task_driver",
-        "//runtime/src/iree/hal/local/loaders:vmvx_module_loader",
-        "//runtime/src/iree/task:api",
-        "//runtime/src/iree/vm",
-    ],
-)
-
-iree_cmake_extra_content(
-    content = """
-endif()
-
-if(IREE_HAL_DRIVER_VMVX_SYNC)
-""",
-    inline = True,
-)
-
-iree_runtime_cc_library(
-    name = "sync",
-    srcs = ["driver_module_sync.c"],
-    hdrs = ["driver_module_sync.h"],
-    defines = [
-        "IREE_HAL_HAVE_VMVX_SYNC_DRIVER_MODULE=1",
-    ],
-    deps = [
-        "//runtime/src/iree/base",
-        "//runtime/src/iree/hal",
-        "//runtime/src/iree/hal/local",
-        "//runtime/src/iree/hal/local:sync_driver",
-        "//runtime/src/iree/hal/local/loaders:vmvx_module_loader",
-        "//runtime/src/iree/vm",
-    ],
-)
-
-iree_cmake_extra_content(
-    content = """
-endif()
-""",
-    inline = True,
-)
diff --git a/runtime/src/iree/modules/check/BUILD b/runtime/src/iree/modules/check/BUILD
index d85bd1d..33a94c4 100644
--- a/runtime/src/iree/modules/check/BUILD
+++ b/runtime/src/iree/modules/check/BUILD
@@ -39,7 +39,7 @@
         "//runtime/src/iree/base/internal",
         "//runtime/src/iree/base/internal:span",
         "//runtime/src/iree/hal",
-        "//runtime/src/iree/hal/vmvx/registration",
+        "//runtime/src/iree/hal/drivers/vmvx/registration",
         "//runtime/src/iree/modules/hal",
         "//runtime/src/iree/testing:gtest",
         "//runtime/src/iree/testing:gtest_main",
diff --git a/runtime/src/iree/modules/check/CMakeLists.txt b/runtime/src/iree/modules/check/CMakeLists.txt
index a465634..2195530 100644
--- a/runtime/src/iree/modules/check/CMakeLists.txt
+++ b/runtime/src/iree/modules/check/CMakeLists.txt
@@ -40,7 +40,7 @@
       iree::base::internal
       iree::base::internal::span
       iree::hal
-      iree::hal::vmvx::registration
+      iree::hal::drivers::vmvx::registration
       iree::modules::hal
       iree::testing::gtest
       iree::testing::gtest_main
diff --git a/runtime/src/iree/modules/check/check_test.cc b/runtime/src/iree/modules/check/check_test.cc
index 19b0d2e..40a91f3 100644
--- a/runtime/src/iree/modules/check/check_test.cc
+++ b/runtime/src/iree/modules/check/check_test.cc
@@ -15,7 +15,7 @@
 #include "iree/base/internal/span.h"
 #include "iree/base/status_cc.h"
 #include "iree/hal/api.h"
-#include "iree/hal/vmvx/registration/driver_module.h"
+#include "iree/hal/drivers/vmvx/registration/driver_module.h"
 #include "iree/modules/check/module.h"
 #include "iree/modules/hal/module.h"
 #include "iree/testing/gtest.h"
diff --git a/runtime/src/iree/tools/utils/BUILD b/runtime/src/iree/tools/utils/BUILD
index 450d418..bd412b2 100644
--- a/runtime/src/iree/tools/utils/BUILD
+++ b/runtime/src/iree/tools/utils/BUILD
@@ -55,7 +55,7 @@
         ":vm_util",
         "//runtime/src/iree/base",
         "//runtime/src/iree/hal",
-        "//runtime/src/iree/hal/vmvx/registration",
+        "//runtime/src/iree/hal/drivers/vmvx/registration",
         "//runtime/src/iree/modules/hal",
         "//runtime/src/iree/testing:gtest",
         "//runtime/src/iree/testing:gtest_main",
diff --git a/runtime/src/iree/tools/utils/CMakeLists.txt b/runtime/src/iree/tools/utils/CMakeLists.txt
index 8753d04..754a1e5 100644
--- a/runtime/src/iree/tools/utils/CMakeLists.txt
+++ b/runtime/src/iree/tools/utils/CMakeLists.txt
@@ -55,7 +55,7 @@
     ::vm_util
     iree::base
     iree::hal
-    iree::hal::vmvx::registration
+    iree::hal::drivers::vmvx::registration
     iree::modules::hal
     iree::testing::gtest
     iree::testing::gtest_main
diff --git a/runtime/src/iree/tools/utils/vm_util_test.cc b/runtime/src/iree/tools/utils/vm_util_test.cc
index d0477be..f610013 100644
--- a/runtime/src/iree/tools/utils/vm_util_test.cc
+++ b/runtime/src/iree/tools/utils/vm_util_test.cc
@@ -8,7 +8,7 @@
 
 #include "iree/base/api.h"
 #include "iree/hal/api.h"
-#include "iree/hal/vmvx/registration/driver_module.h"
+#include "iree/hal/drivers/vmvx/registration/driver_module.h"
 #include "iree/modules/hal/module.h"
 #include "iree/testing/gtest.h"
 #include "iree/testing/status_matchers.h"