summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Liew <dan@su-root.co.uk>2019-10-17 18:12:49 +0000
committerDan Liew <dan@su-root.co.uk>2019-10-17 18:12:49 +0000
commit5be7eb3ab4da6e89ed23b137e6baaa13a530c9b3 (patch)
tree4208ac8b85dfaa58f76a2aafffdac0f0829d7992
parent48993d5ab9413f0e5b94dfa292a233ce55b09e3e (diff)
downloadbcm5719-llvm-5be7eb3ab4da6e89ed23b137e6baaa13a530c9b3.tar.gz
bcm5719-llvm-5be7eb3ab4da6e89ed23b137e6baaa13a530c9b3.zip
[Builtins] Provide a mechanism to selectively disable tests based on whether an implementation is provided by a builtin library.
Summary: If a platform removes some builtin implementations (e.g. via the Darwin-excludes mechanism) then this can lead to test failures because the test expects an implementation to be available. To solve this lit features are added for each configuration based on which sources are included in the builtin library. The features are of the form `librt_has_<name>` where `<name>` is the name of the source file with the file extension removed. This handles C and assembly sources. With the lit features in place it is possible to make certain tests require them. Example: ``` REQUIRES: librt_has_comparedf2 ``` All top-level tests in `test/builtins/Unit` (i.e. not under `arm`, `ppc`, and `riscv`) have been annotated with the appropriate `REQUIRES: librt_has_*` statement. rdar://problem/55520987 Reviewers: beanz, steven_wu, arphaman, dexonsmith, phosek, thakis Subscribers: mgorny, #sanitizers, llvm-commits Tags: #llvm, #sanitizers Differential Revision: https://reviews.llvm.org/D68064 llvm-svn: 375150
-rw-r--r--compiler-rt/test/builtins/CMakeLists.txt27
-rw-r--r--compiler-rt/test/builtins/Unit/absvdi2_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/absvsi2_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/absvti2_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/adddf3vfp_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/addsf3vfp_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/addtf3_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/addvdi3_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/addvsi3_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/addvti3_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/ashldi3_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/ashlti3_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/ashrdi3_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/ashrti3_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/bswapdi2_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/bswapsi2_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/clear_cache_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/clzdi2_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/clzsi2_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/clzti2_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/cmpdi2_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/cmpti2_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/comparedf2_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/comparesf2_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/cpu_model_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/ctzdi2_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/ctzsi2_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/ctzti2_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/divdc3_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/divdf3_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/divdf3vfp_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/divdi3_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/divmodsi4_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/divsc3_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/divsf3_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/divsf3vfp_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/divsi3_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/divtc3_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/divtf3_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/divti3_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/divxc3_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/enable_execute_stack_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/eqdf2vfp_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/eqsf2vfp_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/eqtf2_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/extenddftf2_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/extendhfsf2_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/extendsfdf2vfp_test.c (renamed from compiler-rt/test/builtins/Unit/extebdsfdf2vfp_test.c)1
-rw-r--r--compiler-rt/test/builtins/Unit/extendsftf2_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/ffsdi2_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/ffssi2_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/ffsti2_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/fixdfdi_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/fixdfsivfp_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/fixdfti_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/fixsfdi_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/fixsfsivfp_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/fixsfti_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/fixtfdi_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/fixtfsi_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/fixtfti_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/fixunsdfdi_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/fixunsdfsi_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/fixunsdfsivfp_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/fixunsdfti_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/fixunssfdi_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/fixunssfsi_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/fixunssfsivfp_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/fixunssfti_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/fixunstfdi_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/fixunstfsi_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/fixunstfti_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/fixunsxfdi_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/fixunsxfsi_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/fixunsxfti_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/fixxfdi_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/fixxfti_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/floatdidf_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/floatdisf_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/floatditf_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/floatdixf_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/floatsidfvfp_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/floatsisfvfp_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/floatsitf_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/floattidf_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/floattisf_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/floattitf_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/floattixf_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/floatundidf_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/floatundisf_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/floatunditf_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/floatundixf_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/floatunsitf_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/floatunssidfvfp_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/floatunssisfvfp_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/floatuntidf_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/floatuntisf_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/floatuntitf_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/floatuntixf_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/gedf2vfp_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/gesf2vfp_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/getf2_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/gtdf2vfp_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/gtsf2vfp_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/gttf2_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/ledf2vfp_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/lesf2vfp_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/letf2_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/lit.cfg.py22
-rw-r--r--compiler-rt/test/builtins/Unit/lit.site.cfg.py.in2
-rw-r--r--compiler-rt/test/builtins/Unit/lshrdi3_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/lshrti3_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/ltdf2vfp_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/ltsf2vfp_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/lttf2_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/moddi3_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/modsi3_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/modti3_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/muldc3_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/muldf3vfp_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/muldi3_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/mulodi4_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/mulosi4_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/muloti4_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/mulsc3_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/mulsf3vfp_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/multc3_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/multf3_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/multi3_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/mulvdi3_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/mulvsi3_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/mulvti3_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/mulxc3_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/nedf2vfp_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/negdf2vfp_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/negdi2_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/negsf2vfp_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/negti2_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/negvdi2_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/negvsi2_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/negvti2_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/nesf2vfp_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/netf2_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/paritydi2_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/paritysi2_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/parityti2_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/popcountdi2_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/popcountsi2_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/popcountti2_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/powidf2_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/powisf2_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/powitf2_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/powixf2_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/subdf3vfp_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/subsf3vfp_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/subtf3_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/subvdi3_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/subvsi3_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/subvti3_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/trampoline_setup_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/truncdfhf2_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/truncdfsf2_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/truncdfsf2vfp_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/truncsfhf2_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/trunctfdf2_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/trunctfsf2_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/ucmpdi2_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/ucmpti2_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/udivdi3_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/udivmoddi4_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/udivmodsi4_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/udivmodti4_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/udivsi3_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/udivti3_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/umoddi3_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/umodsi3_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/umodti3_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/unorddf2vfp_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/unordsf2vfp_test.c1
-rw-r--r--compiler-rt/test/builtins/Unit/unordtf2_test.c1
180 files changed, 228 insertions, 0 deletions
diff --git a/compiler-rt/test/builtins/CMakeLists.txt b/compiler-rt/test/builtins/CMakeLists.txt
index b80b8a112b5..e3796f840a6 100644
--- a/compiler-rt/test/builtins/CMakeLists.txt
+++ b/compiler-rt/test/builtins/CMakeLists.txt
@@ -44,6 +44,33 @@ foreach(arch ${BUILTIN_TEST_ARCH})
string(REPLACE ";" " " BUILTINS_TEST_TARGET_CFLAGS "${BUILTINS_TEST_TARGET_CFLAGS}")
endif()
+ # Compute builtins available in library and add them as lit features.
+ if(APPLE)
+ # TODO: Support other Apple platforms.
+ set(BUILTIN_LIB_TARGET_NAME "clang_rt.builtins_${arch}_osx")
+ else()
+ set(BUILTIN_LIB_TARGET_NAME "clang_rt.builtins-${arch}")
+ endif()
+ if (NOT TARGET "${BUILTIN_LIB_TARGET_NAME}")
+ message(FATAL_ERROR "Target ${BUILTIN_LIB_TARGET_NAME} does not exist")
+ endif()
+ get_target_property(BUILTIN_LIB_SOURCES "${BUILTIN_LIB_TARGET_NAME}" SOURCES)
+ list(LENGTH BUILTIN_LIB_SOURCES BUILTIN_LIB_SOURCES_LENGTH)
+ if (BUILTIN_LIB_SOURCES_LENGTH EQUAL 0)
+ message(FATAL_ERROR "Failed to find source files for ${arch} builtin library")
+ endif()
+ set(BUILTINS_LIT_SOURCE_FEATURES "")
+ foreach (file_name ${BUILTIN_LIB_SOURCES})
+ # Strip off any directories and file extensions. This approach means we add
+ # add a single feature if there is a C source file or assembly override
+ # present in the builtin library.
+ # E.g.
+ # "hexagon/udivsi3.S" => "udivsi3"
+ # "udivsi3.c" => "udivsi3"
+ get_filename_component(FILE_NAME_FILTERED "${file_name}" NAME_WE)
+ list(APPEND BUILTINS_LIT_SOURCE_FEATURES "librt_has_${FILE_NAME_FILTERED}")
+ endforeach()
+
string(TOUPPER ${arch} ARCH_UPPER_CASE)
set(CONFIG_NAME ${ARCH_UPPER_CASE}${OS_NAME}Config)
configure_lit_site_cfg(
diff --git a/compiler-rt/test/builtins/Unit/absvdi2_test.c b/compiler-rt/test/builtins/Unit/absvdi2_test.c
index 00db5cc2f3d..a1bdbc5ef91 100644
--- a/compiler-rt/test/builtins/Unit/absvdi2_test.c
+++ b/compiler-rt/test/builtins/Unit/absvdi2_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_absvdi2
//===-- absvdi2_test.c - Test __absvdi2 -----------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/absvsi2_test.c b/compiler-rt/test/builtins/Unit/absvsi2_test.c
index 332395b24e5..b9d3105d303 100644
--- a/compiler-rt/test/builtins/Unit/absvsi2_test.c
+++ b/compiler-rt/test/builtins/Unit/absvsi2_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_absvsi2
//===-- absvsi2_test.c - Test __absvsi2 -----------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/absvti2_test.c b/compiler-rt/test/builtins/Unit/absvti2_test.c
index 60d6c34ffe7..635c0f92ba1 100644
--- a/compiler-rt/test/builtins/Unit/absvti2_test.c
+++ b/compiler-rt/test/builtins/Unit/absvti2_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_absvti2
// REQUIRES: int128
//===-- absvti2_test.c - Test __absvti2 -----------------------------------===//
//
diff --git a/compiler-rt/test/builtins/Unit/adddf3vfp_test.c b/compiler-rt/test/builtins/Unit/adddf3vfp_test.c
index f2642323d1f..5eb85b35811 100644
--- a/compiler-rt/test/builtins/Unit/adddf3vfp_test.c
+++ b/compiler-rt/test/builtins/Unit/adddf3vfp_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_adddf3vfp
//===-- adddf3vfp_test.c - Test __adddf3vfp -------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/addsf3vfp_test.c b/compiler-rt/test/builtins/Unit/addsf3vfp_test.c
index 8a742e6a4d0..50522f0d477 100644
--- a/compiler-rt/test/builtins/Unit/addsf3vfp_test.c
+++ b/compiler-rt/test/builtins/Unit/addsf3vfp_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_addsf3vfp
//===-- addsf3vfp_test.c - Test __addsf3vfp -------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/addtf3_test.c b/compiler-rt/test/builtins/Unit/addtf3_test.c
index 492d93bb974..7ca0355e42a 100644
--- a/compiler-rt/test/builtins/Unit/addtf3_test.c
+++ b/compiler-rt/test/builtins/Unit/addtf3_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_addtf3
//===--------------- addtf3_test.c - Test __addtf3 ------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/addvdi3_test.c b/compiler-rt/test/builtins/Unit/addvdi3_test.c
index e30993ec069..0d87259e1a1 100644
--- a/compiler-rt/test/builtins/Unit/addvdi3_test.c
+++ b/compiler-rt/test/builtins/Unit/addvdi3_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_addvdi3
//===-- addvdi3_test.c - Test __addvdi3 -----------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/addvsi3_test.c b/compiler-rt/test/builtins/Unit/addvsi3_test.c
index 03ced89c289..73d9dbfb073 100644
--- a/compiler-rt/test/builtins/Unit/addvsi3_test.c
+++ b/compiler-rt/test/builtins/Unit/addvsi3_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_addvsi3
//===-- addvsi3_test.c - Test __addvsi3 -----------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/addvti3_test.c b/compiler-rt/test/builtins/Unit/addvti3_test.c
index 289ddc36090..3c39613d73b 100644
--- a/compiler-rt/test/builtins/Unit/addvti3_test.c
+++ b/compiler-rt/test/builtins/Unit/addvti3_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_addvti3
// REQUIRES: int128
//===-- addvti3_test.c - Test __addvti3 -----------------------------------===//
//
diff --git a/compiler-rt/test/builtins/Unit/ashldi3_test.c b/compiler-rt/test/builtins/Unit/ashldi3_test.c
index 671dcadc347..6061421d411 100644
--- a/compiler-rt/test/builtins/Unit/ashldi3_test.c
+++ b/compiler-rt/test/builtins/Unit/ashldi3_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_ashldi3
//===-- ashldi3_test.c - Test __ashldi3 -----------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/ashlti3_test.c b/compiler-rt/test/builtins/Unit/ashlti3_test.c
index 125863189af..422e3cfa877 100644
--- a/compiler-rt/test/builtins/Unit/ashlti3_test.c
+++ b/compiler-rt/test/builtins/Unit/ashlti3_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_ashlti3
// REQUIRES: int128
//===-- ashlti3_test.c - Test __ashlti3 -----------------------------------===//
//
diff --git a/compiler-rt/test/builtins/Unit/ashrdi3_test.c b/compiler-rt/test/builtins/Unit/ashrdi3_test.c
index 456660037a8..d3749f1b21e 100644
--- a/compiler-rt/test/builtins/Unit/ashrdi3_test.c
+++ b/compiler-rt/test/builtins/Unit/ashrdi3_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_ashrdi3
//===-- ashrdi3_test.c - Test __ashrdi3 -----------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/ashrti3_test.c b/compiler-rt/test/builtins/Unit/ashrti3_test.c
index 530cff53cb5..a491e900660 100644
--- a/compiler-rt/test/builtins/Unit/ashrti3_test.c
+++ b/compiler-rt/test/builtins/Unit/ashrti3_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_ashrti3
// REQUIRES: int128
//===-- ashrti3_test.c - Test __ashrti3 -----------------------------------===//
//
diff --git a/compiler-rt/test/builtins/Unit/bswapdi2_test.c b/compiler-rt/test/builtins/Unit/bswapdi2_test.c
index a6b07775f75..f61abc1e74d 100644
--- a/compiler-rt/test/builtins/Unit/bswapdi2_test.c
+++ b/compiler-rt/test/builtins/Unit/bswapdi2_test.c
@@ -1,5 +1,6 @@
// UNSUPPORTED: armv6m-target-arch
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_bswapdi2
//===-- bswapdi2_test.c - Test __bswapdi2 ---------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/bswapsi2_test.c b/compiler-rt/test/builtins/Unit/bswapsi2_test.c
index d2f03cb7482..07f1e3a81a6 100644
--- a/compiler-rt/test/builtins/Unit/bswapsi2_test.c
+++ b/compiler-rt/test/builtins/Unit/bswapsi2_test.c
@@ -1,5 +1,6 @@
// UNSUPPORTED: armv6m-target-arch
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_bswapsi2
//===-- bswapsi2_test.c - Test __bswapsi2 ---------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/clear_cache_test.c b/compiler-rt/test/builtins/Unit/clear_cache_test.c
index 4220ba65190..1713bec9372 100644
--- a/compiler-rt/test/builtins/Unit/clear_cache_test.c
+++ b/compiler-rt/test/builtins/Unit/clear_cache_test.c
@@ -1,6 +1,7 @@
// REQUIRES: native-run
// UNSUPPORTED: arm, aarch64
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_clear_cache
//===-- clear_cache_test.c - Test clear_cache -----------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/clzdi2_test.c b/compiler-rt/test/builtins/Unit/clzdi2_test.c
index 1ef1ff323b2..0d4c06e617a 100644
--- a/compiler-rt/test/builtins/Unit/clzdi2_test.c
+++ b/compiler-rt/test/builtins/Unit/clzdi2_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_clzdi2
//===-- clzdi2_test.c - Test __clzdi2 -------------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/clzsi2_test.c b/compiler-rt/test/builtins/Unit/clzsi2_test.c
index e2e1e1b65a1..fc517cf144a 100644
--- a/compiler-rt/test/builtins/Unit/clzsi2_test.c
+++ b/compiler-rt/test/builtins/Unit/clzsi2_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_clzsi2
//===-- clzsi2_test.c - Test __clzsi2 -------------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/clzti2_test.c b/compiler-rt/test/builtins/Unit/clzti2_test.c
index 15b87132739..ef73ca41c8d 100644
--- a/compiler-rt/test/builtins/Unit/clzti2_test.c
+++ b/compiler-rt/test/builtins/Unit/clzti2_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_clzti2
// REQUIRES: int128
//===-- clzti2_test.c - Test __clzti2 -------------------------------------===//
//
diff --git a/compiler-rt/test/builtins/Unit/cmpdi2_test.c b/compiler-rt/test/builtins/Unit/cmpdi2_test.c
index 4bfcac025e6..1f64d2fc05e 100644
--- a/compiler-rt/test/builtins/Unit/cmpdi2_test.c
+++ b/compiler-rt/test/builtins/Unit/cmpdi2_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_cmpdi2
//===-- cmpdi2_test.c - Test __cmpdi2 -------------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/cmpti2_test.c b/compiler-rt/test/builtins/Unit/cmpti2_test.c
index 03183c870a9..7dd22880bdf 100644
--- a/compiler-rt/test/builtins/Unit/cmpti2_test.c
+++ b/compiler-rt/test/builtins/Unit/cmpti2_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_cmpti2
// REQUIRES: int128
//===-- cmpti2_test.c - Test __cmpti2 -------------------------------------===//
//
diff --git a/compiler-rt/test/builtins/Unit/comparedf2_test.c b/compiler-rt/test/builtins/Unit/comparedf2_test.c
index 9b1cac20b37..04a183afc3b 100644
--- a/compiler-rt/test/builtins/Unit/comparedf2_test.c
+++ b/compiler-rt/test/builtins/Unit/comparedf2_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_comparedf2
//===-- cmpdf2_test.c - Test __cmpdf2 -------------------------------------===//
//
diff --git a/compiler-rt/test/builtins/Unit/comparesf2_test.c b/compiler-rt/test/builtins/Unit/comparesf2_test.c
index cabd20241f6..354cf008373 100644
--- a/compiler-rt/test/builtins/Unit/comparesf2_test.c
+++ b/compiler-rt/test/builtins/Unit/comparesf2_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_comparesf2
//===-- cmpsf2_test.c - Test __cmpsf2 -------------------------------------===//
//
diff --git a/compiler-rt/test/builtins/Unit/cpu_model_test.c b/compiler-rt/test/builtins/Unit/cpu_model_test.c
index dee031ea034..21847f6790f 100644
--- a/compiler-rt/test/builtins/Unit/cpu_model_test.c
+++ b/compiler-rt/test/builtins/Unit/cpu_model_test.c
@@ -2,6 +2,7 @@
// XFAIL: *
// REQUIRES: x86-target-arch
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_cpu_model
//===-- cpu_model_test.c - Test __builtin_cpu_supports --------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/ctzdi2_test.c b/compiler-rt/test/builtins/Unit/ctzdi2_test.c
index 269c43540b7..ebec5fab138 100644
--- a/compiler-rt/test/builtins/Unit/ctzdi2_test.c
+++ b/compiler-rt/test/builtins/Unit/ctzdi2_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_ctzdi2
//===-- ctzdi2_test.c - Test __ctzdi2 -------------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/ctzsi2_test.c b/compiler-rt/test/builtins/Unit/ctzsi2_test.c
index 15ca4fdf1bc..26c0adf8df8 100644
--- a/compiler-rt/test/builtins/Unit/ctzsi2_test.c
+++ b/compiler-rt/test/builtins/Unit/ctzsi2_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_ctzsi2
//===-- ctzsi2_test.c - Test __ctzsi2 -------------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/ctzti2_test.c b/compiler-rt/test/builtins/Unit/ctzti2_test.c
index a321a0aac04..4e27f16d587 100644
--- a/compiler-rt/test/builtins/Unit/ctzti2_test.c
+++ b/compiler-rt/test/builtins/Unit/ctzti2_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_ctzti2
// REQUIRES: int128
//===-- ctzti2_test.c - Test __ctzti2 -------------------------------------===//
//
diff --git a/compiler-rt/test/builtins/Unit/divdc3_test.c b/compiler-rt/test/builtins/Unit/divdc3_test.c
index 6a59691c466..1f3cb225f35 100644
--- a/compiler-rt/test/builtins/Unit/divdc3_test.c
+++ b/compiler-rt/test/builtins/Unit/divdc3_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_divdc3
//===-- divdc3_test.c - Test __divdc3 -------------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/divdf3_test.c b/compiler-rt/test/builtins/Unit/divdf3_test.c
index 00b021f4ec7..28eb4eb892d 100644
--- a/compiler-rt/test/builtins/Unit/divdf3_test.c
+++ b/compiler-rt/test/builtins/Unit/divdf3_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_divdf3
//===--------------- divdf3_test.c - Test __divdf3 ------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/divdf3vfp_test.c b/compiler-rt/test/builtins/Unit/divdf3vfp_test.c
index 76d7cfafa8f..3ff9d117ed9 100644
--- a/compiler-rt/test/builtins/Unit/divdf3vfp_test.c
+++ b/compiler-rt/test/builtins/Unit/divdf3vfp_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_divdf3vfp
//===-- divdf3vfp_test.c - Test __divdf3vfp -------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/divdi3_test.c b/compiler-rt/test/builtins/Unit/divdi3_test.c
index 41ee1cf07f1..44cbb178a96 100644
--- a/compiler-rt/test/builtins/Unit/divdi3_test.c
+++ b/compiler-rt/test/builtins/Unit/divdi3_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_divdi3
//===-- divdi3_test.c - Test __divdi3 -------------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/divmodsi4_test.c b/compiler-rt/test/builtins/Unit/divmodsi4_test.c
index 4630ad8e709..326457f66ca 100644
--- a/compiler-rt/test/builtins/Unit/divmodsi4_test.c
+++ b/compiler-rt/test/builtins/Unit/divmodsi4_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_divmodsi4
//===-- divmodsi4_test.c - Test __divmodsi4 -------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/divsc3_test.c b/compiler-rt/test/builtins/Unit/divsc3_test.c
index 5781cff4773..f09a2c8f733 100644
--- a/compiler-rt/test/builtins/Unit/divsc3_test.c
+++ b/compiler-rt/test/builtins/Unit/divsc3_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -lm -o %t && %run %t
+// REQUIRES: librt_has_divsc3
//===-- divsc3_test.c - Test __divsc3 -------------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/divsf3_test.c b/compiler-rt/test/builtins/Unit/divsf3_test.c
index 4b14c81b322..1b4c241cc31 100644
--- a/compiler-rt/test/builtins/Unit/divsf3_test.c
+++ b/compiler-rt/test/builtins/Unit/divsf3_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_divsf3
//===--------------- divsf3_test.c - Test __divsf3 ------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/divsf3vfp_test.c b/compiler-rt/test/builtins/Unit/divsf3vfp_test.c
index fc3860e2ca0..fb0d892358f 100644
--- a/compiler-rt/test/builtins/Unit/divsf3vfp_test.c
+++ b/compiler-rt/test/builtins/Unit/divsf3vfp_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_divsf3vfp
//===-- divsf3vfp_test.c - Test __divsf3vfp -------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/divsi3_test.c b/compiler-rt/test/builtins/Unit/divsi3_test.c
index fb453403c28..0b834404565 100644
--- a/compiler-rt/test/builtins/Unit/divsi3_test.c
+++ b/compiler-rt/test/builtins/Unit/divsi3_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_divsi3
//===-- divsi3_test.c - Test __divsi3 -------------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/divtc3_test.c b/compiler-rt/test/builtins/Unit/divtc3_test.c
index dbd2ee7da37..f8181dafed9 100644
--- a/compiler-rt/test/builtins/Unit/divtc3_test.c
+++ b/compiler-rt/test/builtins/Unit/divtc3_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -lm -o %t && %run %t
+// REQUIRES: librt_has_divtc3
//
// 32-bit: Bug 42493, 64-bit: Bug 42496
// XFAIL: sparc
diff --git a/compiler-rt/test/builtins/Unit/divtf3_test.c b/compiler-rt/test/builtins/Unit/divtf3_test.c
index 23e1b5580b8..542d7d66cd4 100644
--- a/compiler-rt/test/builtins/Unit/divtf3_test.c
+++ b/compiler-rt/test/builtins/Unit/divtf3_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_divtf3
//===--------------- divtf3_test.c - Test __divtf3 ------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/divti3_test.c b/compiler-rt/test/builtins/Unit/divti3_test.c
index e29658d1a7a..8cb22eb4f3c 100644
--- a/compiler-rt/test/builtins/Unit/divti3_test.c
+++ b/compiler-rt/test/builtins/Unit/divti3_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_divti3
// REQUIRES: int128
//===-- divti3_test.c - Test __divti3 -------------------------------------===//
//
diff --git a/compiler-rt/test/builtins/Unit/divxc3_test.c b/compiler-rt/test/builtins/Unit/divxc3_test.c
index 4dbe5afa712..d5bb385143f 100644
--- a/compiler-rt/test/builtins/Unit/divxc3_test.c
+++ b/compiler-rt/test/builtins/Unit/divxc3_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -lm -o %t && %run %t
+// REQUIRES: librt_has_divxc3
// REQUIRES: x86-target-arch
// UNSUPPORTED: powerpc64
//===-- divxc3_test.c - Test __divxc3 -------------------------------------===//
diff --git a/compiler-rt/test/builtins/Unit/enable_execute_stack_test.c b/compiler-rt/test/builtins/Unit/enable_execute_stack_test.c
index ef29a167987..ad39915d3a2 100644
--- a/compiler-rt/test/builtins/Unit/enable_execute_stack_test.c
+++ b/compiler-rt/test/builtins/Unit/enable_execute_stack_test.c
@@ -1,5 +1,6 @@
// REQUIRES: native-run
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_enable_execute_stack
//===-- enable_execute_stack_test.c - Test __enable_execute_stack ----------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/eqdf2vfp_test.c b/compiler-rt/test/builtins/Unit/eqdf2vfp_test.c
index 789a509f191..fc11af734ba 100644
--- a/compiler-rt/test/builtins/Unit/eqdf2vfp_test.c
+++ b/compiler-rt/test/builtins/Unit/eqdf2vfp_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_eqdf2vfp
//===-- eqdf2vfp_test.c - Test __eqdf2vfp ---------------------------------===//
//
diff --git a/compiler-rt/test/builtins/Unit/eqsf2vfp_test.c b/compiler-rt/test/builtins/Unit/eqsf2vfp_test.c
index 9ab7481830f..0b0ac442001 100644
--- a/compiler-rt/test/builtins/Unit/eqsf2vfp_test.c
+++ b/compiler-rt/test/builtins/Unit/eqsf2vfp_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_eqsf2vfp
//===-- eqsf2vfp_test.c - Test __eqsf2vfp ---------------------------------===//
//
diff --git a/compiler-rt/test/builtins/Unit/eqtf2_test.c b/compiler-rt/test/builtins/Unit/eqtf2_test.c
index e460b087126..69125ef14d3 100644
--- a/compiler-rt/test/builtins/Unit/eqtf2_test.c
+++ b/compiler-rt/test/builtins/Unit/eqtf2_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_comparetf2
//===------------ eqtf2_test.c - Test __eqtf2------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/extenddftf2_test.c b/compiler-rt/test/builtins/Unit/extenddftf2_test.c
index 0ca825dd111..914aaba8525 100644
--- a/compiler-rt/test/builtins/Unit/extenddftf2_test.c
+++ b/compiler-rt/test/builtins/Unit/extenddftf2_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_extenddftf2
//===--------------- extenddftf2_test.c - Test __extenddftf2 --------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/extendhfsf2_test.c b/compiler-rt/test/builtins/Unit/extendhfsf2_test.c
index 73676806a2b..d47a5892fa9 100644
--- a/compiler-rt/test/builtins/Unit/extendhfsf2_test.c
+++ b/compiler-rt/test/builtins/Unit/extendhfsf2_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_extendhfsf2
//===--------------- extendhfsf2_test.c - Test __extendhfsf2 --------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/extebdsfdf2vfp_test.c b/compiler-rt/test/builtins/Unit/extendsfdf2vfp_test.c
index 2255e673598..c49255e09ae 100644
--- a/compiler-rt/test/builtins/Unit/extebdsfdf2vfp_test.c
+++ b/compiler-rt/test/builtins/Unit/extendsfdf2vfp_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_extendsfdf2vfp
//===-- extendsfdf2vfp_test.c - Test __extendsfdf2vfp ---------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/extendsftf2_test.c b/compiler-rt/test/builtins/Unit/extendsftf2_test.c
index 2357fd341a5..7c97492b6c4 100644
--- a/compiler-rt/test/builtins/Unit/extendsftf2_test.c
+++ b/compiler-rt/test/builtins/Unit/extendsftf2_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_extendsftf2
//===--------------- extendsftf2_test.c - Test __extendsftf2 --------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/ffsdi2_test.c b/compiler-rt/test/builtins/Unit/ffsdi2_test.c
index 86ab9b9799e..50cb0bf68fd 100644
--- a/compiler-rt/test/builtins/Unit/ffsdi2_test.c
+++ b/compiler-rt/test/builtins/Unit/ffsdi2_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_ffsdi2
//===-- ffsdi2_test.c - Test __ffsdi2 -------------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/ffssi2_test.c b/compiler-rt/test/builtins/Unit/ffssi2_test.c
index f97b398a7b6..a4876ea3e83 100644
--- a/compiler-rt/test/builtins/Unit/ffssi2_test.c
+++ b/compiler-rt/test/builtins/Unit/ffssi2_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_ffssi2
//===-- ffssi2_test.c - Test __ffssi2 -------------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/ffsti2_test.c b/compiler-rt/test/builtins/Unit/ffsti2_test.c
index abc32e14f55..2f35c884a0a 100644
--- a/compiler-rt/test/builtins/Unit/ffsti2_test.c
+++ b/compiler-rt/test/builtins/Unit/ffsti2_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_ffsti2
// REQUIRES: int128
//===-- ffsti2_test.c - Test __ffsti2 -------------------------------------===//
//
diff --git a/compiler-rt/test/builtins/Unit/fixdfdi_test.c b/compiler-rt/test/builtins/Unit/fixdfdi_test.c
index 30f0a3b258c..9fe19ddc4e9 100644
--- a/compiler-rt/test/builtins/Unit/fixdfdi_test.c
+++ b/compiler-rt/test/builtins/Unit/fixdfdi_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_fixdfdi
//===-- fixdfdi_test.c - Test __fixdfdi -----------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/fixdfsivfp_test.c b/compiler-rt/test/builtins/Unit/fixdfsivfp_test.c
index 4a76ea960df..606875c71a3 100644
--- a/compiler-rt/test/builtins/Unit/fixdfsivfp_test.c
+++ b/compiler-rt/test/builtins/Unit/fixdfsivfp_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_fixdfsivfp
//===-- fixdfsivfp_test.c - Test __fixdfsivfp -----------------------------===//
//
diff --git a/compiler-rt/test/builtins/Unit/fixdfti_test.c b/compiler-rt/test/builtins/Unit/fixdfti_test.c
index 9a2de08dc68..d9f2107a090 100644
--- a/compiler-rt/test/builtins/Unit/fixdfti_test.c
+++ b/compiler-rt/test/builtins/Unit/fixdfti_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_fixdfti
// REQUIRES: int128
//===-- fixdfti_test.c - Test __fixdfti -----------------------------------===//
//
diff --git a/compiler-rt/test/builtins/Unit/fixsfdi_test.c b/compiler-rt/test/builtins/Unit/fixsfdi_test.c
index e4b23f5b25b..45c5b201189 100644
--- a/compiler-rt/test/builtins/Unit/fixsfdi_test.c
+++ b/compiler-rt/test/builtins/Unit/fixsfdi_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_fixsfdi
//===-- fixsfdi_test.c - Test __fixsfdi -----------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/fixsfsivfp_test.c b/compiler-rt/test/builtins/Unit/fixsfsivfp_test.c
index 7e60393192c..4ca280cd361 100644
--- a/compiler-rt/test/builtins/Unit/fixsfsivfp_test.c
+++ b/compiler-rt/test/builtins/Unit/fixsfsivfp_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_fixsfsivfp
//===-- fixsfsivfp_test.c - Test __fixsfsivfp -----------------------------===//
//
diff --git a/compiler-rt/test/builtins/Unit/fixsfti_test.c b/compiler-rt/test/builtins/Unit/fixsfti_test.c
index bf985d2b2fa..cd4adcb473d 100644
--- a/compiler-rt/test/builtins/Unit/fixsfti_test.c
+++ b/compiler-rt/test/builtins/Unit/fixsfti_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_fixsfti
// REQUIRES: int128
//===-- fixsfti_test.c - Test __fixsfti -----------------------------------===//
//
diff --git a/compiler-rt/test/builtins/Unit/fixtfdi_test.c b/compiler-rt/test/builtins/Unit/fixtfdi_test.c
index 1d1e1102c68..32f63236e7b 100644
--- a/compiler-rt/test/builtins/Unit/fixtfdi_test.c
+++ b/compiler-rt/test/builtins/Unit/fixtfdi_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_fixtfdi
//===--------------- fixtfdi_test.c - Test __fixtfdi ----------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/fixtfsi_test.c b/compiler-rt/test/builtins/Unit/fixtfsi_test.c
index 752ede215cd..e679992e88f 100644
--- a/compiler-rt/test/builtins/Unit/fixtfsi_test.c
+++ b/compiler-rt/test/builtins/Unit/fixtfsi_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_fixtfsi
//===--------------- fixtfsi_test.c - Test __fixtfsi ----------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/fixtfti_test.c b/compiler-rt/test/builtins/Unit/fixtfti_test.c
index ea648148d50..5bafb68c7a9 100644
--- a/compiler-rt/test/builtins/Unit/fixtfti_test.c
+++ b/compiler-rt/test/builtins/Unit/fixtfti_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_fixtfti
//===--------------- fixtfti_test.c - Test __fixtfti ----------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/fixunsdfdi_test.c b/compiler-rt/test/builtins/Unit/fixunsdfdi_test.c
index 0497a9175e2..770cb2ffee6 100644
--- a/compiler-rt/test/builtins/Unit/fixunsdfdi_test.c
+++ b/compiler-rt/test/builtins/Unit/fixunsdfdi_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_fixunsdfdi
//===-- fixunsdfdi_test.c - Test __fixunsdfdi -----------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/fixunsdfsi_test.c b/compiler-rt/test/builtins/Unit/fixunsdfsi_test.c
index 967e47334c1..b85b6513fc6 100644
--- a/compiler-rt/test/builtins/Unit/fixunsdfsi_test.c
+++ b/compiler-rt/test/builtins/Unit/fixunsdfsi_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_fixunsdfsi
//===-- fixunsdfsi_test.c - Test __fixunsdfsi -----------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/fixunsdfsivfp_test.c b/compiler-rt/test/builtins/Unit/fixunsdfsivfp_test.c
index 6d9b2307b42..e7effc819fa 100644
--- a/compiler-rt/test/builtins/Unit/fixunsdfsivfp_test.c
+++ b/compiler-rt/test/builtins/Unit/fixunsdfsivfp_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_fixunsdfsivfp
//===-- fixunsdfsivfp_test.c - Test __fixunsdfsivfp -----------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/fixunsdfti_test.c b/compiler-rt/test/builtins/Unit/fixunsdfti_test.c
index 0c68a669049..e867d4f9d61 100644
--- a/compiler-rt/test/builtins/Unit/fixunsdfti_test.c
+++ b/compiler-rt/test/builtins/Unit/fixunsdfti_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_fixunsdfti
// REQUIRES: int128
//===-- fixunsdfti_test.c - Test __fixunsdfti -----------------------------===//
//
diff --git a/compiler-rt/test/builtins/Unit/fixunssfdi_test.c b/compiler-rt/test/builtins/Unit/fixunssfdi_test.c
index e68be55d2fd..7f301fb4840 100644
--- a/compiler-rt/test/builtins/Unit/fixunssfdi_test.c
+++ b/compiler-rt/test/builtins/Unit/fixunssfdi_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_fixunssfdi
//===-- fixunssfdi_test.c - Test __fixunssfdi -----------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/fixunssfsi_test.c b/compiler-rt/test/builtins/Unit/fixunssfsi_test.c
index 89b16d871ae..e6952b2281c 100644
--- a/compiler-rt/test/builtins/Unit/fixunssfsi_test.c
+++ b/compiler-rt/test/builtins/Unit/fixunssfsi_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_fixunssfsi
//===-- fixunssfsi_test.c - Test __fixunssfsi -----------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/fixunssfsivfp_test.c b/compiler-rt/test/builtins/Unit/fixunssfsivfp_test.c
index 1f3df0bd34a..67e0cbd3793 100644
--- a/compiler-rt/test/builtins/Unit/fixunssfsivfp_test.c
+++ b/compiler-rt/test/builtins/Unit/fixunssfsivfp_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_fixunssfsivfp
//===-- fixunssfsivfp_test.c - Test __fixunssfsivfp -----------------------===//
//
diff --git a/compiler-rt/test/builtins/Unit/fixunssfti_test.c b/compiler-rt/test/builtins/Unit/fixunssfti_test.c
index 7d75d2291e6..de82e5263de 100644
--- a/compiler-rt/test/builtins/Unit/fixunssfti_test.c
+++ b/compiler-rt/test/builtins/Unit/fixunssfti_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_fixunssfti
// REQUIRES: int128
//===-- fixunssfti_test.c - Test __fixunssfti -----------------------------===//
//
diff --git a/compiler-rt/test/builtins/Unit/fixunstfdi_test.c b/compiler-rt/test/builtins/Unit/fixunstfdi_test.c
index ddaea4e1b82..7fdc44ebfff 100644
--- a/compiler-rt/test/builtins/Unit/fixunstfdi_test.c
+++ b/compiler-rt/test/builtins/Unit/fixunstfdi_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_fixunstfdi
//===-- fixunstfdi_test.c - Test __fixunstfdi -----------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/fixunstfsi_test.c b/compiler-rt/test/builtins/Unit/fixunstfsi_test.c
index b6958ecb7c1..a895aa90ee8 100644
--- a/compiler-rt/test/builtins/Unit/fixunstfsi_test.c
+++ b/compiler-rt/test/builtins/Unit/fixunstfsi_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_fixunstfsi
//===--------------- fixunstfsi_test.c - Test __fixunstfsi ----------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/fixunstfti_test.c b/compiler-rt/test/builtins/Unit/fixunstfti_test.c
index b4013d5c12e..77c6a45d36f 100644
--- a/compiler-rt/test/builtins/Unit/fixunstfti_test.c
+++ b/compiler-rt/test/builtins/Unit/fixunstfti_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_fixunstfti
//===-- fixunstfti_test.c - Test __fixunstfti -----------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/fixunsxfdi_test.c b/compiler-rt/test/builtins/Unit/fixunsxfdi_test.c
index 7bbeccf665e..50c04654617 100644
--- a/compiler-rt/test/builtins/Unit/fixunsxfdi_test.c
+++ b/compiler-rt/test/builtins/Unit/fixunsxfdi_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_fixunsxfdi
//===-- fixunsxfdi_test.c - Test __fixunsxfdi -----------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/fixunsxfsi_test.c b/compiler-rt/test/builtins/Unit/fixunsxfsi_test.c
index ae7e5b64927..365915c905f 100644
--- a/compiler-rt/test/builtins/Unit/fixunsxfsi_test.c
+++ b/compiler-rt/test/builtins/Unit/fixunsxfsi_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_fixunsxfsi
//===-- fixunsxfsi_test.c - Test __fixunsxfsi -----------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/fixunsxfti_test.c b/compiler-rt/test/builtins/Unit/fixunsxfti_test.c
index 8527d574acb..2b1714d5ea1 100644
--- a/compiler-rt/test/builtins/Unit/fixunsxfti_test.c
+++ b/compiler-rt/test/builtins/Unit/fixunsxfti_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_fixunsxfti
// REQUIRES: x86-target-arch
//===-- fixunsxfti_test.c - Test __fixunsxfti -----------------------------===//
diff --git a/compiler-rt/test/builtins/Unit/fixxfdi_test.c b/compiler-rt/test/builtins/Unit/fixxfdi_test.c
index 6cb31b32a33..aed3579eb1c 100644
--- a/compiler-rt/test/builtins/Unit/fixxfdi_test.c
+++ b/compiler-rt/test/builtins/Unit/fixxfdi_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_fixxfdi
//===-- fixxfdi_test.c - Test __fixxfdi -----------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/fixxfti_test.c b/compiler-rt/test/builtins/Unit/fixxfti_test.c
index b92338848da..ff7186aa322 100644
--- a/compiler-rt/test/builtins/Unit/fixxfti_test.c
+++ b/compiler-rt/test/builtins/Unit/fixxfti_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_fixxfti
// REQUIRES: x86-target-arch
//===-- fixxfti_test.c - Test __fixxfti -----------------------------------===//
diff --git a/compiler-rt/test/builtins/Unit/floatdidf_test.c b/compiler-rt/test/builtins/Unit/floatdidf_test.c
index e3e091ee5a8..a9e439fc8ce 100644
--- a/compiler-rt/test/builtins/Unit/floatdidf_test.c
+++ b/compiler-rt/test/builtins/Unit/floatdidf_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_floatdidf
//===-- floatdidf.c - Test __floatdidf ------------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/floatdisf_test.c b/compiler-rt/test/builtins/Unit/floatdisf_test.c
index ce7a04d529a..4b6b5d18aaa 100644
--- a/compiler-rt/test/builtins/Unit/floatdisf_test.c
+++ b/compiler-rt/test/builtins/Unit/floatdisf_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_floatdisf
//===-- floatdisf_test.c - Test __floatdisf -------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/floatditf_test.c b/compiler-rt/test/builtins/Unit/floatditf_test.c
index 27ef9482e06..b9a5dcd3f54 100644
--- a/compiler-rt/test/builtins/Unit/floatditf_test.c
+++ b/compiler-rt/test/builtins/Unit/floatditf_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_floatditf
//===-- floatditf_test.c - Test __floatditf -------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/floatdixf_test.c b/compiler-rt/test/builtins/Unit/floatdixf_test.c
index 0ee92e8bccb..9965b55417b 100644
--- a/compiler-rt/test/builtins/Unit/floatdixf_test.c
+++ b/compiler-rt/test/builtins/Unit/floatdixf_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_floatdixf
//===-- floatdixf_test.c - Test __floatdixf -------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/floatsidfvfp_test.c b/compiler-rt/test/builtins/Unit/floatsidfvfp_test.c
index eb1d06b23cc..018a5272453 100644
--- a/compiler-rt/test/builtins/Unit/floatsidfvfp_test.c
+++ b/compiler-rt/test/builtins/Unit/floatsidfvfp_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_floatsidfvfp
//===-- floatsidfvfp_test.c - Test __floatsidfvfp -------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/floatsisfvfp_test.c b/compiler-rt/test/builtins/Unit/floatsisfvfp_test.c
index b977e339d73..893e9130e25 100644
--- a/compiler-rt/test/builtins/Unit/floatsisfvfp_test.c
+++ b/compiler-rt/test/builtins/Unit/floatsisfvfp_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_floatsisfvfp
//===-- floatsisfvfp_test.c - Test __floatsisfvfp -------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/floatsitf_test.c b/compiler-rt/test/builtins/Unit/floatsitf_test.c
index 424a10fbc51..10f1d4a0466 100644
--- a/compiler-rt/test/builtins/Unit/floatsitf_test.c
+++ b/compiler-rt/test/builtins/Unit/floatsitf_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_floatsitf
//===--------------- floatsitf_test.c - Test __floatsitf ------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/floattidf_test.c b/compiler-rt/test/builtins/Unit/floattidf_test.c
index 76288f002b6..60420331b1a 100644
--- a/compiler-rt/test/builtins/Unit/floattidf_test.c
+++ b/compiler-rt/test/builtins/Unit/floattidf_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_floattidf
// REQUIRES: int128
//===-- floattidf.c - Test __floattidf ------------------------------------===//
//
diff --git a/compiler-rt/test/builtins/Unit/floattisf_test.c b/compiler-rt/test/builtins/Unit/floattisf_test.c
index 4d48d94bbbd..bf667d75744 100644
--- a/compiler-rt/test/builtins/Unit/floattisf_test.c
+++ b/compiler-rt/test/builtins/Unit/floattisf_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_floattisf
// REQUIRES: int128
//===-- floattisf_test.c - Test __floattisf -------------------------------===//
//
diff --git a/compiler-rt/test/builtins/Unit/floattitf_test.c b/compiler-rt/test/builtins/Unit/floattitf_test.c
index f0c7dfbc2fe..3775f595e74 100644
--- a/compiler-rt/test/builtins/Unit/floattitf_test.c
+++ b/compiler-rt/test/builtins/Unit/floattitf_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_floattitf
//===-- floattitf.c - Test __floattitf ------------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/floattixf_test.c b/compiler-rt/test/builtins/Unit/floattixf_test.c
index 5ab471263e6..00c3eb23649 100644
--- a/compiler-rt/test/builtins/Unit/floattixf_test.c
+++ b/compiler-rt/test/builtins/Unit/floattixf_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_floattixf
// REQUIRES: x86-target-arch
//===-- floattixf.c - Test __floattixf ------------------------------------===//
diff --git a/compiler-rt/test/builtins/Unit/floatundidf_test.c b/compiler-rt/test/builtins/Unit/floatundidf_test.c
index e165228a81b..540cb1f0333 100644
--- a/compiler-rt/test/builtins/Unit/floatundidf_test.c
+++ b/compiler-rt/test/builtins/Unit/floatundidf_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_floatundidf
//===-- floatundidf_test.c - Test __floatundidf ---------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/floatundisf_test.c b/compiler-rt/test/builtins/Unit/floatundisf_test.c
index 1a2feebf1e7..d377009b389 100644
--- a/compiler-rt/test/builtins/Unit/floatundisf_test.c
+++ b/compiler-rt/test/builtins/Unit/floatundisf_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_floatundisf
//===-- floatundisf_test.c - Test __floatundisf ---------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/floatunditf_test.c b/compiler-rt/test/builtins/Unit/floatunditf_test.c
index 163f0099a19..60914e5b483 100644
--- a/compiler-rt/test/builtins/Unit/floatunditf_test.c
+++ b/compiler-rt/test/builtins/Unit/floatunditf_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_floatunditf
//===-- floatunditf_test.c - Test __floatunditf ---------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/floatundixf_test.c b/compiler-rt/test/builtins/Unit/floatundixf_test.c
index 356653578d3..7104a2d6af8 100644
--- a/compiler-rt/test/builtins/Unit/floatundixf_test.c
+++ b/compiler-rt/test/builtins/Unit/floatundixf_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_floatundixf
//===-- floatundixf_test.c - Test __floatundixf ---------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/floatunsitf_test.c b/compiler-rt/test/builtins/Unit/floatunsitf_test.c
index 99ca0b68547..135c303afd2 100644
--- a/compiler-rt/test/builtins/Unit/floatunsitf_test.c
+++ b/compiler-rt/test/builtins/Unit/floatunsitf_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_floatunsitf
//===--------------- floatunsitf_test.c - Test __floatunsitf --------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/floatunssidfvfp_test.c b/compiler-rt/test/builtins/Unit/floatunssidfvfp_test.c
index e1ce2d28830..d308326fb5a 100644
--- a/compiler-rt/test/builtins/Unit/floatunssidfvfp_test.c
+++ b/compiler-rt/test/builtins/Unit/floatunssidfvfp_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_floatunssidfvfp
//===-- floatunssidfvfp_test.c - Test __floatunssidfvfp -------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/floatunssisfvfp_test.c b/compiler-rt/test/builtins/Unit/floatunssisfvfp_test.c
index 878a42dd857..724f36e30ba 100644
--- a/compiler-rt/test/builtins/Unit/floatunssisfvfp_test.c
+++ b/compiler-rt/test/builtins/Unit/floatunssisfvfp_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_floatunssisfvfp
//===-- floatunssisfvfp_test.c - Test __floatunssisfvfp -------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/floatuntidf_test.c b/compiler-rt/test/builtins/Unit/floatuntidf_test.c
index 47c2815606c..d6cdef2a459 100644
--- a/compiler-rt/test/builtins/Unit/floatuntidf_test.c
+++ b/compiler-rt/test/builtins/Unit/floatuntidf_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_floatuntidf
// REQUIRES: int128
//===-- floatuntidf.c - Test __floatuntidf --------------------------------===//
//
diff --git a/compiler-rt/test/builtins/Unit/floatuntisf_test.c b/compiler-rt/test/builtins/Unit/floatuntisf_test.c
index b3a50ed730f..cc74dc4bbb0 100644
--- a/compiler-rt/test/builtins/Unit/floatuntisf_test.c
+++ b/compiler-rt/test/builtins/Unit/floatuntisf_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_floatuntisf
//===-- floatuntisf.c - Test __floatuntisf --------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/floatuntitf_test.c b/compiler-rt/test/builtins/Unit/floatuntitf_test.c
index eb4287dedfe..512b00e98bc 100644
--- a/compiler-rt/test/builtins/Unit/floatuntitf_test.c
+++ b/compiler-rt/test/builtins/Unit/floatuntitf_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_floatuntitf
//===-- floatuntitf.c - Test __floatuntitf --------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/floatuntixf_test.c b/compiler-rt/test/builtins/Unit/floatuntixf_test.c
index 9ff0b5fa8c5..e78ba028e89 100644
--- a/compiler-rt/test/builtins/Unit/floatuntixf_test.c
+++ b/compiler-rt/test/builtins/Unit/floatuntixf_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_floatuntixf
// REQUIRES: x86-target-arch
//===-- floatuntixf.c - Test __floatuntixf --------------------------------===//
diff --git a/compiler-rt/test/builtins/Unit/gedf2vfp_test.c b/compiler-rt/test/builtins/Unit/gedf2vfp_test.c
index 0edf4b84814..ca171157f88 100644
--- a/compiler-rt/test/builtins/Unit/gedf2vfp_test.c
+++ b/compiler-rt/test/builtins/Unit/gedf2vfp_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_gedf2vfp
//===-- gedf2vfp_test.c - Test __gedf2vfp ---------------------------------===//
//
diff --git a/compiler-rt/test/builtins/Unit/gesf2vfp_test.c b/compiler-rt/test/builtins/Unit/gesf2vfp_test.c
index e84fa467290..892d6895dd7 100644
--- a/compiler-rt/test/builtins/Unit/gesf2vfp_test.c
+++ b/compiler-rt/test/builtins/Unit/gesf2vfp_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_gesf2vfp
//===-- gesf2vfp_test.c - Test __gesf2vfp ---------------------------------===//
//
diff --git a/compiler-rt/test/builtins/Unit/getf2_test.c b/compiler-rt/test/builtins/Unit/getf2_test.c
index be8e122d2a2..d29c92f9954 100644
--- a/compiler-rt/test/builtins/Unit/getf2_test.c
+++ b/compiler-rt/test/builtins/Unit/getf2_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_comparetf2
//===------------ getf2_test.c - Test __getf2------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/gtdf2vfp_test.c b/compiler-rt/test/builtins/Unit/gtdf2vfp_test.c
index d69d05347a9..6f5ccd0890e 100644
--- a/compiler-rt/test/builtins/Unit/gtdf2vfp_test.c
+++ b/compiler-rt/test/builtins/Unit/gtdf2vfp_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_gtdf2vfp
//===-- gtdf2vfp_test.c - Test __gtdf2vfp ---------------------------------===//
//
diff --git a/compiler-rt/test/builtins/Unit/gtsf2vfp_test.c b/compiler-rt/test/builtins/Unit/gtsf2vfp_test.c
index b1eccfe90f8..a42588b6829 100644
--- a/compiler-rt/test/builtins/Unit/gtsf2vfp_test.c
+++ b/compiler-rt/test/builtins/Unit/gtsf2vfp_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_gtsf2vfp
//===-- gtsf2vfp_test.c - Test __gtsf2vfp ---------------------------------===//
//
diff --git a/compiler-rt/test/builtins/Unit/gttf2_test.c b/compiler-rt/test/builtins/Unit/gttf2_test.c
index 712d6818e4c..1890f16846d 100644
--- a/compiler-rt/test/builtins/Unit/gttf2_test.c
+++ b/compiler-rt/test/builtins/Unit/gttf2_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_comparetf2
//===------------ gttf2_test.c - Test __gttf2------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/ledf2vfp_test.c b/compiler-rt/test/builtins/Unit/ledf2vfp_test.c
index 651a6cceb19..be01e96de30 100644
--- a/compiler-rt/test/builtins/Unit/ledf2vfp_test.c
+++ b/compiler-rt/test/builtins/Unit/ledf2vfp_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_ledf2vfp
//===-- ledf2vfp_test.c - Test __ledf2vfp ---------------------------------===//
//
diff --git a/compiler-rt/test/builtins/Unit/lesf2vfp_test.c b/compiler-rt/test/builtins/Unit/lesf2vfp_test.c
index 274be1b129d..7bb0cb71ddb 100644
--- a/compiler-rt/test/builtins/Unit/lesf2vfp_test.c
+++ b/compiler-rt/test/builtins/Unit/lesf2vfp_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_lesf2vfp
//===-- lesf2vfp_test.c - Test __lesf2vfp ---------------------------------===//
//
diff --git a/compiler-rt/test/builtins/Unit/letf2_test.c b/compiler-rt/test/builtins/Unit/letf2_test.c
index 39b3e9bfded..62481ef2b51 100644
--- a/compiler-rt/test/builtins/Unit/letf2_test.c
+++ b/compiler-rt/test/builtins/Unit/letf2_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_comparetf2
//===------------ letf2_test.c - Test __letf2------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/lit.cfg.py b/compiler-rt/test/builtins/Unit/lit.cfg.py
index 44b86f0d639..8fdb1a216ee 100644
--- a/compiler-rt/test/builtins/Unit/lit.cfg.py
+++ b/compiler-rt/test/builtins/Unit/lit.cfg.py
@@ -94,3 +94,25 @@ config.suffixes = ['.c', '.cpp']
if not config.emulator:
config.available_features.add('native-run')
+
+# Add features for available sources
+builtins_source_features = config.builtins_lit_source_features.split(';')
+# Sanity checks
+if not builtins_source_features:
+ lit_config.fatal('builtins_source_features cannot be empty')
+builtins_source_features_set = set()
+builtins_source_feature_duplicates = []
+for builtin_source_feature in builtins_source_features:
+ if len(builtin_source_feature) == 0:
+ lit_config.fatal('builtins_source_feature cannot contain empty features')
+ if builtin_source_feature not in builtins_source_features_set:
+ builtins_source_features_set.add(builtin_source_feature)
+ else:
+ builtins_source_feature_duplicates.append(builtin_source_feature)
+
+if len(builtins_source_feature_duplicates) > 0:
+ lit_config.fatal(
+ 'builtins_source_features contains duplicates: {}'.format(
+ builtins_source_feature_duplicates)
+ )
+config.available_features.update(builtins_source_features)
diff --git a/compiler-rt/test/builtins/Unit/lit.site.cfg.py.in b/compiler-rt/test/builtins/Unit/lit.site.cfg.py.in
index 10af443139d..da7840b3289 100644
--- a/compiler-rt/test/builtins/Unit/lit.site.cfg.py.in
+++ b/compiler-rt/test/builtins/Unit/lit.site.cfg.py.in
@@ -6,6 +6,8 @@ config.target_cflags = "@BUILTINS_TEST_TARGET_CFLAGS@"
config.target_arch = "@BUILTINS_TEST_TARGET_ARCH@"
config.is_msvc = @MSVC_PYBOOL@
config.builtins_is_msvc = @BUILTINS_IS_MSVC_PYBOOL@
+config.builtins_lit_source_features = "@BUILTINS_LIT_SOURCE_FEATURES@"
+
# Load common config for all compiler-rt lit tests.
lit_config.load_config(config, "@COMPILER_RT_BINARY_DIR@/test/lit.common.configured")
diff --git a/compiler-rt/test/builtins/Unit/lshrdi3_test.c b/compiler-rt/test/builtins/Unit/lshrdi3_test.c
index 791980b0f24..3e3c4b63452 100644
--- a/compiler-rt/test/builtins/Unit/lshrdi3_test.c
+++ b/compiler-rt/test/builtins/Unit/lshrdi3_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_lshrdi3
//===-- lshrdi3_test.c - Test __lshrdi3 -----------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/lshrti3_test.c b/compiler-rt/test/builtins/Unit/lshrti3_test.c
index c1643770847..d24e090928e 100644
--- a/compiler-rt/test/builtins/Unit/lshrti3_test.c
+++ b/compiler-rt/test/builtins/Unit/lshrti3_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_lshrti3
// REQUIRES: int128
//===-- lshrti3_test.c - Test __lshrti3 -----------------------------------===//
//
diff --git a/compiler-rt/test/builtins/Unit/ltdf2vfp_test.c b/compiler-rt/test/builtins/Unit/ltdf2vfp_test.c
index 89a719d90f4..4bfe4cfdc6c 100644
--- a/compiler-rt/test/builtins/Unit/ltdf2vfp_test.c
+++ b/compiler-rt/test/builtins/Unit/ltdf2vfp_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_ltdf2vfp
//===-- ltdf2vfp_test.c - Test __ltdf2vfp ---------------------------------===//
//
diff --git a/compiler-rt/test/builtins/Unit/ltsf2vfp_test.c b/compiler-rt/test/builtins/Unit/ltsf2vfp_test.c
index d286ac09bb3..d7a8d2dd030 100644
--- a/compiler-rt/test/builtins/Unit/ltsf2vfp_test.c
+++ b/compiler-rt/test/builtins/Unit/ltsf2vfp_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_ltsf2vfp
//===-- ltsf2vfp_test.c - Test __ltsf2vfp ---------------------------------===//
//
diff --git a/compiler-rt/test/builtins/Unit/lttf2_test.c b/compiler-rt/test/builtins/Unit/lttf2_test.c
index c57c5d76dd2..0f3ea9e6747 100644
--- a/compiler-rt/test/builtins/Unit/lttf2_test.c
+++ b/compiler-rt/test/builtins/Unit/lttf2_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_comparetf2
//===------------ lttf2_test.c - Test __lttf2------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/moddi3_test.c b/compiler-rt/test/builtins/Unit/moddi3_test.c
index 02face1b983..e729c18cf8d 100644
--- a/compiler-rt/test/builtins/Unit/moddi3_test.c
+++ b/compiler-rt/test/builtins/Unit/moddi3_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_moddi3
//===-- moddi3_test.c - Test __moddi3 -------------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/modsi3_test.c b/compiler-rt/test/builtins/Unit/modsi3_test.c
index bab944476f1..538a31b5aa4 100644
--- a/compiler-rt/test/builtins/Unit/modsi3_test.c
+++ b/compiler-rt/test/builtins/Unit/modsi3_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_modsi3
/* ===-- modsi3_test.c - Test __modsi3 -------------------------------------===
*
* Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/modti3_test.c b/compiler-rt/test/builtins/Unit/modti3_test.c
index 22b4483adc6..edbc857647f 100644
--- a/compiler-rt/test/builtins/Unit/modti3_test.c
+++ b/compiler-rt/test/builtins/Unit/modti3_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_modti3
// REQUIRES: int128
//===-- modti3_test.c - Test __modti3 -------------------------------------===//
//
diff --git a/compiler-rt/test/builtins/Unit/muldc3_test.c b/compiler-rt/test/builtins/Unit/muldc3_test.c
index 855a05f0c86..7eb5ed66427 100644
--- a/compiler-rt/test/builtins/Unit/muldc3_test.c
+++ b/compiler-rt/test/builtins/Unit/muldc3_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -lm -o %t && %run %t
+// REQUIRES: librt_has_muldc3
//===-- muldc3_test.c - Test __muldc3 -------------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/muldf3vfp_test.c b/compiler-rt/test/builtins/Unit/muldf3vfp_test.c
index 7022906b213..b8c78597317 100644
--- a/compiler-rt/test/builtins/Unit/muldf3vfp_test.c
+++ b/compiler-rt/test/builtins/Unit/muldf3vfp_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_muldf3vfp
//===-- muldf3vfp_test.c - Test __muldf3vfp -------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/muldi3_test.c b/compiler-rt/test/builtins/Unit/muldi3_test.c
index c4eaf04370a..bb79149c065 100644
--- a/compiler-rt/test/builtins/Unit/muldi3_test.c
+++ b/compiler-rt/test/builtins/Unit/muldi3_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_muldi3
//===-- muldi3_test.c - Test __muldi3 -------------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/mulodi4_test.c b/compiler-rt/test/builtins/Unit/mulodi4_test.c
index d3d46ad381f..e8654e1c3b5 100644
--- a/compiler-rt/test/builtins/Unit/mulodi4_test.c
+++ b/compiler-rt/test/builtins/Unit/mulodi4_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_mulodi4
//===-- mulodi4_test.c - Test __mulodi4 -----------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/mulosi4_test.c b/compiler-rt/test/builtins/Unit/mulosi4_test.c
index 4e90fb7a38a..f653fe4a957 100644
--- a/compiler-rt/test/builtins/Unit/mulosi4_test.c
+++ b/compiler-rt/test/builtins/Unit/mulosi4_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_mulosi4
//===-- mulosi4_test.c - Test __mulosi4 -----------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/muloti4_test.c b/compiler-rt/test/builtins/Unit/muloti4_test.c
index d13a977580c..987e0af39e0 100644
--- a/compiler-rt/test/builtins/Unit/muloti4_test.c
+++ b/compiler-rt/test/builtins/Unit/muloti4_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_muloti4
// REQUIRES: int128
//===-- muloti4_test.c - Test __muloti4 -----------------------------------===//
//
diff --git a/compiler-rt/test/builtins/Unit/mulsc3_test.c b/compiler-rt/test/builtins/Unit/mulsc3_test.c
index 0a4b9294559..01ce255293e 100644
--- a/compiler-rt/test/builtins/Unit/mulsc3_test.c
+++ b/compiler-rt/test/builtins/Unit/mulsc3_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -lm -o %t && %run %t
+// REQUIRES: librt_has_mulsc3
//===-- mulsc3_test.c - Test __mulsc3 -------------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/mulsf3vfp_test.c b/compiler-rt/test/builtins/Unit/mulsf3vfp_test.c
index 464e9f12600..b771befaac2 100644
--- a/compiler-rt/test/builtins/Unit/mulsf3vfp_test.c
+++ b/compiler-rt/test/builtins/Unit/mulsf3vfp_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_mulsf3vfp
//===-- mulsf3vfp_test.c - Test __mulsf3vfp -------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/multc3_test.c b/compiler-rt/test/builtins/Unit/multc3_test.c
index 8112605077a..125fa20ffaf 100644
--- a/compiler-rt/test/builtins/Unit/multc3_test.c
+++ b/compiler-rt/test/builtins/Unit/multc3_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_multc3
//===-- multc3_test.c - Test __multc3 -------------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/multf3_test.c b/compiler-rt/test/builtins/Unit/multf3_test.c
index c821799bc5c..4dccfd9d6c6 100644
--- a/compiler-rt/test/builtins/Unit/multf3_test.c
+++ b/compiler-rt/test/builtins/Unit/multf3_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_multf3
//===--------------- multf3_test.c - Test __multf3 ------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/multi3_test.c b/compiler-rt/test/builtins/Unit/multi3_test.c
index 52516cde67f..6e3fb1b3610 100644
--- a/compiler-rt/test/builtins/Unit/multi3_test.c
+++ b/compiler-rt/test/builtins/Unit/multi3_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_multi3
// REQUIRES: int128
//===-- multi3_test.c - Test __multi3 -------------------------------------===//
//
diff --git a/compiler-rt/test/builtins/Unit/mulvdi3_test.c b/compiler-rt/test/builtins/Unit/mulvdi3_test.c
index 5b0c3cbe47b..81bd4b2a914 100644
--- a/compiler-rt/test/builtins/Unit/mulvdi3_test.c
+++ b/compiler-rt/test/builtins/Unit/mulvdi3_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_mulvdi3
//===-- mulvdi3_test.c - Test __mulvdi3 -----------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/mulvsi3_test.c b/compiler-rt/test/builtins/Unit/mulvsi3_test.c
index 3e38a8826e9..f1ef8b12bdb 100644
--- a/compiler-rt/test/builtins/Unit/mulvsi3_test.c
+++ b/compiler-rt/test/builtins/Unit/mulvsi3_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_mulvsi3
//===-- mulvsi3_test.c - Test __mulvsi3 -----------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/mulvti3_test.c b/compiler-rt/test/builtins/Unit/mulvti3_test.c
index 9afe3c81ff4..9cb86d75681 100644
--- a/compiler-rt/test/builtins/Unit/mulvti3_test.c
+++ b/compiler-rt/test/builtins/Unit/mulvti3_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_mulvti3
// REQUIRES: int128
//===-- mulvti3_test.c - Test __mulvti3 -----------------------------------===//
//
diff --git a/compiler-rt/test/builtins/Unit/mulxc3_test.c b/compiler-rt/test/builtins/Unit/mulxc3_test.c
index 8458daf52fe..5937b6c85e0 100644
--- a/compiler-rt/test/builtins/Unit/mulxc3_test.c
+++ b/compiler-rt/test/builtins/Unit/mulxc3_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -lm -o %t && %run %t
+// REQUIRES: librt_has_mulxc3
// UNSUPPORTED: powerpc64
// REQUIRES: x86-target-arch
//===-- mulxc3_test.c - Test __mulxc3 -------------------------------------===//
diff --git a/compiler-rt/test/builtins/Unit/nedf2vfp_test.c b/compiler-rt/test/builtins/Unit/nedf2vfp_test.c
index b6f0f4ade42..28ed2206cc1 100644
--- a/compiler-rt/test/builtins/Unit/nedf2vfp_test.c
+++ b/compiler-rt/test/builtins/Unit/nedf2vfp_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_nedf2vfp
//===-- nedf2vfp_test.c - Test __nedf2vfp ---------------------------------===//
//
diff --git a/compiler-rt/test/builtins/Unit/negdf2vfp_test.c b/compiler-rt/test/builtins/Unit/negdf2vfp_test.c
index 221452ebf1d..c90c26e4f3c 100644
--- a/compiler-rt/test/builtins/Unit/negdf2vfp_test.c
+++ b/compiler-rt/test/builtins/Unit/negdf2vfp_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_negdf2vfp
//===-- negdf2vfp_test.c - Test __negdf2vfp -------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/negdi2_test.c b/compiler-rt/test/builtins/Unit/negdi2_test.c
index 77386882da1..7f47d845ce5 100644
--- a/compiler-rt/test/builtins/Unit/negdi2_test.c
+++ b/compiler-rt/test/builtins/Unit/negdi2_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_negdi2
//===-- negdi2_test.c - Test __negdi2 -------------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/negsf2vfp_test.c b/compiler-rt/test/builtins/Unit/negsf2vfp_test.c
index 72b990f1c1a..3f5955bf756 100644
--- a/compiler-rt/test/builtins/Unit/negsf2vfp_test.c
+++ b/compiler-rt/test/builtins/Unit/negsf2vfp_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_negsf2vfp
//===-- negsf2vfp_test.c - Test __negsf2vfp -------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/negti2_test.c b/compiler-rt/test/builtins/Unit/negti2_test.c
index 45533d07016..43bacc4fbd8 100644
--- a/compiler-rt/test/builtins/Unit/negti2_test.c
+++ b/compiler-rt/test/builtins/Unit/negti2_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_negti2
// REQUIRES: int128
//===-- negti2_test.c - Test __negti2 -------------------------------------===//
//
diff --git a/compiler-rt/test/builtins/Unit/negvdi2_test.c b/compiler-rt/test/builtins/Unit/negvdi2_test.c
index f6e70c800fa..9e79dcbe699 100644
--- a/compiler-rt/test/builtins/Unit/negvdi2_test.c
+++ b/compiler-rt/test/builtins/Unit/negvdi2_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_negvdi2
//===-- negvdi2_test.c - Test __negvdi2 -----------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/negvsi2_test.c b/compiler-rt/test/builtins/Unit/negvsi2_test.c
index 437ba880881..96863211ac9 100644
--- a/compiler-rt/test/builtins/Unit/negvsi2_test.c
+++ b/compiler-rt/test/builtins/Unit/negvsi2_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_negvsi2
//===-- negvsi2_test.c - Test __negvsi2 -----------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/negvti2_test.c b/compiler-rt/test/builtins/Unit/negvti2_test.c
index fd2ee25a05d..a6572844239 100644
--- a/compiler-rt/test/builtins/Unit/negvti2_test.c
+++ b/compiler-rt/test/builtins/Unit/negvti2_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_negvti2
// REQUIRES: int128
//===-- negvti2_test.c - Test __negvti2 -----------------------------------===//
//
diff --git a/compiler-rt/test/builtins/Unit/nesf2vfp_test.c b/compiler-rt/test/builtins/Unit/nesf2vfp_test.c
index dca50c781c2..f66813e9605 100644
--- a/compiler-rt/test/builtins/Unit/nesf2vfp_test.c
+++ b/compiler-rt/test/builtins/Unit/nesf2vfp_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_nesf2vfp
//===-- nesf2vfp_test.c - Test __nesf2vfp ---------------------------------===//
//
diff --git a/compiler-rt/test/builtins/Unit/netf2_test.c b/compiler-rt/test/builtins/Unit/netf2_test.c
index 75114979ea2..eeeff01ef09 100644
--- a/compiler-rt/test/builtins/Unit/netf2_test.c
+++ b/compiler-rt/test/builtins/Unit/netf2_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_comparetf2
//===------------ netf2_test.c - Test __netf2------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/paritydi2_test.c b/compiler-rt/test/builtins/Unit/paritydi2_test.c
index ac5e4727169..e4b663e7c8e 100644
--- a/compiler-rt/test/builtins/Unit/paritydi2_test.c
+++ b/compiler-rt/test/builtins/Unit/paritydi2_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_paritydi2
//===-- paritydi2_test.c - Test __paritydi2 -------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/paritysi2_test.c b/compiler-rt/test/builtins/Unit/paritysi2_test.c
index f650b566160..b59335ddce8 100644
--- a/compiler-rt/test/builtins/Unit/paritysi2_test.c
+++ b/compiler-rt/test/builtins/Unit/paritysi2_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_paritysi2
//===-- paritysi2_test.c - Test __paritysi2 -------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/parityti2_test.c b/compiler-rt/test/builtins/Unit/parityti2_test.c
index 2a1b654f904..4c9317d0b26 100644
--- a/compiler-rt/test/builtins/Unit/parityti2_test.c
+++ b/compiler-rt/test/builtins/Unit/parityti2_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_parityti2
// REQUIRES: int128
//===-- parityti2_test.c - Test __parityti2 -------------------------------===//
//
diff --git a/compiler-rt/test/builtins/Unit/popcountdi2_test.c b/compiler-rt/test/builtins/Unit/popcountdi2_test.c
index 1d0eaee3c38..5bec9ce9d15 100644
--- a/compiler-rt/test/builtins/Unit/popcountdi2_test.c
+++ b/compiler-rt/test/builtins/Unit/popcountdi2_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_popcountdi2
//===-- popcountdi2_test.c - Test __popcountdi2 ----------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/popcountsi2_test.c b/compiler-rt/test/builtins/Unit/popcountsi2_test.c
index 4ab3499e9bc..ba80fa8825b 100644
--- a/compiler-rt/test/builtins/Unit/popcountsi2_test.c
+++ b/compiler-rt/test/builtins/Unit/popcountsi2_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_popcountsi2
//===-- popcountsi2_test.c - Test __popcountsi2 ---------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/popcountti2_test.c b/compiler-rt/test/builtins/Unit/popcountti2_test.c
index 4e32ba747ce..58e0169fb32 100644
--- a/compiler-rt/test/builtins/Unit/popcountti2_test.c
+++ b/compiler-rt/test/builtins/Unit/popcountti2_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_popcountti2
// REQUIRES: int128
//===-- popcountti2_test.c - Test __popcountti2 ----------------------------===//
//
diff --git a/compiler-rt/test/builtins/Unit/powidf2_test.c b/compiler-rt/test/builtins/Unit/powidf2_test.c
index 6bdca08996f..f4c248f1326 100644
--- a/compiler-rt/test/builtins/Unit/powidf2_test.c
+++ b/compiler-rt/test/builtins/Unit/powidf2_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_powidf2
//===-- powidf2_test.cpp - Test __powidf2 ---------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/powisf2_test.c b/compiler-rt/test/builtins/Unit/powisf2_test.c
index f344f0833d5..62449d933cd 100644
--- a/compiler-rt/test/builtins/Unit/powisf2_test.c
+++ b/compiler-rt/test/builtins/Unit/powisf2_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_powisf2
//===-- powisf2_test.cpp - Test __powisf2 ---------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/powitf2_test.c b/compiler-rt/test/builtins/Unit/powitf2_test.c
index 0850d77d7b5..70bc6dae0d2 100644
--- a/compiler-rt/test/builtins/Unit/powitf2_test.c
+++ b/compiler-rt/test/builtins/Unit/powitf2_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_powitf2
//===-- powitf2_test.cpp - Test __powitf2 ---------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/powixf2_test.c b/compiler-rt/test/builtins/Unit/powixf2_test.c
index 03a157fc620..0e8798aaa8c 100644
--- a/compiler-rt/test/builtins/Unit/powixf2_test.c
+++ b/compiler-rt/test/builtins/Unit/powixf2_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_powixf2
// UNSUPPORTED: powerpc64
// REQUIRES: x86-target-arch
//===-- powixf2_test.cpp - Test __powixf2 ---------------------------------===//
diff --git a/compiler-rt/test/builtins/Unit/subdf3vfp_test.c b/compiler-rt/test/builtins/Unit/subdf3vfp_test.c
index afaaca804c6..7560370cfa2 100644
--- a/compiler-rt/test/builtins/Unit/subdf3vfp_test.c
+++ b/compiler-rt/test/builtins/Unit/subdf3vfp_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_subdf3vfp
//===-- subdf3vfp_test.c - Test __subdf3vfp -------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/subsf3vfp_test.c b/compiler-rt/test/builtins/Unit/subsf3vfp_test.c
index d93df6bdcb8..b0a2ced61ba 100644
--- a/compiler-rt/test/builtins/Unit/subsf3vfp_test.c
+++ b/compiler-rt/test/builtins/Unit/subsf3vfp_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_subsf3vfp
//===-- subsf3vfp_test.c - Test __subsf3vfp -------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/subtf3_test.c b/compiler-rt/test/builtins/Unit/subtf3_test.c
index 4953d1ceb63..b95f2ef996d 100644
--- a/compiler-rt/test/builtins/Unit/subtf3_test.c
+++ b/compiler-rt/test/builtins/Unit/subtf3_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_subtf3
//===--------------- subtf3_test.c - Test __subtf3 ------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/subvdi3_test.c b/compiler-rt/test/builtins/Unit/subvdi3_test.c
index 04febf95c23..768428f67d2 100644
--- a/compiler-rt/test/builtins/Unit/subvdi3_test.c
+++ b/compiler-rt/test/builtins/Unit/subvdi3_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_subvdi3
//===-- subvdi3_test.c - Test __subvdi3 -----------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/subvsi3_test.c b/compiler-rt/test/builtins/Unit/subvsi3_test.c
index fc8898ecdce..6541473b5fd 100644
--- a/compiler-rt/test/builtins/Unit/subvsi3_test.c
+++ b/compiler-rt/test/builtins/Unit/subvsi3_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_subvsi3
//===-- subvsi3_test.c - Test __subvsi3 -----------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/subvti3_test.c b/compiler-rt/test/builtins/Unit/subvti3_test.c
index 9db96746990..aef66b93f73 100644
--- a/compiler-rt/test/builtins/Unit/subvti3_test.c
+++ b/compiler-rt/test/builtins/Unit/subvti3_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_subvti3
// REQUIRES: int128
//===-- subvti3_test.c - Test __subvti3 -----------------------------------===//
//
diff --git a/compiler-rt/test/builtins/Unit/trampoline_setup_test.c b/compiler-rt/test/builtins/Unit/trampoline_setup_test.c
index 316d7cce856..9cde76526b6 100644
--- a/compiler-rt/test/builtins/Unit/trampoline_setup_test.c
+++ b/compiler-rt/test/builtins/Unit/trampoline_setup_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -fnested-functions -o %t && %run %t
+// REQUIRES: librt_has_trampoline_setup
/* ===-- trampoline_setup_test.c - Test __trampoline_setup -----------------===
*
* Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/truncdfhf2_test.c b/compiler-rt/test/builtins/Unit/truncdfhf2_test.c
index 1b09fef78dc..5d49a742779 100644
--- a/compiler-rt/test/builtins/Unit/truncdfhf2_test.c
+++ b/compiler-rt/test/builtins/Unit/truncdfhf2_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_truncdfhf2
//===--------------- truncdfhf2_test.c - Test __truncdfhf2 ----------------===//
//
diff --git a/compiler-rt/test/builtins/Unit/truncdfsf2_test.c b/compiler-rt/test/builtins/Unit/truncdfsf2_test.c
index 6c8f119484e..32972dabd87 100644
--- a/compiler-rt/test/builtins/Unit/truncdfsf2_test.c
+++ b/compiler-rt/test/builtins/Unit/truncdfsf2_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_truncdfsf2
//===--------------- truncdfsf2_test.c - Test __truncdfsf2 ----------------===//
//
diff --git a/compiler-rt/test/builtins/Unit/truncdfsf2vfp_test.c b/compiler-rt/test/builtins/Unit/truncdfsf2vfp_test.c
index 0e52d3419ee..44291453f94 100644
--- a/compiler-rt/test/builtins/Unit/truncdfsf2vfp_test.c
+++ b/compiler-rt/test/builtins/Unit/truncdfsf2vfp_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_truncdfsf2vfp
//===-- truncdfsf2vfp_test.c - Test __truncdfsf2vfp -----------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/truncsfhf2_test.c b/compiler-rt/test/builtins/Unit/truncsfhf2_test.c
index f6f3fc2ec48..4312b8946ca 100644
--- a/compiler-rt/test/builtins/Unit/truncsfhf2_test.c
+++ b/compiler-rt/test/builtins/Unit/truncsfhf2_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_truncsfhf2
//===--------------- truncsfhf2_test.c - Test __truncsfhf2 ----------------===//
//
diff --git a/compiler-rt/test/builtins/Unit/trunctfdf2_test.c b/compiler-rt/test/builtins/Unit/trunctfdf2_test.c
index ae372be84d1..8289622a30e 100644
--- a/compiler-rt/test/builtins/Unit/trunctfdf2_test.c
+++ b/compiler-rt/test/builtins/Unit/trunctfdf2_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_trunctfdf2
//===-------------- trunctfdf2_test.c - Test __trunctfdf2 -----------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/trunctfsf2_test.c b/compiler-rt/test/builtins/Unit/trunctfsf2_test.c
index 3f350e62175..9d0d8b1151a 100644
--- a/compiler-rt/test/builtins/Unit/trunctfsf2_test.c
+++ b/compiler-rt/test/builtins/Unit/trunctfsf2_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_trunctfsf2
//===--------------- trunctfsf2_test.c - Test __trunctfsf2 ----------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/ucmpdi2_test.c b/compiler-rt/test/builtins/Unit/ucmpdi2_test.c
index 6faaac1d20b..9cf64d8c43f 100644
--- a/compiler-rt/test/builtins/Unit/ucmpdi2_test.c
+++ b/compiler-rt/test/builtins/Unit/ucmpdi2_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_ucmpdi2
//===-- ucmpdi2_test.c - Test __ucmpdi2 -----------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/ucmpti2_test.c b/compiler-rt/test/builtins/Unit/ucmpti2_test.c
index 71db5df2322..db61b949ba6 100644
--- a/compiler-rt/test/builtins/Unit/ucmpti2_test.c
+++ b/compiler-rt/test/builtins/Unit/ucmpti2_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_ucmpti2
// REQUIRES: int128
//===-- ucmpti2_test.c - Test __ucmpti2 -----------------------------------===//
//
diff --git a/compiler-rt/test/builtins/Unit/udivdi3_test.c b/compiler-rt/test/builtins/Unit/udivdi3_test.c
index bfdd1db13a3..3bd6a887ea9 100644
--- a/compiler-rt/test/builtins/Unit/udivdi3_test.c
+++ b/compiler-rt/test/builtins/Unit/udivdi3_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_udivdi3
//===-- udivdi3_test.c - Test __udivdi3 -----------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/udivmoddi4_test.c b/compiler-rt/test/builtins/Unit/udivmoddi4_test.c
index 278b29abca2..2cc05add3e1 100644
--- a/compiler-rt/test/builtins/Unit/udivmoddi4_test.c
+++ b/compiler-rt/test/builtins/Unit/udivmoddi4_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_udivmoddi4
//===-- udivmoddi4_test.c - Test __udivmoddi4 -----------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/udivmodsi4_test.c b/compiler-rt/test/builtins/Unit/udivmodsi4_test.c
index b390796a482..0e582549c96 100644
--- a/compiler-rt/test/builtins/Unit/udivmodsi4_test.c
+++ b/compiler-rt/test/builtins/Unit/udivmodsi4_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_udivmodsi4
//===-- udivmodsi4_test.c - Test __udivmodsi4 -----------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/udivmodti4_test.c b/compiler-rt/test/builtins/Unit/udivmodti4_test.c
index d022759dbef..602fd9e1194 100644
--- a/compiler-rt/test/builtins/Unit/udivmodti4_test.c
+++ b/compiler-rt/test/builtins/Unit/udivmodti4_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_udivmodti4
// REQUIRES: int128
//===-- udivmodti4_test.c - Test __udivmodti4 -----------------------------===//
//
diff --git a/compiler-rt/test/builtins/Unit/udivsi3_test.c b/compiler-rt/test/builtins/Unit/udivsi3_test.c
index f4249f5d196..4ac727941f6 100644
--- a/compiler-rt/test/builtins/Unit/udivsi3_test.c
+++ b/compiler-rt/test/builtins/Unit/udivsi3_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_udivsi3
//===-- udivsi3_test.c - Test __udivsi3 -----------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/udivti3_test.c b/compiler-rt/test/builtins/Unit/udivti3_test.c
index ae64123380e..8cb4ac19e03 100644
--- a/compiler-rt/test/builtins/Unit/udivti3_test.c
+++ b/compiler-rt/test/builtins/Unit/udivti3_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_udivti3
// REQUIRES: int128
//===-- udivti3_test.c - Test __udivti3 -----------------------------------===//
//
diff --git a/compiler-rt/test/builtins/Unit/umoddi3_test.c b/compiler-rt/test/builtins/Unit/umoddi3_test.c
index 5c79e56a75d..567c8e54499 100644
--- a/compiler-rt/test/builtins/Unit/umoddi3_test.c
+++ b/compiler-rt/test/builtins/Unit/umoddi3_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_umoddi3
//===-- umoddi3_test.c - Test __umoddi3 -----------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/umodsi3_test.c b/compiler-rt/test/builtins/Unit/umodsi3_test.c
index 2ff1f9e79de..e49fa8d7228 100644
--- a/compiler-rt/test/builtins/Unit/umodsi3_test.c
+++ b/compiler-rt/test/builtins/Unit/umodsi3_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_umodsi3
//===-- umodsi3_test.c - Test __umodsi3 -----------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
diff --git a/compiler-rt/test/builtins/Unit/umodti3_test.c b/compiler-rt/test/builtins/Unit/umodti3_test.c
index 0f9317599bc..5bbe1c3c1bb 100644
--- a/compiler-rt/test/builtins/Unit/umodti3_test.c
+++ b/compiler-rt/test/builtins/Unit/umodti3_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_umodti3
// REQUIRES: int128
//===-- umodti3_test.c - Test __umodti3 -----------------------------------===//
//
diff --git a/compiler-rt/test/builtins/Unit/unorddf2vfp_test.c b/compiler-rt/test/builtins/Unit/unorddf2vfp_test.c
index 128c1d81fb2..a04703e5986 100644
--- a/compiler-rt/test/builtins/Unit/unorddf2vfp_test.c
+++ b/compiler-rt/test/builtins/Unit/unorddf2vfp_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_unorddf2vfp
//===-- unorddf2vfp_test.c - Test __unorddf2vfp ---------------------------===//
//
diff --git a/compiler-rt/test/builtins/Unit/unordsf2vfp_test.c b/compiler-rt/test/builtins/Unit/unordsf2vfp_test.c
index 94f06d84121..c3050a402e9 100644
--- a/compiler-rt/test/builtins/Unit/unordsf2vfp_test.c
+++ b/compiler-rt/test/builtins/Unit/unordsf2vfp_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_unordsf2vfp
//===-- unordsf2vfp_test.c - Test __unordsf2vfp ---------------------------===//
//
diff --git a/compiler-rt/test/builtins/Unit/unordtf2_test.c b/compiler-rt/test/builtins/Unit/unordtf2_test.c
index 8f5b1100493..fa4bf7ebf0b 100644
--- a/compiler-rt/test/builtins/Unit/unordtf2_test.c
+++ b/compiler-rt/test/builtins/Unit/unordtf2_test.c
@@ -1,4 +1,5 @@
// RUN: %clang_builtins %s %librt -o %t && %run %t
+// REQUIRES: librt_has_comparetf2
//===------------ unordtf2_test.c - Test __unordtf2------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
OpenPOWER on IntegriCloud