--- cc/private/toolchain/BUILD.windows.tpl
+++ cc/private/toolchain/BUILD.windows.tpl
@@ -85,6 +85,7 @@ cc_toolchain_suite(
         "x64_windows|mingw-gcc": ":cc-compiler-x64_windows_mingw",
         "x64_x86_windows|mingw-gcc": ":cc-compiler-x64_x86_windows_mingw",
         "x64_windows|clang-cl": ":cc-compiler-x64_windows-clang-cl",
+        "x64_x86_windows|clang-cl": ":cc-compiler-x64_x86_windows-clang-cl",
         "x64_windows_msys": ":cc-compiler-x64_windows_msys",
         "x64_windows": ":cc-compiler-x64_windows",
         "x64_x86_windows": ":cc-compiler-x64_x86_windows",
@@ -621,6 +622,75 @@ toolchain(
     toolchain_type = "@bazel_tools//tools/cpp:toolchain_type",
 )
 
+cc_toolchain(
+    name = "cc-compiler-x64_x86_windows-clang-cl",
+    toolchain_identifier = "clang_cl_x64_x86",
+    toolchain_config = ":clang_cl_x64_x86",
+    all_files = ":empty",
+    ar_files = ":empty",
+    as_files = ":clangcl_compiler_files",
+    compiler_files = ":clangcl_compiler_files",
+    dwp_files = ":empty",
+    linker_files = ":empty",
+    objcopy_files = ":empty",
+    strip_files = ":empty",
+    supports_param_files = 1,
+)
+
+cc_toolchain_config(
+    name = "clang_cl_x64_x86",
+    cpu = "x64_x86_windows",
+    compiler = "clang-cl",
+    host_system_name = "local",
+    target_system_name = "local",
+    target_libc = "msvcrt",
+    abi_version = "local",
+    abi_libc_version = "local",
+    toolchain_identifier = "clang_cl_x64_x86",
+    msvc_env_tmp = "%{clang_cl_env_tmp_x86}",
+    msvc_env_path = "%{clang_cl_env_path_x86}",
+    msvc_env_include = "%{clang_cl_env_include_x86}",
+    msvc_env_lib = "%{clang_cl_env_lib_x86}",
+    msvc_cl_path = "%{clang_cl_cl_path_x86}",
+    msvc_ml_path = "%{clang_cl_ml_path_x86}",
+    msvc_link_path = "%{clang_cl_link_path_x86}",
+    msvc_lib_path = "%{clang_cl_lib_path_x86}",
+    cxx_builtin_include_directories = [%{clang_cl_cxx_builtin_include_directories_x86}],
+    tool_paths = {
+        "ar": "%{clang_cl_lib_path_x86}",
+        "ml": "%{clang_cl_ml_path_x86}",
+        "cpp": "%{clang_cl_cl_path_x86}",
+        "gcc": "%{clang_cl_cl_path_x86}",
+        "gcov": "wrapper/bin/msvc_nop.bat",
+        "ld": "%{clang_cl_link_path_x86}",
+        "nm": "wrapper/bin/msvc_nop.bat",
+        "objcopy": "wrapper/bin/msvc_nop.bat",
+        "objdump": "wrapper/bin/msvc_nop.bat",
+        "strip": "wrapper/bin/msvc_nop.bat",
+    },
+    archiver_flags = ["/MACHINE:X86"],
+    default_compile_flags = ["-m32"],
+    default_link_flags = ["/MACHINE:X86"],
+    dbg_mode_debug_flag = "%{clang_cl_dbg_mode_debug_flag_x86}",
+    fastbuild_mode_debug_flag = "%{clang_cl_fastbuild_mode_debug_flag_x86}",
+    supports_parse_showincludes = %{clang_cl_parse_showincludes_x86},
+)
+
+toolchain(
+    name = "cc-toolchain-x64_x86_windows-clang-cl",
+    exec_compatible_with = [
+        "@platforms//cpu:x86_64",
+        "@platforms//os:windows",
+        "@rules_cc//cc/private/toolchain:clang-cl",
+    ],
+    target_compatible_with = [
+        "@platforms//cpu:x86_32",
+        "@platforms//os:windows",
+    ],
+    toolchain = ":cc-compiler-x64_x86_windows-clang-cl",
+    toolchain_type = "@bazel_tools//tools/cpp:toolchain_type",
+)
+
 cc_toolchain(
     name = "cc-compiler-arm64_windows-clang-cl",
     toolchain_identifier = "clang_cl_arm64",
@@ -668,6 +738,7 @@
         "strip": "wrapper/bin/msvc_nop.bat",
     },
     archiver_flags = ["/MACHINE:ARM64"],
+    default_compile_flags = ["--target=aarch64-pc-windows-msvc"],
     default_link_flags = ["/MACHINE:ARM64"],
     dbg_mode_debug_flag = "%{clang_cl_dbg_mode_debug_flag_arm64}",
     fastbuild_mode_debug_flag = "%{clang_cl_fastbuild_mode_debug_flag_arm64}",
