[WebAssembly] Add end-to-end codegen tests for wasm_simd128.h

Add a test checking that each SIMD intrinsic produces the expected instruction.
Since this test spans both clang and LLVM, place it in a new
intrinsic-header-tests subdirectory of cross-project-tests.

This revives D101684 now that cross-project-tests exists. In practice, the tests
of lowering from wasm_simd128.h to LLVM IR were not as useful as this end-to-end
test.

Updates the version check of gdb in cross-project-tests/lit.cfg.py so that
unexpected version formats do not prevent the new tests from running.

Depends on D121661.

Differential Revision: https://reviews.llvm.org/D121662
diff --git a/cross-project-tests/lit.cfg.py b/cross-project-tests/lit.cfg.py
index ae4b7c2..0eeec79 100644
--- a/cross-project-tests/lit.cfg.py
+++ b/cross-project-tests/lit.cfg.py
@@ -3,7 +3,9 @@
 import re
 import subprocess
 import sys
-from distutils.version import StrictVersion
+
+# TODO: LooseVersion is undocumented; use something else.
+from distutils.version import LooseVersion
 
 import lit.formats
 import lit.util
@@ -246,7 +248,7 @@
 gdb_version_string = get_gdb_version_string()
 if dwarf_version_string and gdb_version_string:
   if int(dwarf_version_string) >= 5:
-    if StrictVersion(gdb_version_string) < StrictVersion('10.1'):
+    if LooseVersion(gdb_version_string) < LooseVersion('10.1'):
       # Example for llgdb-tests, which use lldb on darwin but gdb elsewhere:
       # XFAIL: !system-darwin && gdb-clang-incompatibility
       config.available_features.add('gdb-clang-incompatibility')
@@ -255,3 +257,7 @@
 llvm_config.feature_config(
     [('--build-mode', {'Debug|RelWithDebInfo': 'debug-info'})]
 )
+
+# Allow 'REQUIRES: XXX-registered-target' in tests.
+for arch in config.targets_to_build:
+    config.available_features.add(arch.lower() + '-registered-target')