diff --git a/clang-tools-extra/clangd/test/lit.cfg.py b/clang-tools-extra/clangd/test/lit.cfg.py
--- a/clang-tools-extra/clangd/test/lit.cfg.py
+++ b/clang-tools-extra/clangd/test/lit.cfg.py
@@ -10,10 +10,19 @@
 config.test_source_root = config.clangd_source_dir + "/test"
 config.test_exec_root = config.clangd_binary_dir + "/test"
 
+
+# Used to enable tests based on the required targets. Can be queried with e.g.
+#    REQUIRES: x86-registered-target
+def calculate_arch_features(arch_string):
+  return [arch.lower() + '-registered-target' for arch in arch_string.split()]
+
+
+lit.llvm.llvm_config.feature_config([('--targets-built',
+                                      calculate_arch_features)])
+
 # Clangd-specific lit environment.
 config.substitutions.append(('%clangd-benchmark-dir',
                              config.clangd_binary_dir + "/benchmarks"))
 
 if config.clangd_build_xpc:
   config.available_features.add('clangd-xpc-support')
-