[libc-commits] [libc] [llvm] [libc][bazel] Update bazel overlay for math functions and their tests. (PR #107862)

via libc-commits libc-commits at lists.llvm.org
Mon Sep 9 06:29:33 PDT 2024


https://github.com/lntue created https://github.com/llvm/llvm-project/pull/107862

None

>From 572cc66cddccb6a4f8fc4b30b69324153e78c48c Mon Sep 17 00:00:00 2001
From: Tue Ly <lntue at google.com>
Date: Mon, 9 Sep 2024 09:26:42 -0400
Subject: [PATCH] [libc][bazel] Update bazel overlay for math functions and
 their tests.

---
 libc/test/src/math/exp2f_test.cpp             |    1 -
 libc/test/src/math/smoke/exp2f_test.cpp       |    1 -
 .../llvm-project-overlay/libc/BUILD.bazel     | 1103 +++++++++-----
 .../libc/test/src/math/BUILD.bazel            |  884 ++++--------
 .../test/src/math/libc_math_test_rules.bzl    |   16 +
 .../libc/test/src/math/smoke/BUILD.bazel      | 1267 ++++++++++++++++-
 6 files changed, 2203 insertions(+), 1069 deletions(-)

diff --git a/libc/test/src/math/exp2f_test.cpp b/libc/test/src/math/exp2f_test.cpp
index 7caf1489d0221e..0c4c8215343927 100644
--- a/libc/test/src/math/exp2f_test.cpp
+++ b/libc/test/src/math/exp2f_test.cpp
@@ -8,7 +8,6 @@
 
 #include "hdr/math_macros.h"
 #include "src/__support/FPUtil/FPBits.h"
-#include "src/__support/macros/properties/cpu_features.h" // LIBC_TARGET_CPU_HAS_FMA
 #include "src/errno/libc_errno.h"
 #include "src/math/exp2f.h"
 #include "test/UnitTest/FPMatcher.h"
diff --git a/libc/test/src/math/smoke/exp2f_test.cpp b/libc/test/src/math/smoke/exp2f_test.cpp
index 3ef1a4ece4cf63..39228eb2f6d8ba 100644
--- a/libc/test/src/math/smoke/exp2f_test.cpp
+++ b/libc/test/src/math/smoke/exp2f_test.cpp
@@ -8,7 +8,6 @@
 
 #include "hdr/math_macros.h"
 #include "src/__support/FPUtil/FPBits.h"
-#include "src/__support/macros/properties/cpu_features.h" // LIBC_TARGET_CPU_HAS_FMA
 #include "src/errno/libc_errno.h"
 #include "src/math/exp2f.h"
 #include "test/UnitTest/FPMatcher.h"
diff --git a/utils/bazel/llvm-project-overlay/libc/BUILD.bazel b/utils/bazel/llvm-project-overlay/libc/BUILD.bazel
index bedd363edd1bde..8dc93014714b86 100644
--- a/utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+++ b/utils/bazel/llvm-project-overlay/libc/BUILD.bazel
@@ -675,7 +675,12 @@ libc_support_library(
 
 libc_support_library(
     name = "__support_fputil_basic_operations",
-    hdrs = ["src/__support/FPUtil/BasicOperations.h"],
+    hdrs = [
+        "src/__support/FPUtil/BasicOperations.h",
+        "src/__support/FPUtil/generic/add_sub.h",
+        "src/__support/FPUtil/generic/div.h",
+        "src/__support/FPUtil/generic/mul.h",
+    ],
     deps = [
         ":__support_common",
         ":__support_cpp_type_traits",
@@ -1404,7 +1409,7 @@ libc_function(
     ],
 )
 
-################################ math targets ################################
+########################### math support library ###############################
 
 libc_support_library(
     name = "common_constants",
@@ -1547,26 +1552,29 @@ libc_support_library(
     ],
 )
 
+################################ math targets ##################################
+
 libc_math_function(
-    name = "erff",
+    name = "acosf",
     additional_deps = [
+        ":__support_fputil_fma",
         ":__support_fputil_multiply_add",
+        ":__support_fputil_nearest_integer",
         ":__support_fputil_polyeval",
+        ":__support_fputil_sqrt",
         ":__support_macros_optimization",
+        ":inv_trigf_utils",
     ],
 )
 
 libc_math_function(
-    name = "expm1",
+    name = "acoshf",
     additional_deps = [
-        ":__support_fputil_double_double",
-        ":__support_fputil_dyadic_float",
+        ":__support_fputil_fma",
         ":__support_fputil_multiply_add",
         ":__support_fputil_nearest_integer",
         ":__support_fputil_polyeval",
-        ":__support_fputil_rounding_mode",
-        ":__support_fputil_triple_double",
-        ":__support_integer_literals",
+        ":__support_fputil_sqrt",
         ":__support_macros_optimization",
         ":common_constants",
         ":explogxf",
@@ -1574,30 +1582,27 @@ libc_math_function(
 )
 
 libc_math_function(
-    name = "expm1f",
+    name = "asinf",
     additional_deps = [
         ":__support_fputil_fma",
         ":__support_fputil_multiply_add",
         ":__support_fputil_nearest_integer",
         ":__support_fputil_polyeval",
-        ":__support_fputil_rounding_mode",
+        ":__support_fputil_sqrt",
         ":__support_macros_optimization",
         ":__support_macros_properties_cpu_features",
-        ":common_constants",
+        ":inv_trigf_utils",
     ],
 )
 
 libc_math_function(
-    name = "exp",
+    name = "asinhf",
     additional_deps = [
-        ":__support_fputil_double_double",
-        ":__support_fputil_dyadic_float",
+        ":__support_fputil_fma",
         ":__support_fputil_multiply_add",
         ":__support_fputil_nearest_integer",
         ":__support_fputil_polyeval",
-        ":__support_fputil_rounding_mode",
-        ":__support_fputil_triple_double",
-        ":__support_integer_literals",
+        ":__support_fputil_sqrt",
         ":__support_macros_optimization",
         ":common_constants",
         ":explogxf",
@@ -1605,7 +1610,7 @@ libc_math_function(
 )
 
 libc_math_function(
-    name = "expf",
+    name = "atanf",
     additional_deps = [
         ":__support_fputil_fma",
         ":__support_fputil_multiply_add",
@@ -1613,176 +1618,211 @@ libc_math_function(
         ":__support_fputil_polyeval",
         ":__support_fputil_rounding_mode",
         ":__support_macros_optimization",
-        ":common_constants",
+        ":inv_trigf_utils",
     ],
 )
 
 libc_math_function(
-    name = "exp10",
+    name = "atan2f",
     additional_deps = [
         ":__support_fputil_double_double",
-        ":__support_fputil_dyadic_float",
-        ":__support_fputil_multiply_add",
         ":__support_fputil_nearest_integer",
-        ":__support_fputil_polyeval",
-        ":__support_fputil_rounding_mode",
-        ":__support_fputil_triple_double",
-        ":__support_integer_literals",
-        ":__support_macros_optimization",
-        ":common_constants",
-        ":explogxf",
+        ":inv_trigf_utils",
     ],
 )
 
 libc_math_function(
-    name = "exp10f",
+    name = "atan2",
     additional_deps = [
-        ":exp10f_impl",
+        ":__support_fputil_double_double",
+        ":__support_fputil_nearest_integer",
+        ":inv_trigf_utils",
     ],
 )
 
 libc_math_function(
-    name = "exp2",
+    name = "atanhf",
     additional_deps = [
-        ":__support_fputil_double_double",
-        ":__support_fputil_dyadic_float",
+        ":__support_fputil_fma",
         ":__support_fputil_multiply_add",
         ":__support_fputil_nearest_integer",
         ":__support_fputil_polyeval",
-        ":__support_fputil_rounding_mode",
-        ":__support_fputil_triple_double",
-        ":__support_integer_literals",
         ":__support_macros_optimization",
         ":common_constants",
         ":explogxf",
     ],
 )
 
+libc_math_function(name = "canonicalize")
+
+libc_math_function(name = "canonicalizef")
+
+libc_math_function(name = "canonicalizel")
+
+libc_math_function(name = "canonicalizef128")
+
 libc_math_function(
-    name = "exp2f",
+    name = "cbrt",
     additional_deps = [
-        ":exp2f_impl",
+        ":__support_fputil_double_double",
+        ":__support_fputil_polyeval",
+        ":__support_integer_literals",
     ],
 )
 
 libc_math_function(
-    name = "logf",
+    name = "cbrtf",
     additional_deps = [
-        ":__support_fputil_fma",
-        ":__support_fputil_multiply_add",
         ":__support_fputil_polyeval",
-        ":__support_macros_optimization",
-        ":__support_macros_properties_cpu_features",
-        ":common_constants",
     ],
 )
 
 libc_math_function(
-    name = "log2f",
-    additional_deps = [
-        ":__support_fputil_fma",
-        ":__support_fputil_multiply_add",
-        ":__support_fputil_polyeval",
-        ":__support_macros_optimization",
-        ":common_constants",
+    name = "ceil",
+    specializations = [
+        "generic",
     ],
 )
 
 libc_math_function(
-    name = "log10f",
+    name = "ceilf",
+    specializations = [
+        "generic",
+    ],
+)
+
+libc_math_function(
+    name = "ceill",
+    specializations = [
+        "generic",
+    ],
+)
+
+libc_math_function(name = "ceilf128")
+
+libc_math_function(name = "copysign")
+
+libc_math_function(name = "copysignf")
+
+libc_math_function(name = "copysignl")
+
+libc_math_function(name = "copysignf128")
+
+libc_math_function(
+    name = "cos",
     additional_deps = [
-        ":__support_fputil_fma",
         ":__support_fputil_multiply_add",
-        ":__support_fputil_polyeval",
         ":__support_macros_optimization",
         ":__support_macros_properties_cpu_features",
-        ":common_constants",
+        ":range_reduction_double",
+        ":sincos_eval",
     ],
 )
 
 libc_math_function(
-    name = "log1pf",
+    name = "cosf",
     additional_deps = [
         ":__support_fputil_fma",
         ":__support_fputil_multiply_add",
-        ":__support_fputil_polyeval",
         ":__support_macros_optimization",
         ":__support_macros_properties_cpu_features",
-        ":common_constants",
+        ":sincosf_utils",
     ],
 )
 
 libc_math_function(
-    name = "log",
+    name = "coshf",
     additional_deps = [
-        ":__support_fputil_double_double",
-        ":__support_fputil_dyadic_float",
         ":__support_fputil_fma",
         ":__support_fputil_multiply_add",
+        ":__support_fputil_nearest_integer",
         ":__support_fputil_polyeval",
-        ":__support_integer_literals",
+        ":__support_fputil_rounding_mode",
         ":__support_macros_optimization",
-        ":__support_macros_properties_cpu_features",
         ":common_constants",
-        ":log_range_reduction",
+        ":explogxf",
     ],
 )
 
 libc_math_function(
-    name = "log2",
+    name = "cospif",
     additional_deps = [
-        ":__support_fputil_double_double",
-        ":__support_fputil_dyadic_float",
         ":__support_fputil_fma",
         ":__support_fputil_multiply_add",
+        ":__support_fputil_nearest_integer",
         ":__support_fputil_polyeval",
-        ":__support_integer_literals",
+        ":__support_fputil_rounding_mode",
         ":__support_macros_optimization",
-        ":__support_macros_properties_cpu_features",
         ":common_constants",
-        ":log_range_reduction",
+        ":explogxf",
+        ":sincosf_utils",
     ],
 )
 
+libc_math_function(name = "daddl")
+
+libc_math_function(name = "daddf128")
+
+libc_math_function(name = "ddivl")
+
+libc_math_function(name = "ddivf128")
+
 libc_math_function(
-    name = "log10",
+    name = "dfmal",
     additional_deps = [
-        ":__support_fputil_double_double",
-        ":__support_fputil_dyadic_float",
         ":__support_fputil_fma",
-        ":__support_fputil_multiply_add",
-        ":__support_fputil_polyeval",
-        ":__support_integer_literals",
-        ":__support_macros_optimization",
-        ":__support_macros_properties_cpu_features",
-        ":common_constants",
-        ":log_range_reduction",
     ],
 )
 
 libc_math_function(
-    name = "log1p",
+    name = "dfmaf128",
     additional_deps = [
-        ":__support_fputil_double_double",
-        ":__support_fputil_dyadic_float",
         ":__support_fputil_fma",
+    ],
+)
+
+libc_math_function(name = "dmull")
+
+libc_math_function(name = "dmulf128")
+
+libc_math_function(
+    name = "dsqrtl",
+    additional_deps = [
+        ":__support_fputil_sqrt",
+    ],
+)
+
+libc_math_function(
+    name = "dsqrtf128",
+    additional_deps = [
+        ":__support_fputil_sqrt",
+    ],
+)
+
+libc_math_function(name = "dsubl")
+
+libc_math_function(name = "dsubf128")
+
+libc_math_function(
+    name = "erff",
+    additional_deps = [
         ":__support_fputil_multiply_add",
         ":__support_fputil_polyeval",
-        ":__support_integer_literals",
         ":__support_macros_optimization",
-        ":__support_macros_properties_cpu_features",
-        ":common_constants",
     ],
 )
 
 libc_math_function(
-    name = "sinhf",
+    name = "exp",
     additional_deps = [
-        ":__support_fputil_fma",
+        ":__support_fputil_double_double",
+        ":__support_fputil_dyadic_float",
         ":__support_fputil_multiply_add",
         ":__support_fputil_nearest_integer",
         ":__support_fputil_polyeval",
         ":__support_fputil_rounding_mode",
+        ":__support_fputil_triple_double",
+        ":__support_integer_literals",
         ":__support_macros_optimization",
         ":common_constants",
         ":explogxf",
@@ -1790,7 +1830,7 @@ libc_math_function(
 )
 
 libc_math_function(
-    name = "coshf",
+    name = "expf",
     additional_deps = [
         ":__support_fputil_fma",
         ":__support_fputil_multiply_add",
@@ -1799,75 +1839,76 @@ libc_math_function(
         ":__support_fputil_rounding_mode",
         ":__support_macros_optimization",
         ":common_constants",
-        ":explogxf",
     ],
 )
 
 libc_math_function(
-    name = "cospif",
+    name = "exp10",
     additional_deps = [
-        ":__support_fputil_fma",
+        ":__support_fputil_double_double",
+        ":__support_fputil_dyadic_float",
         ":__support_fputil_multiply_add",
         ":__support_fputil_nearest_integer",
         ":__support_fputil_polyeval",
         ":__support_fputil_rounding_mode",
+        ":__support_fputil_triple_double",
+        ":__support_integer_literals",
         ":__support_macros_optimization",
         ":common_constants",
         ":explogxf",
-        ":sincosf_utils",
     ],
 )
 
 libc_math_function(
-    name = "tanhf",
+    name = "exp10f",
     additional_deps = [
-        ":__support_fputil_fma",
+        ":exp10f_impl",
+    ],
+)
+
+libc_math_function(
+    name = "exp2",
+    additional_deps = [
+        ":__support_fputil_double_double",
+        ":__support_fputil_dyadic_float",
         ":__support_fputil_multiply_add",
         ":__support_fputil_nearest_integer",
         ":__support_fputil_polyeval",
         ":__support_fputil_rounding_mode",
+        ":__support_fputil_triple_double",
+        ":__support_integer_literals",
         ":__support_macros_optimization",
-        ":__support_macros_properties_cpu_features",
         ":common_constants",
         ":explogxf",
     ],
 )
 
 libc_math_function(
-    name = "asinhf",
+    name = "exp2f",
     additional_deps = [
-        ":__support_fputil_fma",
-        ":__support_fputil_multiply_add",
-        ":__support_fputil_nearest_integer",
-        ":__support_fputil_polyeval",
-        ":__support_fputil_sqrt",
-        ":__support_macros_optimization",
-        ":common_constants",
-        ":explogxf",
+        ":exp2f_impl",
     ],
 )
 
 libc_math_function(
-    name = "acoshf",
+    name = "exp2m1f",
     additional_deps = [
-        ":__support_fputil_fma",
-        ":__support_fputil_multiply_add",
-        ":__support_fputil_nearest_integer",
         ":__support_fputil_polyeval",
-        ":__support_fputil_sqrt",
-        ":__support_macros_optimization",
-        ":common_constants",
         ":explogxf",
     ],
 )
 
 libc_math_function(
-    name = "atanhf",
+    name = "expm1",
     additional_deps = [
-        ":__support_fputil_fma",
+        ":__support_fputil_double_double",
+        ":__support_fputil_dyadic_float",
         ":__support_fputil_multiply_add",
         ":__support_fputil_nearest_integer",
         ":__support_fputil_polyeval",
+        ":__support_fputil_rounding_mode",
+        ":__support_fputil_triple_double",
+        ":__support_integer_literals",
         ":__support_macros_optimization",
         ":common_constants",
         ":explogxf",
@@ -1875,145 +1916,575 @@ libc_math_function(
 )
 
 libc_math_function(
-    name = "asinf",
+    name = "expm1f",
     additional_deps = [
         ":__support_fputil_fma",
         ":__support_fputil_multiply_add",
         ":__support_fputil_nearest_integer",
         ":__support_fputil_polyeval",
-        ":__support_fputil_sqrt",
+        ":__support_fputil_rounding_mode",
         ":__support_macros_optimization",
         ":__support_macros_properties_cpu_features",
-        ":inv_trigf_utils",
+        ":common_constants",
     ],
 )
 
-libc_math_function(
-    name = "acosf",
-    additional_deps = [
-        ":__support_fputil_fma",
-        ":__support_fputil_multiply_add",
-        ":__support_fputil_nearest_integer",
-        ":__support_fputil_polyeval",
+libc_math_function(name = "fabs")
+
+libc_math_function(name = "fabsf")
+
+libc_math_function(name = "fabsl")
+
+libc_math_function(name = "fabsf128")
+
+libc_math_function(name = "fadd")
+
+libc_math_function(name = "faddl")
+
+libc_math_function(name = "faddf128")
+
+libc_math_function(name = "fdim")
+
+libc_math_function(name = "fdimf")
+
+libc_math_function(name = "fdiml")
+
+libc_math_function(name = "fdimf128")
+
+libc_math_function(name = "fdiv")
+
+libc_math_function(name = "fdivl")
+
+libc_math_function(name = "fdivf128")
+
+libc_math_function(
+    name = "ffma",
+    additional_deps = [
+        ":__support_fputil_fma",
+    ],
+)
+
+libc_math_function(
+    name = "ffmal",
+    additional_deps = [
+        ":__support_fputil_fma",
+    ],
+)
+
+libc_math_function(
+    name = "ffmaf128",
+    additional_deps = [
+        ":__support_fputil_fma",
+    ],
+)
+
+libc_math_function(
+    name = "floor",
+    specializations = [
+        "generic",
+    ],
+)
+
+libc_math_function(
+    name = "floorf",
+    specializations = [
+        "generic",
+    ],
+)
+
+libc_math_function(name = "floorl")
+
+libc_math_function(name = "floorf128")
+
+# TODO: Add fma, fmaf, fmal, fmaf128 functions.
+
+libc_math_function(name = "fmax")
+
+libc_math_function(name = "fmaxf")
+
+libc_math_function(name = "fmaxl")
+
+libc_math_function(name = "fmaxf128")
+
+libc_math_function(name = "fmaximum")
+
+libc_math_function(name = "fmaximumf")
+
+libc_math_function(name = "fmaximuml")
+
+libc_math_function(name = "fmaximumf128")
+
+libc_math_function(name = "fmaximum_mag")
+
+libc_math_function(name = "fmaximum_magf")
+
+libc_math_function(name = "fmaximum_magl")
+
+libc_math_function(name = "fmaximum_magf128")
+
+libc_math_function(name = "fmaximum_mag_num")
+
+libc_math_function(name = "fmaximum_mag_numf")
+
+libc_math_function(name = "fmaximum_mag_numl")
+
+libc_math_function(name = "fmaximum_mag_numf128")
+
+libc_math_function(name = "fmaximum_num")
+
+libc_math_function(name = "fmaximum_numf")
+
+libc_math_function(name = "fmaximum_numl")
+
+libc_math_function(name = "fmaximum_numf128")
+
+libc_math_function(name = "fmin")
+
+libc_math_function(name = "fminf")
+
+libc_math_function(name = "fminl")
+
+libc_math_function(name = "fminf128")
+
+libc_math_function(name = "fminimum")
+
+libc_math_function(name = "fminimumf")
+
+libc_math_function(name = "fminimuml")
+
+libc_math_function(name = "fminimumf128")
+
+libc_math_function(name = "fminimum_mag")
+
+libc_math_function(name = "fminimum_magf")
+
+libc_math_function(name = "fminimum_magl")
+
+libc_math_function(name = "fminimum_magf128")
+
+libc_math_function(name = "fminimum_mag_num")
+
+libc_math_function(name = "fminimum_mag_numf")
+
+libc_math_function(name = "fminimum_mag_numl")
+
+libc_math_function(name = "fminimum_mag_numf128")
+
+libc_math_function(name = "fminimum_num")
+
+libc_math_function(name = "fminimum_numf")
+
+libc_math_function(name = "fminimum_numl")
+
+libc_math_function(name = "fminimum_numf128")
+
+libc_math_function(
+    name = "fmod",
+    additional_deps = [
+        ":__support_fputil_generic_fmod",
+    ],
+)
+
+libc_math_function(
+    name = "fmodf",
+    additional_deps = [
+        ":__support_fputil_generic_fmod",
+    ],
+)
+
+libc_math_function(
+    name = "fmodl",
+    additional_deps = [
+        ":__support_fputil_generic_fmod",
+    ],
+)
+
+libc_math_function(
+    name = "fmodf128",
+    additional_deps = [
+        ":__support_fputil_generic_fmod",
+    ],
+)
+
+libc_math_function(name = "fmul")
+
+libc_math_function(name = "fmull")
+
+libc_math_function(name = "fmulf128")
+
+libc_math_function(name = "frexp")
+
+libc_math_function(name = "frexpf")
+
+libc_math_function(name = "frexpl")
+
+libc_math_function(name = "frexpf128")
+
+libc_math_function(name = "fromfp")
+
+libc_math_function(name = "fromfpf")
+
+libc_math_function(name = "fromfpl")
+
+libc_math_function(name = "fromfpf128")
+
+libc_math_function(name = "fromfpx")
+
+libc_math_function(name = "fromfpxf")
+
+libc_math_function(name = "fromfpxl")
+
+libc_math_function(name = "fromfpxf128")
+
+libc_math_function(
+    name = "fsqrt",
+    additional_deps = [
         ":__support_fputil_sqrt",
+    ],
+)
+
+libc_math_function(
+    name = "fsqrtl",
+    additional_deps = [
+        ":__support_fputil_sqrt",
+    ],
+)
+
+libc_math_function(
+    name = "fsqrtf128",
+    additional_deps = [
+        ":__support_fputil_sqrt",
+    ],
+)
+
+libc_math_function(name = "fsub")
+
+libc_math_function(name = "fsubl")
+
+libc_math_function(name = "fsubf128")
+
+libc_math_function(name = "getpayload")
+
+libc_math_function(name = "getpayloadf")
+
+libc_math_function(name = "getpayloadl")
+
+libc_math_function(name = "getpayloadf128")
+
+libc_math_function(name = "hypot")
+
+libc_math_function(
+    name = "hypotf",
+    additional_deps = [
+        ":__support_fputil_double_double",
+        ":__support_fputil_sqrt",
+    ],
+)
+
+libc_math_function(name = "ilogb")
+
+libc_math_function(name = "ilogbf")
+
+libc_math_function(name = "ilogbl")
+
+libc_math_function(name = "ilogbf128")
+
+libc_math_function(name = "ldexp")
+
+libc_math_function(name = "ldexpf")
+
+libc_math_function(name = "ldexpl")
+
+libc_math_function(name = "ldexpf128")
+
+libc_math_function(name = "llogb")
+
+libc_math_function(name = "llogbf")
+
+libc_math_function(name = "llogbl")
+
+libc_math_function(name = "llogbf128")
+
+libc_math_function(name = "llrint")
+
+libc_math_function(name = "llrintf")
+
+libc_math_function(name = "llrintl")
+
+libc_math_function(name = "llrintf128")
+
+libc_math_function(name = "llround")
+
+libc_math_function(name = "llroundf")
+
+libc_math_function(name = "llroundl")
+
+libc_math_function(name = "llroundf128")
+
+libc_math_function(
+    name = "log",
+    additional_deps = [
+        ":__support_fputil_double_double",
+        ":__support_fputil_dyadic_float",
+        ":__support_fputil_fma",
+        ":__support_fputil_multiply_add",
+        ":__support_fputil_polyeval",
+        ":__support_integer_literals",
         ":__support_macros_optimization",
-        ":inv_trigf_utils",
+        ":__support_macros_properties_cpu_features",
+        ":common_constants",
+        ":log_range_reduction",
     ],
 )
 
 libc_math_function(
-    name = "atanf",
+    name = "logf",
     additional_deps = [
         ":__support_fputil_fma",
         ":__support_fputil_multiply_add",
-        ":__support_fputil_nearest_integer",
         ":__support_fputil_polyeval",
-        ":__support_fputil_rounding_mode",
         ":__support_macros_optimization",
-        ":inv_trigf_utils",
+        ":__support_macros_properties_cpu_features",
+        ":common_constants",
     ],
 )
 
 libc_math_function(
-    name = "powf",
+    name = "log10",
     additional_deps = [
         ":__support_fputil_double_double",
+        ":__support_fputil_dyadic_float",
+        ":__support_fputil_fma",
         ":__support_fputil_multiply_add",
-        ":__support_fputil_nearest_integer",
         ":__support_fputil_polyeval",
-        ":__support_fputil_rounding_mode",
-        ":__support_fputil_sqrt",
-        ":__support_fputil_triple_double",
+        ":__support_integer_literals",
         ":__support_macros_optimization",
+        ":__support_macros_properties_cpu_features",
         ":common_constants",
-        ":explogxf",
-        ":exp2f_impl",
-        ":exp10f_impl",
+        ":log_range_reduction",
     ],
 )
 
-libc_math_function(name = "fabs")
+libc_math_function(
+    name = "log10f",
+    additional_deps = [
+        ":__support_fputil_fma",
+        ":__support_fputil_multiply_add",
+        ":__support_fputil_polyeval",
+        ":__support_macros_optimization",
+        ":__support_macros_properties_cpu_features",
+        ":common_constants",
+    ],
+)
 
-libc_math_function(name = "fabsf")
+libc_math_function(
+    name = "log1p",
+    additional_deps = [
+        ":__support_fputil_double_double",
+        ":__support_fputil_dyadic_float",
+        ":__support_fputil_fma",
+        ":__support_fputil_multiply_add",
+        ":__support_fputil_polyeval",
+        ":__support_integer_literals",
+        ":__support_macros_optimization",
+        ":__support_macros_properties_cpu_features",
+        ":common_constants",
+    ],
+)
 
-libc_math_function(name = "fabsl")
+libc_math_function(
+    name = "log1pf",
+    additional_deps = [
+        ":__support_fputil_fma",
+        ":__support_fputil_multiply_add",
+        ":__support_fputil_polyeval",
+        ":__support_macros_optimization",
+        ":__support_macros_properties_cpu_features",
+        ":common_constants",
+    ],
+)
 
-libc_math_function(name = "fabsf128")
+libc_math_function(
+    name = "log2",
+    additional_deps = [
+        ":__support_fputil_double_double",
+        ":__support_fputil_dyadic_float",
+        ":__support_fputil_fma",
+        ":__support_fputil_multiply_add",
+        ":__support_fputil_polyeval",
+        ":__support_integer_literals",
+        ":__support_macros_optimization",
+        ":__support_macros_properties_cpu_features",
+        ":common_constants",
+        ":log_range_reduction",
+    ],
+)
 
-libc_math_function(name = "fdim")
+libc_math_function(
+    name = "log2f",
+    additional_deps = [
+        ":__support_fputil_fma",
+        ":__support_fputil_multiply_add",
+        ":__support_fputil_polyeval",
+        ":__support_macros_optimization",
+        ":common_constants",
+    ],
+)
 
-libc_math_function(name = "fdimf")
+libc_math_function(name = "logb")
 
-libc_math_function(name = "fdiml")
+libc_math_function(name = "logbf")
 
-libc_math_function(name = "fdimf128")
+libc_math_function(name = "logbl")
+
+libc_math_function(name = "logbf128")
+
+libc_math_function(name = "lrint")
+
+libc_math_function(name = "lrintf")
+
+libc_math_function(name = "lrintl")
+
+libc_math_function(name = "lrintf128")
+
+libc_math_function(name = "lround")
+
+libc_math_function(name = "lroundf")
+
+libc_math_function(name = "lroundl")
+
+libc_math_function(name = "lroundf128")
+
+libc_math_function(name = "modf")
+
+libc_math_function(name = "modff")
+
+libc_math_function(name = "modfl")
+
+libc_math_function(name = "modff128")
 
 libc_math_function(
-    name = "ceil",
-    specializations = [
-        "generic",
+    name = "nan",
+    additional_deps = [
+        ":__support_str_to_float",
+        ":errno",
     ],
 )
 
 libc_math_function(
-    name = "ceilf",
-    specializations = [
-        "generic",
+    name = "nanf",
+    additional_deps = [
+        ":__support_str_to_float",
+        ":errno",
     ],
 )
 
 libc_math_function(
-    name = "ceill",
-    specializations = [
-        "generic",
+    name = "nanl",
+    additional_deps = [
+        ":__support_str_to_float",
+        ":errno",
     ],
 )
 
-libc_math_function(name = "ceilf128")
+libc_math_function(
+    name = "nanf128",
+    additional_deps = [
+        ":__support_str_to_float",
+        ":errno",
+    ],
+)
+
+libc_math_function(name = "nearbyint")
+
+libc_math_function(name = "nearbyintf")
+
+libc_math_function(name = "nearbyintl")
+
+libc_math_function(name = "nearbyintf128")
+
+libc_math_function(name = "nextafter")
+
+libc_math_function(name = "nextafterf")
+
+libc_math_function(name = "nextafterl")
+
+libc_math_function(name = "nextafterf128")
+
+libc_math_function(name = "nextdown")
+
+libc_math_function(name = "nextdownf")
+
+libc_math_function(name = "nextdownl")
+
+libc_math_function(name = "nextdownf128")
+
+libc_math_function(name = "nexttoward")
+
+libc_math_function(name = "nexttowardf")
+
+libc_math_function(name = "nexttowardl")
+
+libc_math_function(name = "nextup")
+
+libc_math_function(name = "nextupf")
+
+libc_math_function(name = "nextupl")
+
+libc_math_function(name = "nextupf128")
 
 libc_math_function(
-    name = "floor",
-    specializations = [
-        "generic",
+    name = "pow",
+    additional_deps = [
+        ":__support_fputil_double_double",
+        ":__support_fputil_nearest_integer",
+        ":__support_fputil_polyeval",
+        ":__support_fputil_sqrt",
+        ":common_constants",
     ],
 )
 
 libc_math_function(
-    name = "floorf",
-    specializations = [
-        "generic",
+    name = "powf",
+    additional_deps = [
+        ":__support_fputil_double_double",
+        ":__support_fputil_multiply_add",
+        ":__support_fputil_nearest_integer",
+        ":__support_fputil_polyeval",
+        ":__support_fputil_rounding_mode",
+        ":__support_fputil_sqrt",
+        ":__support_fputil_triple_double",
+        ":__support_macros_optimization",
+        ":common_constants",
+        ":explogxf",
+        ":exp2f_impl",
+        ":exp10f_impl",
     ],
 )
 
-libc_math_function(name = "floorl")
+libc_math_function(name = "remainder")
 
-libc_math_function(name = "floorf128")
+libc_math_function(name = "remainderf")
+
+libc_math_function(name = "remainderl")
+
+libc_math_function(name = "remainderf128")
 
-libc_math_function(name = "ldexp")
+libc_math_function(name = "remquo")
 
-libc_math_function(name = "ldexpf")
+libc_math_function(name = "remquof")
 
-libc_math_function(name = "ldexpl")
+libc_math_function(name = "remquol")
 
-libc_math_function(name = "ldexpf128")
+libc_math_function(name = "remquof128")
 
-libc_math_function(
-    name = "trunc",
-    specializations = [
-        "generic",
-    ],
-)
+libc_math_function(name = "rint")
 
-libc_math_function(
-    name = "truncf",
-    specializations = [
-        "generic",
-    ],
-)
+libc_math_function(name = "rintf")
 
-libc_math_function(name = "truncl")
+libc_math_function(name = "rintl")
 
-libc_math_function(name = "truncf128")
+libc_math_function(name = "rintf128")
 
 libc_math_function(
     name = "round",
@@ -2033,95 +2504,48 @@ libc_math_function(name = "roundl")
 
 libc_math_function(name = "roundf128")
 
-libc_math_function(
-    name = "fmod",
-    additional_deps = [
-        ":__support_fputil_generic_fmod",
-    ],
-)
-
-libc_math_function(
-    name = "fmodf",
-    additional_deps = [
-        ":__support_fputil_generic_fmod",
-    ],
-)
-
-libc_math_function(name = "frexp")
-
-libc_math_function(name = "frexpf")
-
-libc_math_function(name = "frexpl")
-
-libc_math_function(name = "frexpf128")
-
-libc_math_function(name = "hypot")
-
-libc_math_function(
-    name = "hypotf",
-    additional_deps = [
-        ":__support_fputil_double_double",
-        ":__support_fputil_sqrt",
-    ],
-)
-
-libc_math_function(name = "logb")
-
-libc_math_function(name = "logbf")
-
-libc_math_function(name = "logbl")
-
-libc_math_function(name = "logbf128")
+libc_math_function(name = "roundeven")
 
-libc_math_function(name = "modf")
+libc_math_function(name = "roundevenf")
 
-libc_math_function(name = "modff")
+libc_math_function(name = "roundevenl")
 
-libc_math_function(name = "modfl")
+libc_math_function(name = "roundevenf128")
 
-libc_math_function(name = "modff128")
+libc_math_function(name = "scalbln")
 
-libc_math_function(name = "remquo")
+libc_math_function(name = "scalblnf")
 
-libc_math_function(name = "remquof")
+libc_math_function(name = "scalblnl")
 
-libc_math_function(name = "remquol")
+libc_math_function(name = "scalblnf128")
 
-libc_math_function(name = "remainder")
+libc_math_function(name = "scalbn")
 
-libc_math_function(name = "remainderf")
+libc_math_function(name = "scalbnf")
 
-libc_math_function(name = "remainderl")
+libc_math_function(name = "scalbnl")
 
-libc_math_function(name = "fmin")
+libc_math_function(name = "scalbnf128")
 
-libc_math_function(name = "fminf")
+libc_math_function(name = "setpayload")
 
-libc_math_function(name = "fminl")
+libc_math_function(name = "setpayloadf")
 
-libc_math_function(name = "fminf128")
+libc_math_function(name = "setpayloadl")
 
-libc_math_function(name = "fmax")
+libc_math_function(name = "setpayloadf128")
 
-libc_math_function(name = "fmaxf")
+libc_math_function(name = "setpayloadsig")
 
-libc_math_function(name = "fmaxl")
+libc_math_function(name = "setpayloadsigf")
 
-libc_math_function(name = "fmaxf128")
+libc_math_function(name = "setpayloadsigl")
 
-libc_math_function(
-    name = "cosf",
-    additional_deps = [
-        ":__support_fputil_fma",
-        ":__support_fputil_multiply_add",
-        ":__support_macros_optimization",
-        ":__support_macros_properties_cpu_features",
-        ":sincosf_utils",
-    ],
-)
+libc_math_function(name = "setpayloadsigf128")
 
 libc_math_function(
-    name = "cos",
+    name = "sin",
     additional_deps = [
         ":__support_fputil_multiply_add",
         ":__support_macros_optimization",
@@ -2132,13 +2556,15 @@ libc_math_function(
 )
 
 libc_math_function(
-    name = "sincosf",
+    name = "sinf",
     additional_deps = [
         ":__support_fputil_fma",
         ":__support_fputil_multiply_add",
+        ":__support_fputil_polyeval",
         ":__support_fputil_rounding_mode",
         ":__support_macros_optimization",
         ":__support_macros_properties_cpu_features",
+        ":range_reduction",
         ":sincosf_utils",
     ],
 )
@@ -2155,52 +2581,35 @@ libc_math_function(
 )
 
 libc_math_function(
-    name = "sinf",
+    name = "sincosf",
     additional_deps = [
         ":__support_fputil_fma",
         ":__support_fputil_multiply_add",
-        ":__support_fputil_polyeval",
         ":__support_fputil_rounding_mode",
         ":__support_macros_optimization",
         ":__support_macros_properties_cpu_features",
-        ":range_reduction",
         ":sincosf_utils",
     ],
 )
 
 libc_math_function(
-    name = "sin",
-    additional_deps = [
-        ":__support_fputil_multiply_add",
-        ":__support_macros_optimization",
-        ":__support_macros_properties_cpu_features",
-        ":range_reduction_double",
-        ":sincos_eval",
-    ],
-)
-
-libc_math_function(
-    name = "tanf",
+    name = "sinhf",
     additional_deps = [
         ":__support_fputil_fma",
         ":__support_fputil_multiply_add",
         ":__support_fputil_nearest_integer",
         ":__support_fputil_polyeval",
+        ":__support_fputil_rounding_mode",
         ":__support_macros_optimization",
-        ":__support_macros_properties_cpu_features",
-        ":range_reduction",
-        ":sincosf_utils",
+        ":common_constants",
+        ":explogxf",
     ],
 )
 
 libc_math_function(
-    name = "tan",
+    name = "sinpif",
     additional_deps = [
-        ":__support_fputil_multiply_add",
-        ":__support_macros_optimization",
-        ":__support_macros_properties_cpu_features",
-        ":range_reduction_double",
-        ":sincos_eval",
+        ":sincosf_utils",
     ],
 )
 
@@ -2232,124 +2641,96 @@ libc_math_function(
     ],
 )
 
-libc_math_function(name = "copysign")
-
-libc_math_function(name = "copysignf")
-
-libc_math_function(name = "copysignl")
-
 libc_math_function(
-    name = "copysignf128",
+    name = "tan",
     additional_deps = [
-        ":llvm_libc_types_float128",
+        ":__support_fputil_multiply_add",
+        ":__support_macros_optimization",
+        ":__support_macros_properties_cpu_features",
+        ":range_reduction_double",
+        ":sincos_eval",
     ],
 )
 
-libc_math_function(name = "ilogb")
-
-libc_math_function(name = "ilogbf")
-
-libc_math_function(name = "ilogbl")
-
-libc_math_function(name = "ilogbf128")
-
-libc_math_function(name = "rint")
-
-libc_math_function(name = "rintf")
-
-libc_math_function(name = "rintl")
-
-libc_math_function(name = "rintf128")
-
-libc_math_function(name = "lrint")
-
-libc_math_function(name = "lrintf")
-
-libc_math_function(name = "lrintl")
-
-libc_math_function(name = "lrintf128")
-
-libc_math_function(name = "llrint")
-
-libc_math_function(name = "llrintf")
-
-libc_math_function(name = "llrintl")
-
-libc_math_function(name = "llrintf128")
-
-libc_math_function(name = "lround")
-
-libc_math_function(name = "lroundf")
-
-libc_math_function(name = "lroundl")
-
-libc_math_function(name = "lroundf128")
-
-libc_math_function(name = "llround")
-
-libc_math_function(name = "llroundf")
-
-libc_math_function(name = "llroundl")
-
-libc_math_function(name = "llroundf128")
-
 libc_math_function(
-    name = "nan",
+    name = "tanf",
     additional_deps = [
-        ":__support_str_to_float",
-        ":errno",
+        ":__support_fputil_fma",
+        ":__support_fputil_multiply_add",
+        ":__support_fputil_nearest_integer",
+        ":__support_fputil_polyeval",
+        ":__support_macros_optimization",
+        ":__support_macros_properties_cpu_features",
+        ":range_reduction",
+        ":sincosf_utils",
     ],
 )
 
 libc_math_function(
-    name = "nanf",
+    name = "tanhf",
     additional_deps = [
-        ":__support_str_to_float",
-        ":errno",
+        ":__support_fputil_fma",
+        ":__support_fputil_multiply_add",
+        ":__support_fputil_nearest_integer",
+        ":__support_fputil_polyeval",
+        ":__support_fputil_rounding_mode",
+        ":__support_macros_optimization",
+        ":__support_macros_properties_cpu_features",
+        ":common_constants",
+        ":explogxf",
     ],
 )
 
+libc_math_function(name = "totalorder")
+
+libc_math_function(name = "totalorderf")
+
+libc_math_function(name = "totalorderl")
+
+libc_math_function(name = "totalorderf128")
+
+libc_math_function(name = "totalordermag")
+
+libc_math_function(name = "totalordermagf")
+
+libc_math_function(name = "totalordermagl")
+
+libc_math_function(name = "totalordermagf128")
+
 libc_math_function(
-    name = "nanl",
-    additional_deps = [
-        ":__support_str_to_float",
-        ":errno",
+    name = "trunc",
+    specializations = [
+        "generic",
     ],
 )
 
 libc_math_function(
-    name = "nanf128",
-    additional_deps = [
-        ":__support_str_to_float",
-        ":errno",
+    name = "truncf",
+    specializations = [
+        "generic",
     ],
 )
 
-libc_math_function(name = "nearbyint")
-
-libc_math_function(name = "nearbyintf")
-
-libc_math_function(name = "nearbyintl")
+libc_math_function(name = "truncl")
 
-libc_math_function(name = "nextafter")
+libc_math_function(name = "truncf128")
 
-libc_math_function(name = "nextafterf")
+libc_math_function(name = "ufromfp")
 
-libc_math_function(name = "nextafterl")
+libc_math_function(name = "ufromfpf")
 
-libc_math_function(name = "nextafterf128")
+libc_math_function(name = "ufromfpl")
 
-libc_math_function(name = "nexttoward")
+libc_math_function(name = "ufromfpf128")
 
-libc_math_function(name = "nexttowardf")
+libc_math_function(name = "ufromfpx")
 
-libc_math_function(name = "nexttowardl")
+libc_math_function(name = "ufromfpxf")
 
-libc_math_function(name = "scalbn")
+libc_math_function(name = "ufromfpxl")
 
-libc_math_function(name = "scalbnf")
+libc_math_function(name = "ufromfpxf128")
 
-libc_math_function(name = "scalbnl")
 
 ############################## inttypes targets ##############################
 
diff --git a/utils/bazel/llvm-project-overlay/libc/test/src/math/BUILD.bazel b/utils/bazel/llvm-project-overlay/libc/test/src/math/BUILD.bazel
index 57e3f9f6e9458f..9df23fe44c45a0 100644
--- a/utils/bazel/llvm-project-overlay/libc/test/src/math/BUILD.bazel
+++ b/utils/bazel/llvm-project-overlay/libc/test/src/math/BUILD.bazel
@@ -5,829 +5,435 @@
 # Tests for LLVM libc math.h functions.
 
 load("//libc:libc_build_rules.bzl", "libc_support_library")
-load("//libc/test/src/math:libc_math_test_rules.bzl", "math_test")
+load("//libc/test/src/math:libc_math_test_rules.bzl", "math_mpfr_test")
 
 package(default_visibility = ["//visibility:public"])
 
-exports_files(["libc_math_test_rules.bzl"])
+exports_files(["libc_math_mpfr_test_rules.bzl"])
 
 licenses(["notice"])
 
-math_test(
-    name = "fabs",
-    hdrs = ["FAbsTest.h"],
-    deps = ["//libc/utils/MPFRWrapper:mpfr_wrapper"],
-)
+math_mpfr_test(name = "acosf")
 
-math_test(
-    name = "fabsf",
-    hdrs = ["FAbsTest.h"],
-    deps = ["//libc/utils/MPFRWrapper:mpfr_wrapper"],
-)
+math_mpfr_test(name = "acoshf")
 
-math_test(
-    name = "fabsl",
-    hdrs = ["FAbsTest.h"],
-    deps = ["//libc/utils/MPFRWrapper:mpfr_wrapper"],
-)
+math_mpfr_test(name = "asinf")
+
+math_mpfr_test(name = "asinhf")
+
+math_mpfr_test(name = "atan2")
+
+math_mpfr_test(name = "atan2f")
 
-math_test(
+math_mpfr_test(name = "atanf")
+
+math_mpfr_test(name = "atanhf")
+
+math_mpfr_test(name = "cbrt")
+
+math_mpfr_test(name = "cbrtf")
+
+math_mpfr_test(
     name = "ceil",
     hdrs = ["CeilTest.h"],
-    deps = ["//libc/utils/MPFRWrapper:mpfr_wrapper"],
 )
 
-math_test(
+math_mpfr_test(
     name = "ceilf",
     hdrs = ["CeilTest.h"],
-    deps = ["//libc/utils/MPFRWrapper:mpfr_wrapper"],
 )
 
-math_test(
+math_mpfr_test(
     name = "ceill",
     hdrs = ["CeilTest.h"],
-    deps = ["//libc/utils/MPFRWrapper:mpfr_wrapper"],
 )
 
-math_test(
-    name = "floor",
-    hdrs = ["FloorTest.h"],
-    deps = ["//libc/utils/MPFRWrapper:mpfr_wrapper"],
-)
+math_mpfr_test(name = "cos")
 
-math_test(
-    name = "floorf",
-    hdrs = ["FloorTest.h"],
-    deps = ["//libc/utils/MPFRWrapper:mpfr_wrapper"],
+math_mpfr_test(
+    name = "cosf",
+    hdrs = ["sdcomp26094.h"],
 )
 
-math_test(
-    name = "floorl",
-    hdrs = ["FloorTest.h"],
-    deps = ["//libc/utils/MPFRWrapper:mpfr_wrapper"],
+math_mpfr_test(
+    name = "coshf",
+    deps = [
+        "//libc:__support_cpp_array",
+    ],
 )
 
-math_test(
-    name = "trunc",
-    hdrs = ["TruncTest.h"],
-    deps = ["//libc/utils/MPFRWrapper:mpfr_wrapper"],
+math_mpfr_test(
+    name = "cospif",
+    hdrs = ["sdcomp26094.h"],
 )
 
-math_test(
-    name = "truncf",
-    hdrs = ["TruncTest.h"],
-    deps = ["//libc/utils/MPFRWrapper:mpfr_wrapper"],
+math_mpfr_test(
+    name = "daddl",
+    hdrs = ["AddTest.h"],
 )
 
-math_test(
-    name = "truncl",
-    hdrs = ["TruncTest.h"],
-    deps = ["//libc/utils/MPFRWrapper:mpfr_wrapper"],
+math_mpfr_test(
+    name = "ddivl",
+    hdrs = ["DivTest.h"],
 )
 
-math_test(
-    name = "round",
-    hdrs = ["RoundTest.h"],
-    deps = ["//libc/utils/MPFRWrapper:mpfr_wrapper"],
-)
+# TODO: Add dfmal, dmull test.  Missing stdlib/rand dependency.
 
-math_test(
-    name = "roundf",
-    hdrs = ["RoundTest.h"],
-    deps = ["//libc/utils/MPFRWrapper:mpfr_wrapper"],
+math_mpfr_test(
+    name = "dsqrtl",
+    hdrs = ["SqrtTest.h"],
 )
 
-math_test(
-    name = "roundl",
-    hdrs = ["RoundTest.h"],
-    deps = ["//libc/utils/MPFRWrapper:mpfr_wrapper"],
+math_mpfr_test(
+    name = "dsubl",
+    hdrs = ["SubTest.h"],
 )
 
-math_test(
-    name = "frexp",
-    hdrs = ["FrexpTest.h"],
-    deps = ["//libc/utils/MPFRWrapper:mpfr_wrapper"],
-)
+math_mpfr_test(name = "erff")
 
-math_test(
-    name = "frexpf",
-    hdrs = ["FrexpTest.h"],
-    deps = ["//libc/utils/MPFRWrapper:mpfr_wrapper"],
-)
+math_mpfr_test(name = "exp")
 
-math_test(
-    name = "frexpl",
-    hdrs = ["FrexpTest.h"],
-    deps = ["//libc/utils/MPFRWrapper:mpfr_wrapper"],
-)
+math_mpfr_test(name = "expf")
 
-math_test(
-    name = "hypot",
-    hdrs = ["HypotTest.h"],
-    deps = ["//libc/utils/MPFRWrapper:mpfr_wrapper"],
-)
+math_mpfr_test(name = "exp10")
 
-math_test(
-    name = "hypotf",
-    hdrs = [
-        "HypotTest.h",
-        "hypotf_hard_to_round.h",
-    ],
-    deps = ["//libc/utils/MPFRWrapper:mpfr_wrapper"],
-)
+math_mpfr_test(name = "exp10f")
 
-math_test(
-    name = "logb",
-    hdrs = ["LogbTest.h"],
-    deps = ["//libc/utils/MPFRWrapper:mpfr_wrapper"],
-)
+math_mpfr_test(name = "exp2")
 
-math_test(
-    name = "logbf",
-    hdrs = ["LogbTest.h"],
-    deps = ["//libc/utils/MPFRWrapper:mpfr_wrapper"],
-)
+math_mpfr_test(name = "exp2f")
 
-math_test(
-    name = "logbl",
-    hdrs = ["LogbTest.h"],
-    deps = ["//libc/utils/MPFRWrapper:mpfr_wrapper"],
+math_mpfr_test(
+    name = "exp2m1f",
+    deps = [
+        "//libc:__support_cpp_array",
+    ]
 )
 
-math_test(
-    name = "modf",
-    hdrs = ["ModfTest.h"],
-    deps = ["//libc/utils/MPFRWrapper:mpfr_wrapper"],
-)
+math_mpfr_test(name = "expm1")
+
+math_mpfr_test(name = "expm1f")
 
-math_test(
-    name = "modff",
-    hdrs = ["ModfTest.h"],
-    deps = ["//libc/utils/MPFRWrapper:mpfr_wrapper"],
+math_mpfr_test(
+    name = "fabs",
+    hdrs = ["FAbsTest.h"],
 )
 
-math_test(
-    name = "modfl",
-    hdrs = ["ModfTest.h"],
-    deps = ["//libc/utils/MPFRWrapper:mpfr_wrapper"],
+math_mpfr_test(
+    name = "fabsf",
+    hdrs = ["FAbsTest.h"],
 )
 
-libc_support_library(
-    name = "remquo_test_template",
-    hdrs = ["RemQuoTest.h"],
-    deps = [
-        "//libc:__support_fputil_basic_operations",
-        "//libc:__support_fputil_fp_bits",
-        "//libc:hdr_math_macros",
-        "//libc/test/UnitTest:LibcUnitTest",
-        "//libc/test/UnitTest:fp_test_helpers",
-        "//libc/utils/MPFRWrapper:mpfr_wrapper",
-    ],
+math_mpfr_test(
+    name = "fabsl",
+    hdrs = ["FAbsTest.h"],
 )
 
-math_test(
-    name = "remquo",
-    deps = [
-        ":remquo_test_template",
-        "//libc/utils/MPFRWrapper:mpfr_wrapper",
-    ],
+math_mpfr_test(
+    name = "fadd",
+    hdrs = ["AddTest.h"],
 )
 
-math_test(
-    name = "remquof",
-    deps = [
-        ":remquo_test_template",
-        "//libc/utils/MPFRWrapper:mpfr_wrapper",
-    ],
+math_mpfr_test(
+    name = "faddl",
+    hdrs = ["AddTest.h"],
 )
 
-math_test(
-    name = "remquol",
-    deps = [
-        ":remquo_test_template",
-        "//libc/utils/MPFRWrapper:mpfr_wrapper",
-    ],
+math_mpfr_test(
+    name = "fdiv",
+    hdrs = ["DivTest.h"],
 )
 
-math_test(
-    name = "fmin",
-    hdrs = ["FMinTest.h"],
-    deps = ["//libc/utils/MPFRWrapper:mpfr_wrapper"],
+math_mpfr_test(
+    name = "fdivl",
+    hdrs = ["DivTest.h"],
 )
 
-math_test(
-    name = "fminf",
-    hdrs = ["FMinTest.h"],
-    deps = ["//libc/utils/MPFRWrapper:mpfr_wrapper"],
+# TODO: Add ffma, ffmal test.  Missing stdlib/rand dependency.
+
+math_mpfr_test(
+    name = "floor",
+    hdrs = ["FloorTest.h"],
 )
 
-math_test(
-    name = "fminl",
-    hdrs = ["FMinTest.h"],
-    deps = ["//libc/utils/MPFRWrapper:mpfr_wrapper"],
+math_mpfr_test(
+    name = "floorf",
+    hdrs = ["FloorTest.h"],
 )
 
-math_test(
-    name = "fmax",
-    hdrs = ["FMaxTest.h"],
-    deps = ["//libc/utils/MPFRWrapper:mpfr_wrapper"],
+math_mpfr_test(
+    name = "floorl",
+    hdrs = ["FloorTest.h"],
 )
 
-math_test(
-    name = "fmaxf",
-    hdrs = ["FMaxTest.h"],
-    deps = ["//libc/utils/MPFRWrapper:mpfr_wrapper"],
+# TODO: Add fma, fmaf, fmal, fmul, fmull tests.  Missing stdlib/rand dependency.
+
+math_mpfr_test(
+    name = "frexp",
+    hdrs = ["FrexpTest.h"],
 )
 
-math_test(
-    name = "fmaxl",
-    hdrs = ["FMaxTest.h"],
-    deps = ["//libc/utils/MPFRWrapper:mpfr_wrapper"],
+math_mpfr_test(
+    name = "frexpf",
+    hdrs = ["FrexpTest.h"],
 )
 
-math_test(
-    name = "sqrt",
-    hdrs = ["SqrtTest.h"],
-    deps = [
-        "//libc:__support_cpp_bit",
-        "//libc/utils/MPFRWrapper:mpfr_wrapper",
-    ],
+math_mpfr_test(
+    name = "frexpl",
+    hdrs = ["FrexpTest.h"],
 )
 
-math_test(
-    name = "sqrtf",
+math_mpfr_test(
+    name = "fsqrt",
     hdrs = ["SqrtTest.h"],
-    deps = [
-        "//libc:__support_cpp_bit",
-        "//libc/utils/MPFRWrapper:mpfr_wrapper",
-    ],
 )
 
-math_test(
-    name = "sqrtl",
+math_mpfr_test(
+    name = "fsqrtl",
     hdrs = ["SqrtTest.h"],
-    deps = [
-        "//libc:__support_cpp_bit",
-        "//libc/utils/MPFRWrapper:mpfr_wrapper",
-    ],
 )
 
-math_test(
-    name = "copysign",
-    hdrs = ["CopySignTest.h"],
-    deps = ["//libc/utils/MPFRWrapper:mpfr_wrapper"],
+math_mpfr_test(
+    name = "fsub",
+    hdrs = ["SubTest.h"],
 )
 
-math_test(
-    name = "copysignf",
-    hdrs = ["CopySignTest.h"],
-    deps = ["//libc/utils/MPFRWrapper:mpfr_wrapper"],
+math_mpfr_test(
+    name = "fsubl",
+    hdrs = ["SubTest.h"],
 )
 
-math_test(
-    name = "copysignl",
-    hdrs = ["CopySignTest.h"],
-    deps = ["//libc/utils/MPFRWrapper:mpfr_wrapper"],
+math_mpfr_test(
+    name = "hypot",
+    hdrs = ["HypotTest.h"],
 )
 
-libc_support_library(
-    name = "ilogb_test_template",
-    hdrs = ["ILogbTest.h"],
-    deps = [
-        "//libc:__support_cpp_limits",
-        "//libc:__support_fputil_fp_bits",
-        "//libc:__support_fputil_manipulation_functions",
-        "//libc:hdr_math_macros",
-        "//libc/test/UnitTest:LibcUnitTest",
-        "//libc/test/UnitTest:fp_test_helpers",
+math_mpfr_test(
+    name = "hypotf",
+    hdrs = [
+        "hypotf_hard_to_round.h",
+        "HypotTest.h",
     ],
 )
 
-math_test(
-    name = "ilogb",
-    deps = [":ilogb_test_template"],
-)
-
-math_test(
-    name = "ilogbf",
-    deps = [":ilogb_test_template"],
-)
-
-math_test(
-    name = "ilogbl",
-    deps = [":ilogb_test_template"],
+math_mpfr_test(
+    name = "llrint",
+    hdrs = ["RoundToIntegerTest.h"],
 )
 
-libc_support_library(
-    name = "fdim_test_template",
-    hdrs = ["FDimTest.h"],
-    deps = [
-        "//libc:__support_fputil_basic_operations",
-        "//libc:__support_fputil_fenv_impl",
-        "//libc:__support_fputil_fp_bits",
-        "//libc:hdr_math_macros",
-        "//libc/test/UnitTest:LibcUnitTest",
-        "//libc/test/UnitTest:fp_test_helpers",
-    ],
+math_mpfr_test(
+    name = "llrintf",
+    hdrs = ["RoundToIntegerTest.h"],
 )
 
-math_test(
-    name = "fdim",
-    deps = [":fdim_test_template"],
+math_mpfr_test(
+    name = "llrintl",
+    hdrs = ["RoundToIntegerTest.h"],
 )
 
-math_test(
-    name = "fdimf",
-    deps = [":fdim_test_template"],
+math_mpfr_test(
+    name = "llround",
+    hdrs = ["RoundToIntegerTest.h"],
 )
 
-math_test(
-    name = "fdiml",
-    deps = [":fdim_test_template"],
+math_mpfr_test(
+    name = "llroundf",
+    hdrs = ["RoundToIntegerTest.h"],
 )
 
-libc_support_library(
-    name = "ldexp_test_template",
-    hdrs = ["LdExpTest.h"],
-    deps = [
-        "//libc:__support_cpp_limits",
-        "//libc:__support_fputil_fp_bits",
-        "//libc:__support_fputil_normal_float",
-        "//libc:hdr_math_macros",
-        "//libc/test/UnitTest:LibcUnitTest",
-        "//libc/test/UnitTest:fp_test_helpers",
-    ],
+math_mpfr_test(
+    name = "llroundl",
+    hdrs = ["RoundToIntegerTest.h"],
 )
 
-math_test(
-    name = "ldexp",
-    deps = [":ldexp_test_template"],
-)
+math_mpfr_test(name = "log")
 
-math_test(
-    name = "ldexpf",
-    deps = [":ldexp_test_template"],
-)
+math_mpfr_test(name = "logf")
 
-math_test(
-    name = "ldexpl",
-    deps = [":ldexp_test_template"],
-)
+math_mpfr_test(name = "log10")
 
-libc_support_library(
-    name = "rint_test_template",
-    hdrs = ["RIntTest.h"],
-    deps = [
-        "//libc:__support_cpp_algorithm",
-        "//libc:__support_fputil_fenv_impl",
-        "//libc:__support_fputil_fp_bits",
-        "//libc:hdr_fenv_macros",
-        "//libc:hdr_math_macros",
-        "//libc/test/UnitTest:LibcUnitTest",
-        "//libc/test/UnitTest:fp_test_helpers",
-        "//libc/utils/MPFRWrapper:mpfr_wrapper",
-    ],
-)
+math_mpfr_test(name = "log10f")
 
-math_test(
-    name = "rint",
-    deps = [
-        ":rint_test_template",
-        "//libc/utils/MPFRWrapper:mpfr_wrapper",
-    ],
-)
+math_mpfr_test(name = "log1p")
 
-math_test(
-    name = "rintf",
-    deps = [
-        ":rint_test_template",
-        "//libc/utils/MPFRWrapper:mpfr_wrapper",
-    ],
-)
+math_mpfr_test(name = "log1pf")
 
-math_test(
-    name = "rintl",
-    deps = [
-        ":rint_test_template",
-        "//libc/utils/MPFRWrapper:mpfr_wrapper",
-    ],
-)
+math_mpfr_test(name = "log2")
 
-libc_support_library(
-    name = "round_to_integer_test_template",
-    hdrs = ["RoundToIntegerTest.h"],
-    deps = [
-        "//libc:__support_cpp_algorithm",
-        "//libc:__support_fputil_fenv_impl",
-        "//libc:__support_fputil_fp_bits",
-        "//libc:__support_macros_properties_architectures",
-        "//libc:hdr_math_macros",
-        "//libc/test/UnitTest:LibcUnitTest",
-        "//libc/test/UnitTest:fp_test_helpers",
-        "//libc/utils/MPFRWrapper:mpfr_wrapper",
-    ],
-)
+math_mpfr_test(name = "log2f")
 
-math_test(
+math_mpfr_test(
     name = "lrint",
-    deps = [
-        ":round_to_integer_test_template",
-        "//libc/utils/MPFRWrapper:mpfr_wrapper",
-    ],
+    hdrs = ["RoundToIntegerTest.h"],
 )
 
-math_test(
+math_mpfr_test(
     name = "lrintf",
-    deps = [
-        ":round_to_integer_test_template",
-        "//libc/utils/MPFRWrapper:mpfr_wrapper",
-    ],
+    hdrs = ["RoundToIntegerTest.h"],
 )
 
-math_test(
+math_mpfr_test(
     name = "lrintl",
-    deps = [
-        ":round_to_integer_test_template",
-        "//libc/utils/MPFRWrapper:mpfr_wrapper",
-    ],
-)
-
-math_test(
-    name = "llrint",
-    deps = [
-        ":round_to_integer_test_template",
-        "//libc/utils/MPFRWrapper:mpfr_wrapper",
-    ],
-)
-
-math_test(
-    name = "llrintf",
-    deps = [
-        ":round_to_integer_test_template",
-        "//libc/utils/MPFRWrapper:mpfr_wrapper",
-    ],
-)
-
-math_test(
-    name = "llrintl",
-    deps = [
-        ":round_to_integer_test_template",
-        "//libc/utils/MPFRWrapper:mpfr_wrapper",
-    ],
+    hdrs = ["RoundToIntegerTest.h"],
 )
 
-math_test(
+math_mpfr_test(
     name = "lround",
-    deps = [
-        ":round_to_integer_test_template",
-        "//libc/utils/MPFRWrapper:mpfr_wrapper",
-    ],
+    hdrs = ["RoundToIntegerTest.h"],
 )
 
-math_test(
+math_mpfr_test(
     name = "lroundf",
-    deps = [
-        ":round_to_integer_test_template",
-        "//libc/utils/MPFRWrapper:mpfr_wrapper",
-    ],
+    hdrs = ["RoundToIntegerTest.h"],
 )
 
-math_test(
+math_mpfr_test(
     name = "lroundl",
-    deps = [
-        ":round_to_integer_test_template",
-        "//libc/utils/MPFRWrapper:mpfr_wrapper",
-    ],
+    hdrs = ["RoundToIntegerTest.h"],
 )
 
-math_test(
-    name = "llround",
-    deps = [
-        ":round_to_integer_test_template",
-        "//libc/utils/MPFRWrapper:mpfr_wrapper",
-    ],
-)
+# TODO: add nan tests.
 
-math_test(
-    name = "llroundf",
-    deps = [
-        ":round_to_integer_test_template",
-        "//libc/utils/MPFRWrapper:mpfr_wrapper",
-    ],
+math_mpfr_test(
+    name = "nearbyint",
+    hdrs = ["NearbyIntTest.h"],
 )
 
-math_test(
-    name = "llroundl",
-    deps = [
-        ":round_to_integer_test_template",
-        "//libc/utils/MPFRWrapper:mpfr_wrapper",
-    ],
+math_mpfr_test(
+    name = "nearbyintf",
+    hdrs = ["NearbyIntTest.h"],
 )
 
-libc_support_library(
-    name = "nextafter_test_template",
-    hdrs = ["NextAfterTest.h"],
-    deps = [
-        "//libc:__support_cpp_array",
-        "//libc:__support_cpp_bit",
-        "//libc:__support_cpp_type_traits",
-        "//libc:__support_fputil_basic_operations",
-        "//libc:__support_fputil_fenv_impl",
-        "//libc:__support_fputil_fp_bits",
-        "//libc:hdr_fenv_macros",
-        "//libc:hdr_math_macros",
-        "//libc/test/UnitTest:LibcUnitTest",
-        "//libc/test/UnitTest:fp_test_helpers",
-    ],
+math_mpfr_test(
+    name = "nearbyintl",
+    hdrs = ["NearbyIntTest.h"],
 )
 
-math_test(
-    name = "nextafter",
-    deps = [":nextafter_test_template"],
-)
+math_mpfr_test(name = "pow")
 
-math_test(
-    name = "nextafterf",
-    deps = [":nextafter_test_template"],
-)
+math_mpfr_test(name = "powf")
 
-math_test(
-    name = "nextafterl",
-    deps = [":nextafter_test_template"],
-)
-
-libc_support_library(
-    name = "sdcomp26094",
-    hdrs = ["sdcomp26094.h"],
-    deps = [
-        "//libc:__support_cpp_array",
-        "//libc:__support_macros_config",
-    ],
+math_mpfr_test(
+    name = "remquo",
+    hdrs = ["RemQuoTest.h"],
 )
 
-math_test(
-    name = "cosf",
-    deps = [
-        ":sdcomp26094",
-        "//libc:__support_cpp_array",
-        "//libc/utils/MPFRWrapper:mpfr_wrapper",
-    ],
+math_mpfr_test(
+    name = "remquof",
+    hdrs = ["RemQuoTest.h"],
 )
 
-math_test(
-    name = "sincosf",
-    deps = [
-        ":sdcomp26094",
-        "//libc:__support_cpp_array",
-        "//libc/utils/MPFRWrapper:mpfr_wrapper",
-    ],
+math_mpfr_test(
+    name = "remquol",
+    hdrs = ["RemQuoTest.h"],
 )
 
-math_test(
-    name = "sinf",
-    deps = [
-        ":sdcomp26094",
-        "//libc:__support_cpp_array",
-        "//libc/utils/MPFRWrapper:mpfr_wrapper",
-    ],
+math_mpfr_test(
+    name = "rint",
+    hdrs = ["RIntTest.h"],
 )
 
-math_test(
-    name = "tanf",
-    deps = [
-        ":sdcomp26094",
-        "//libc:__support_cpp_array",
-        "//libc/utils/MPFRWrapper:mpfr_wrapper",
-    ],
+math_mpfr_test(
+    name = "rintf",
+    hdrs = ["RIntTest.h"],
 )
 
-math_test(
-    name = "expf",
-    deps = [
-        "//libc/utils/MPFRWrapper:mpfr_wrapper",
-    ],
+math_mpfr_test(
+    name = "rintl",
+    hdrs = ["RIntTest.h"],
 )
 
-math_test(
-    name = "exp2f",
-    deps = [
-        "//libc:__support_macros_properties_cpu_features",
-        "//libc/utils/MPFRWrapper:mpfr_wrapper",
-    ],
+math_mpfr_test(
+    name = "roundeven",
+    hdrs = ["RoundEvenTest.h"],
 )
 
-math_test(
-    name = "exp10f",
-    deps = [
-        "//libc/utils/MPFRWrapper:mpfr_wrapper",
-    ],
+math_mpfr_test(
+    name = "roundevenf",
+    hdrs = ["RoundEvenTest.h"],
 )
 
-math_test(
-    name = "expm1f",
-    deps = [
-        "//libc/utils/MPFRWrapper:mpfr_wrapper",
-    ],
+math_mpfr_test(
+    name = "roundevenl",
+    hdrs = ["RoundEvenTest.h"],
 )
 
-math_test(
-    name = "logf",
-    deps = [
-        "//libc/utils/MPFRWrapper:mpfr_wrapper",
-    ],
+math_mpfr_test(
+    name = "round",
+    hdrs = ["RoundTest.h"],
 )
 
-math_test(
-    name = "log2f",
-    deps = [
-        "//libc/utils/MPFRWrapper:mpfr_wrapper",
-    ],
+math_mpfr_test(
+    name = "roundf",
+    hdrs = ["RoundTest.h"],
 )
 
-math_test(
-    name = "log10f",
-    deps = [
-        "//libc/utils/MPFRWrapper:mpfr_wrapper",
-    ],
+math_mpfr_test(
+    name = "roundl",
+    hdrs = ["RoundTest.h"],
 )
 
-math_test(
-    name = "log1pf",
-    deps = [
-        "//libc/utils/MPFRWrapper:mpfr_wrapper",
-    ],
-)
+math_mpfr_test(name = "sin")
 
-math_test(
-    name = "log",
-    deps = [
-        "//libc/utils/MPFRWrapper:mpfr_wrapper",
-    ],
-)
-
-math_test(
-    name = "log2",
-    deps = [
-        "//libc/utils/MPFRWrapper:mpfr_wrapper",
-    ],
+math_mpfr_test(
+    name = "sinf",
+    hdrs = ["sdcomp26094.h"],
 )
 
-math_test(
-    name = "log10",
-    deps = [
-        "//libc/utils/MPFRWrapper:mpfr_wrapper",
-    ],
-)
+math_mpfr_test(name = "sincos")
 
-math_test(
-    name = "log1p",
-    deps = [
-        "//libc/utils/MPFRWrapper:mpfr_wrapper",
-    ],
+math_mpfr_test(
+    name = "sincosf",
+    hdrs = ["sdcomp26094.h"],
 )
 
-math_test(
+math_mpfr_test(
     name = "sinhf",
     deps = [
         "//libc:__support_cpp_array",
-        "//libc/utils/MPFRWrapper:mpfr_wrapper",
-    ],
-)
-
-math_test(
-    name = "coshf",
-    deps = [
-        "//libc:__support_cpp_array",
-        "//libc/utils/MPFRWrapper:mpfr_wrapper",
-    ],
-)
-
-math_test(
-    name = "cospif",
-    deps = [
-        ":sdcomp26094",
-        "//libc:__support_cpp_array",
-        "//libc/utils/MPFRWrapper:mpfr_wrapper",
-    ],
-)
-
-math_test(
-    name = "tanhf",
-    deps = [
-        "//libc/utils/MPFRWrapper:mpfr_wrapper",
-    ],
-)
-
-math_test(
-    name = "asinhf",
-    deps = [
-        "//libc/utils/MPFRWrapper:mpfr_wrapper",
-    ],
-)
-
-math_test(
-    name = "acoshf",
-    deps = [
-        "//libc/utils/MPFRWrapper:mpfr_wrapper",
-    ],
-)
-
-math_test(
-    name = "atanhf",
-    deps = [
-        "//libc/utils/MPFRWrapper:mpfr_wrapper",
-    ],
-)
-
-math_test(
-    name = "asinf",
-    deps = [
-        "//libc/utils/MPFRWrapper:mpfr_wrapper",
-    ],
-)
-
-math_test(
-    name = "acosf",
-    deps = [
-        "//libc/utils/MPFRWrapper:mpfr_wrapper",
-    ],
-)
-
-math_test(
-    name = "atanf",
-    deps = [
-        "//libc/utils/MPFRWrapper:mpfr_wrapper",
-    ],
+    ]
 )
 
-math_test(
-    name = "erff",
-    deps = [
-        "//libc/utils/MPFRWrapper:mpfr_wrapper",
-    ],
+math_mpfr_test(
+    name = "sinpif",
+    hdrs = ["sdcomp26094.h"],
 )
 
-math_test(
-    name = "exp",
-    deps = [
-        "//libc/utils/MPFRWrapper:mpfr_wrapper",
-    ],
+math_mpfr_test(
+    name = "sqrt",
+    hdrs = ["SqrtTest.h"],
 )
 
-math_test(
-    name = "exp2",
-    deps = [
-        "//libc/utils/MPFRWrapper:mpfr_wrapper",
-    ],
+math_mpfr_test(
+    name = "sqrtf",
+    hdrs = ["SqrtTest.h"],
 )
 
-math_test(
-    name = "exp10",
-    deps = [
-        "//libc/utils/MPFRWrapper:mpfr_wrapper",
-    ],
+math_mpfr_test(
+    name = "sqrtl",
+    hdrs = ["SqrtTest.h"],
 )
 
-math_test(
-    name = "powf",
-    deps = [
-        "//libc/utils/MPFRWrapper:mpfr_wrapper",
-    ],
-)
+math_mpfr_test(name = "tan")
 
-math_test(
-    name = "fmod",
-    hdrs = ["FModTest.h"],
+math_mpfr_test(
+    name = "tanf",
+    hdrs = ["sdcomp26094.h"],
 )
 
-math_test(
-    name = "fmodf",
-    hdrs = ["FModTest.h"],
-)
+math_mpfr_test(name = "tanhf")
 
-math_test(
-    name = "scalbn",
-    hdrs = [
-        "LdExpTest.h",
-        "ScalbnTest.h",
-    ],
-    deps = ["//libc:__support_cpp_limits"],
+math_mpfr_test(
+    name = "trunc",
+    hdrs = ["TruncTest.h"],
 )
 
-math_test(
-    name = "scalbnf",
-    hdrs = [
-        "LdExpTest.h",
-        "ScalbnTest.h",
-    ],
-    deps = ["//libc:__support_cpp_limits"],
+math_mpfr_test(
+    name = "truncf",
+    hdrs = ["TruncTest.h"],
 )
 
-math_test(
-    name = "scalbnl",
-    hdrs = [
-        "LdExpTest.h",
-        "ScalbnTest.h",
-    ],
-    deps = ["//libc:__support_cpp_limits"],
+math_mpfr_test(
+    name = "truncl",
+    hdrs = ["TruncTest.h"],
 )
diff --git a/utils/bazel/llvm-project-overlay/libc/test/src/math/libc_math_test_rules.bzl b/utils/bazel/llvm-project-overlay/libc/test/src/math/libc_math_test_rules.bzl
index 9ec3a5e5ad57a7..22e6f6578a1fc2 100644
--- a/utils/bazel/llvm-project-overlay/libc/test/src/math/libc_math_test_rules.bzl
+++ b/utils/bazel/llvm-project-overlay/libc/test/src/math/libc_math_test_rules.bzl
@@ -40,3 +40,19 @@ def math_test(name, hdrs = [], deps = [], **kwargs):
         ] + deps,
         **kwargs
     )
+
+def math_mpfr_test(name, hdrs = [], deps = [], **kwargs):
+    """Add a target for the unittest of a math function.
+
+    Args:
+      name: The name of the function being tested.
+      hdrs: List of headers to add.
+      deps: The list of other libraries to be linked in to the test target.
+      **kwargs: Attributes relevant for a cc_test. For example, name, srcs.
+    """
+    math_test(
+        name = name,
+        hdrs = hdrs,
+        deps = deps + ["//libc/utils/MPFRWrapper:mpfr_wrapper"],
+        **kwargs
+    )
diff --git a/utils/bazel/llvm-project-overlay/libc/test/src/math/smoke/BUILD.bazel b/utils/bazel/llvm-project-overlay/libc/test/src/math/smoke/BUILD.bazel
index b0a40ad51abecc..eb744b45243323 100644
--- a/utils/bazel/llvm-project-overlay/libc/test/src/math/smoke/BUILD.bazel
+++ b/utils/bazel/llvm-project-overlay/libc/test/src/math/smoke/BUILD.bazel
@@ -11,145 +11,1278 @@ package(default_visibility = ["//visibility:public"])
 
 licenses(["notice"])
 
+math_test(name = "acosf")
+
+math_test(name = "acoshf")
+
+math_test(name = "asinf")
+
+math_test(name = "asinhf")
+
+math_test(name = "atan2")
+
+math_test(name = "atan2f")
+
+math_test(name = "atanf")
+
+math_test(name = "atanhf")
+
+math_test(
+    name = "canonicalize",
+    hdrs = ["CanonicalizeTest.h"],
+    deps = [
+        "//libc:__support_integer_literals",
+    ],
+)
+
+math_test(
+    name = "canonicalizef",
+    hdrs = ["CanonicalizeTest.h"],
+    deps = [
+        "//libc:__support_integer_literals",
+    ],
+)
+
+math_test(
+    name = "canonicalizel",
+    hdrs = ["CanonicalizeTest.h"],
+    deps = [
+        "//libc:__support_integer_literals",
+    ],
+)
+
+math_test(
+    name = "canonicalizef128",
+    hdrs = ["CanonicalizeTest.h"],
+    deps = [
+        "//libc:__support_integer_literals",
+    ],
+)
+
+math_test(name = "cbrt")
+
+math_test(name = "cbrtf")
+
+math_test(
+    name = "ceil",
+    hdrs = ["CeilTest.h"],
+)
+
+math_test(
+    name = "ceilf",
+    hdrs = ["CeilTest.h"],
+)
+
+math_test(
+    name = "ceill",
+    hdrs = ["CeilTest.h"],
+)
+
+math_test(
+    name = "ceilf128",
+    hdrs = ["CeilTest.h"],
+)
+
+math_test(
+    name = "copysign",
+    hdrs = ["CopySignTest.h"],
+)
+
+math_test(
+    name = "copysignf",
+    hdrs = ["CopySignTest.h"],
+)
+
+math_test(
+    name = "copysignl",
+    hdrs = ["CopySignTest.h"],
+)
+
+math_test(
+    name = "copysignf128",
+    hdrs = ["CopySignTest.h"],
+)
+
+math_test(name = "cos")
+
+math_test(name = "cosf")
+
+math_test(
+    name = "coshf",
+    deps = [
+        "//libc:__support_cpp_array",
+    ],
+)
+
+math_test(name = "cospif")
+
+math_test(
+    name = "daddl",
+    hdrs = ["AddTest.h"],
+)
+
+math_test(
+    name = "daddf128",
+    hdrs = ["AddTest.h"],
+)
+
+math_test(
+    name = "ddivl",
+    hdrs = ["DivTest.h"],
+)
+
+math_test(
+    name = "ddivf128",
+    hdrs = ["DivTest.h"],
+)
+
+math_test(
+    name = "dfmal",
+    hdrs = ["FmaTest.h"],
+)
+
+math_test(
+    name = "dfmaf128",
+    hdrs = ["FmaTest.h"],
+)
+
+math_test(
+    name = "dmull",
+    hdrs = ["MulTest.h"],
+)
+
+math_test(
+    name = "dmulf128",
+    hdrs = ["MulTest.h"],
+)
+
+math_test(
+    name = "dsqrtl",
+    hdrs = ["SqrtTest.h"],
+)
+
+math_test(
+    name = "dsqrtf128",
+    hdrs = ["SqrtTest.h"],
+)
+
+math_test(
+    name = "dsubl",
+    hdrs = ["SubTest.h"],
+)
+
+math_test(
+    name = "dsubf128",
+    hdrs = ["SubTest.h"],
+)
+
+math_test(name = "erff")
+
+math_test(name = "exp")
+
+math_test(name = "expf")
+
+math_test(name = "exp10")
+
+math_test(name = "exp10f")
+
+math_test(name = "exp2")
+
+math_test(name = "exp2f")
+
+math_test(name = "exp2m1f")
+
+math_test(name = "expm1")
+
+math_test(name = "expm1f")
+
+math_test(
+    name = "fabs",
+    hdrs = ["FAbsTest.h"],
+)
+
+math_test(
+    name = "fabsf",
+    hdrs = ["FAbsTest.h"],
+)
+
+math_test(
+    name = "fabsl",
+    hdrs = ["FAbsTest.h"],
+)
+
+math_test(
+    name = "fabsf128",
+    hdrs = ["FAbsTest.h"],
+)
+
+math_test(
+    name = "fadd",
+    hdrs = ["AddTest.h"],
+)
+
+math_test(
+    name = "faddl",
+    hdrs = ["AddTest.h"],
+)
+
+math_test(
+    name = "faddf128",
+    hdrs = ["AddTest.h"],
+)
+
+math_test(
+    name = "fdim",
+    hdrs = ["FDimTest.h"],
+)
+
+math_test(
+    name = "fdimf",
+    hdrs = ["FDimTest.h"],
+)
+
+math_test(
+    name = "fdiml",
+    hdrs = ["FDimTest.h"],
+)
+
+math_test(
+    name = "fdimf128",
+    hdrs = ["FDimTest.h"],
+)
+
+math_test(
+    name = "fdiv",
+    hdrs = ["DivTest.h"],
+)
+
+math_test(
+    name = "fdivl",
+    hdrs = ["DivTest.h"],
+)
+
+math_test(
+    name = "fdivf128",
+    hdrs = ["DivTest.h"],
+)
+
+math_test(
+    name = "ffma",
+    hdrs = ["FmaTest.h"],
+)
+
+math_test(
+    name = "ffmal",
+    hdrs = ["FmaTest.h"],
+)
+
+math_test(
+    name = "ffmaf128",
+    hdrs = ["FmaTest.h"],
+)
+
+math_test(
+    name = "floor",
+    hdrs = ["FloorTest.h"],
+)
+
+math_test(
+    name = "floorf",
+    hdrs = ["FloorTest.h"],
+)
+
+math_test(
+    name = "floorl",
+    hdrs = ["FloorTest.h"],
+)
+
+math_test(
+    name = "floorf128",
+    hdrs = ["FloorTest.h"],
+)
+
+# TODO: Add fma, fmaf, fmal, fmaf128 tests.
+
+math_test(
+    name = "fmax",
+    hdrs = ["FMaxTest.h"],
+)
+
+math_test(
+    name = "fmaxf",
+    hdrs = ["FMaxTest.h"],
+)
+
+math_test(
+    name = "fmaxl",
+    hdrs = ["FMaxTest.h"],
+)
+
+math_test(
+    name = "fmaxf128",
+    hdrs = ["FMaxTest.h"],
+)
+
+math_test(
+    name = "fmaximum",
+    hdrs = ["FMaximumTest.h"],
+)
+
+math_test(
+    name = "fmaximumf",
+    hdrs = ["FMaximumTest.h"],
+)
+
+math_test(
+    name = "fmaximuml",
+    hdrs = ["FMaximumTest.h"],
+)
+
+math_test(
+    name = "fmaximumf128",
+    hdrs = ["FMaximumTest.h"],
+)
+
+math_test(
+    name = "fmaximum_mag",
+    hdrs = ["FMaximumMagTest.h"],
+)
+
+math_test(
+    name = "fmaximum_magf",
+    hdrs = ["FMaximumMagTest.h"],
+)
+
+math_test(
+    name = "fmaximum_magl",
+    hdrs = ["FMaximumMagTest.h"],
+)
+
+math_test(
+    name = "fmaximum_magf128",
+    hdrs = ["FMaximumMagTest.h"],
+)
+
+math_test(
+    name = "fmaximum_mag_num",
+    hdrs = ["FMaximumMagNumTest.h"],
+)
+
+math_test(
+    name = "fmaximum_mag_numf",
+    hdrs = ["FMaximumMagNumTest.h"],
+)
+
+math_test(
+    name = "fmaximum_mag_numl",
+    hdrs = ["FMaximumMagNumTest.h"],
+)
+
+math_test(
+    name = "fmaximum_mag_numf128",
+    hdrs = ["FMaximumMagNumTest.h"],
+)
+
+math_test(
+    name = "fmaximum_num",
+    hdrs = ["FMaximumNumTest.h"],
+)
+
+math_test(
+    name = "fmaximum_numf",
+    hdrs = ["FMaximumNumTest.h"],
+)
+
+math_test(
+    name = "fmaximum_numl",
+    hdrs = ["FMaximumNumTest.h"],
+)
+
+math_test(
+    name = "fmaximum_numf128",
+    hdrs = ["FMaximumNumTest.h"],
+)
+
+math_test(
+    name = "fmin",
+    hdrs = ["FMinTest.h"],
+)
+
+math_test(
+    name = "fminf",
+    hdrs = ["FMinTest.h"],
+)
+
+math_test(
+    name = "fminl",
+    hdrs = ["FMinTest.h"],
+)
+
+math_test(
+    name = "fminf128",
+    hdrs = ["FMinTest.h"],
+)
+
+math_test(
+    name = "fminimum",
+    hdrs = ["FMinimumTest.h"],
+)
+
+math_test(
+    name = "fminimumf",
+    hdrs = ["FMinimumTest.h"],
+)
+
+math_test(
+    name = "fminimuml",
+    hdrs = ["FMinimumTest.h"],
+)
+
+math_test(
+    name = "fminimumf128",
+    hdrs = ["FMinimumTest.h"],
+)
+
+math_test(
+    name = "fminimum_mag",
+    hdrs = ["FMinimumMagTest.h"],
+)
+
+math_test(
+    name = "fminimum_magf",
+    hdrs = ["FMinimumMagTest.h"],
+)
+
+math_test(
+    name = "fminimum_magl",
+    hdrs = ["FMinimumMagTest.h"],
+)
+
+math_test(
+    name = "fminimum_magf128",
+    hdrs = ["FMinimumMagTest.h"],
+)
+
+math_test(
+    name = "fminimum_mag_num",
+    hdrs = ["FMinimumMagNumTest.h"],
+)
+
+math_test(
+    name = "fminimum_mag_numf",
+    hdrs = ["FMinimumMagNumTest.h"],
+)
+
+math_test(
+    name = "fminimum_mag_numl",
+    hdrs = ["FMinimumMagNumTest.h"],
+)
+
+math_test(
+    name = "fminimum_mag_numf128",
+    hdrs = ["FMinimumMagNumTest.h"],
+)
+
+math_test(
+    name = "fminimum_num",
+    hdrs = ["FMinimumNumTest.h"],
+)
+
+math_test(
+    name = "fminimum_numf",
+    hdrs = ["FMinimumNumTest.h"],
+)
+
+math_test(
+    name = "fminimum_numl",
+    hdrs = ["FMinimumNumTest.h"],
+)
+
+math_test(
+    name = "fminimum_numf128",
+    hdrs = ["FMinimumNumTest.h"],
+)
+
+math_test(
+    name = "fmod",
+    hdrs = ["FModTest.h"],
+)
+
+math_test(
+    name = "fmodf",
+    hdrs = ["FModTest.h"],
+)
+
+math_test(
+    name = "fmodl",
+    hdrs = ["FModTest.h"],
+)
+
+math_test(
+    name = "fmodf128",
+    hdrs = ["FModTest.h"],
+)
+
+math_test(
+    name = "fmul",
+    hdrs = ["MulTest.h"],
+)
+
+math_test(
+    name = "fmull",
+    hdrs = ["MulTest.h"],
+)
+
+math_test(
+    name = "fmulf128",
+    hdrs = ["MulTest.h"],
+)
+
+math_test(
+    name = "frexp",
+    hdrs = ["FrexpTest.h"],
+)
+
+math_test(
+    name = "frexpf",
+    hdrs = ["FrexpTest.h"],
+)
+
+math_test(
+    name = "frexpl",
+    hdrs = ["FrexpTest.h"],
+)
+
+math_test(
+    name = "frexpf128",
+    hdrs = ["FrexpTest.h"],
+)
+
+math_test(
+    name = "fromfp",
+    hdrs = ["FromfpTest.h"],
+)
+
+math_test(
+    name = "fromfpf",
+    hdrs = ["FromfpTest.h"],
+)
+
+math_test(
+    name = "fromfpl",
+    hdrs = ["FromfpTest.h"],
+)
+
+math_test(
+    name = "fromfpf128",
+    hdrs = ["FromfpTest.h"],
+)
+
+math_test(
+    name = "fromfpx",
+    hdrs = ["FromfpxTest.h"],
+)
+
+math_test(
+    name = "fromfpxf",
+    hdrs = ["FromfpxTest.h"],
+)
+
+math_test(
+    name = "fromfpxl",
+    hdrs = ["FromfpxTest.h"],
+)
+
+math_test(
+    name = "fromfpxf128",
+    hdrs = ["FromfpxTest.h"],
+)
+
+math_test(
+    name = "fsqrt",
+    hdrs = ["SqrtTest.h"],
+)
+
+math_test(
+    name = "fsqrtl",
+    hdrs = ["SqrtTest.h"],
+)
+
+math_test(
+    name = "fsqrtf128",
+    hdrs = ["SqrtTest.h"],
+)
+
+math_test(
+    name = "fsub",
+    hdrs = ["SubTest.h"],
+)
+
+math_test(
+    name = "fsubl",
+    hdrs = ["SubTest.h"],
+)
+
+math_test(
+    name = "fsubf128",
+    hdrs = ["SubTest.h"],
+)
+
+math_test(
+    name = "getpayload",
+    hdrs = ["GetPayloadTest.h"],
+)
+
+math_test(
+    name = "getpayloadf",
+    hdrs = ["GetPayloadTest.h"],
+)
+
+math_test(
+    name = "getpayloadl",
+    hdrs = ["GetPayloadTest.h"],
+)
+
+math_test(
+    name = "getpayloadf128",
+    hdrs = ["GetPayloadTest.h"],
+)
+
+math_test(
+    name = "hypot",
+    hdrs = ["HypotTest.h"],
+)
+
+math_test(
+    name = "hypotf",
+    hdrs = ["HypotTest.h"],
+)
+
+math_test(
+    name = "ilogb",
+    hdrs = ["ILogbTest.h"],
+)
+
+math_test(
+    name = "ilogbf",
+    hdrs = ["ILogbTest.h"],
+)
+
+math_test(
+    name = "ilogbl",
+    hdrs = ["ILogbTest.h"],
+)
+
+math_test(
+    name = "ilogbf128",
+    hdrs = ["ILogbTest.h"],
+)
+
+math_test(
+    name = "ldexp",
+    hdrs = ["LdExpTest.h"],
+)
+
+math_test(
+    name = "ldexpf",
+    hdrs = ["LdExpTest.h"],
+)
+
+math_test(
+    name = "ldexpl",
+    hdrs = ["LdExpTest.h"],
+)
+
+math_test(
+    name = "ldexpf128",
+    hdrs = ["LdExpTest.h"],
+)
+
+math_test(
+    name = "llogb",
+    hdrs = ["ILogbTest.h"],
+)
+
+math_test(
+    name = "llogbf",
+    hdrs = ["ILogbTest.h"],
+)
+
+math_test(
+    name = "llogbl",
+    hdrs = ["ILogbTest.h"],
+)
+
+math_test(
+    name = "llogbf128",
+    hdrs = ["ILogbTest.h"],
+)
+
+math_test(
+    name = "llrint",
+    hdrs = ["RoundToIntegerTest.h"],
+)
+
+math_test(
+    name = "llrintf",
+    hdrs = ["RoundToIntegerTest.h"],
+)
+
+math_test(
+    name = "llrintl",
+    hdrs = ["RoundToIntegerTest.h"],
+)
+
+math_test(
+    name = "llrintf128",
+    hdrs = ["RoundToIntegerTest.h"],
+)
+
+math_test(
+    name = "llround",
+    hdrs = ["RoundToIntegerTest.h"],
+)
+
+math_test(
+    name = "llroundf",
+    hdrs = ["RoundToIntegerTest.h"],
+)
+
+math_test(
+    name = "llroundl",
+    hdrs = ["RoundToIntegerTest.h"],
+)
+
+math_test(
+    name = "llroundf128",
+    hdrs = ["RoundToIntegerTest.h"],
+)
+
+math_test(name = "log")
+
+math_test(name = "logf")
+
+math_test(name = "log10")
+
+math_test(name = "log10f")
+
+math_test(name = "log1p")
+
+math_test(name = "log1pf")
+
+math_test(name = "log2")
+
+math_test(name = "log2f")
+
+math_test(
+    name = "logb",
+    hdrs = ["LogbTest.h"],
+)
+
+math_test(
+    name = "logbf",
+    hdrs = ["LogbTest.h"],
+)
+
+math_test(
+    name = "logbl",
+    hdrs = ["LogbTest.h"],
+)
+
+math_test(
+    name = "logbf128",
+    hdrs = ["LogbTest.h"],
+)
+
+math_test(
+    name = "lrint",
+    hdrs = ["RoundToIntegerTest.h"],
+)
+
+math_test(
+    name = "lrintf",
+    hdrs = ["RoundToIntegerTest.h"],
+)
+
+math_test(
+    name = "lrintl",
+    hdrs = ["RoundToIntegerTest.h"],
+)
+
+math_test(
+    name = "lrintf128",
+    hdrs = ["RoundToIntegerTest.h"],
+)
+
+math_test(
+    name = "lround",
+    hdrs = ["RoundToIntegerTest.h"],
+)
+
+math_test(
+    name = "lroundf",
+    hdrs = ["RoundToIntegerTest.h"],
+)
+
+math_test(
+    name = "lroundl",
+    hdrs = ["RoundToIntegerTest.h"],
+)
+
+math_test(
+    name = "lroundf128",
+    hdrs = ["RoundToIntegerTest.h"],
+)
+
+math_test(
+    name = "modf",
+    hdrs = ["ModfTest.h"],
+)
+
+math_test(
+    name = "modff",
+    hdrs = ["ModfTest.h"],
+)
+
 math_test(
-    name = "fabsf128",
-    hdrs = ["FAbsTest.h"],
+    name = "modfl",
+    hdrs = ["ModfTest.h"],
 )
 
 math_test(
-    name = "ceilf128",
-    hdrs = ["CeilTest.h"],
+    name = "modff128",
+    hdrs = ["ModfTest.h"],
 )
 
+# TODO: add nan tests.
+
 math_test(
-    name = "cospif",
+    name = "nearbyint",
+    hdrs = ["NearbyIntTest.h"],
 )
 
 math_test(
-    name = "floorf128",
-    hdrs = ["FloorTest.h"],
+    name = "nearbyintf",
+    hdrs = ["NearbyIntTest.h"],
 )
 
 math_test(
-    name = "truncf128",
-    hdrs = ["TruncTest.h"],
+    name = "nearbyintl",
+    hdrs = ["NearbyIntTest.h"],
 )
 
 math_test(
-    name = "roundf128",
-    hdrs = ["RoundTest.h"],
+    name = "nearbyintf128",
+    hdrs = ["NearbyIntTest.h"],
 )
 
 math_test(
-    name = "frexpf128",
-    hdrs = ["FrexpTest.h"],
+    name = "nextafter",
+    hdrs = ["NextAfterTest.h"],
 )
 
 math_test(
-    name = "logbf128",
-    hdrs = ["LogbTest.h"],
+    name = "nextafterf",
+    hdrs = ["NextAfterTest.h"],
 )
 
 math_test(
-    name = "modff128",
-    hdrs = ["ModfTest.h"],
+    name = "nextafterl",
+    hdrs = ["NextAfterTest.h"],
 )
 
 math_test(
-    name = "fminf128",
-    hdrs = ["FMinTest.h"],
+    name = "nextafterf128",
+    hdrs = ["NextAfterTest.h"],
 )
 
 math_test(
-    name = "fmaxf128",
-    hdrs = ["FMaxTest.h"],
+    name = "nextdown",
+    hdrs = ["NextDownTest.h"],
 )
 
 math_test(
-    name = "sqrtf128",
-    hdrs = ["SqrtTest.h"],
-    deps = ["//libc:__support_cpp_bit"],
+    name = "nextdownf",
+    hdrs = ["NextDownTest.h"],
 )
 
 math_test(
-    name = "copysignf128",
-    hdrs = ["CopySignTest.h"],
+    name = "nextdownl",
+    hdrs = ["NextDownTest.h"],
 )
 
 math_test(
-    name = "ilogbf128",
-    hdrs = ["ILogbTest.h"],
-    deps = ["//libc:__support_cpp_limits"],
+    name = "nextdownf128",
+    hdrs = ["NextDownTest.h"],
 )
 
 math_test(
-    name = "fdimf128",
-    hdrs = ["FDimTest.h"],
+    name = "nexttoward",
+    hdrs = ["NextTowardTest.h"],
 )
 
-libc_support_library(
-    name = "ldexp_test_template",
-    hdrs = ["LdExpTest.h"],
+math_test(
+    name = "nexttowardf",
+    hdrs = ["NextTowardTest.h"],
+)
+
+math_test(
+    name = "nexttowardl",
+    hdrs = ["NextTowardTest.h"],
+)
+
+math_test(
+    name = "nextup",
+    hdrs = ["NextUpTest.h"],
+)
+
+math_test(
+    name = "nextupf",
+    hdrs = ["NextUpTest.h"],
+)
+
+math_test(
+    name = "nextupl",
+    hdrs = ["NextUpTest.h"],
+)
+
+math_test(
+    name = "nextupf128",
+    hdrs = ["NextUpTest.h"],
+)
+
+math_test(
+    name = "pow",
     deps = [
-        "//libc:__support_cpp_limits",
-        "//libc:__support_fputil_fp_bits",
-        "//libc:__support_fputil_normal_float",
-        "//libc:hdr_math_macros",
-        "//libc/test/UnitTest:LibcUnitTest",
-        "//libc/test/UnitTest:fp_test_helpers",
+        "//libc:hdr_fenv_macros",
     ],
 )
 
+math_test(name = "powf")
+
 math_test(
-    name = "ldexpf128",
-    hdrs = ["LdExpTest.h"],
-    deps = ["//libc:__support_cpp_limits"],
+    name = "remquo",
+    hdrs = ["RemQuoTest.h"],
+)
+
+math_test(
+    name = "remquof",
+    hdrs = ["RemQuoTest.h"],
+)
+
+math_test(
+    name = "remquol",
+    hdrs = ["RemQuoTest.h"],
+)
+
+math_test(
+    name = "remquof128",
+    hdrs = ["RemQuoTest.h"],
+)
+
+math_test(
+    name = "rint",
+    hdrs = ["RIntTest.h"],
+)
+
+math_test(
+    name = "rintf",
+    hdrs = ["RIntTest.h"],
+)
+
+math_test(
+    name = "rintl",
+    hdrs = ["RIntTest.h"],
 )
 
 math_test(
     name = "rintf128",
     hdrs = ["RIntTest.h"],
-    deps = ["//libc:hdr_fenv_macros"],
 )
 
 math_test(
-    name = "lrintf128",
-    hdrs = ["RoundToIntegerTest.h"],
+    name = "roundeven",
+    hdrs = ["RoundEvenTest.h"],
 )
 
 math_test(
-    name = "llrintf128",
-    hdrs = ["RoundToIntegerTest.h"],
+    name = "roundevenf",
+    hdrs = ["RoundEvenTest.h"],
 )
 
 math_test(
-    name = "lroundf128",
-    hdrs = ["RoundToIntegerTest.h"],
+    name = "roundevenl",
+    hdrs = ["RoundEvenTest.h"],
 )
 
 math_test(
-    name = "llroundf128",
-    hdrs = ["RoundToIntegerTest.h"],
+    name = "roundevenf128",
+    hdrs = ["RoundEvenTest.h"],
 )
 
-libc_support_library(
-    name = "nextafter_test_template",
-    hdrs = ["NextAfterTest.h"],
+math_test(
+    name = "round",
+    hdrs = ["RoundTest.h"],
+)
+
+math_test(
+    name = "roundf",
+    hdrs = ["RoundTest.h"],
+)
+
+math_test(
+    name = "roundl",
+    hdrs = ["RoundTest.h"],
+)
+
+math_test(
+    name = "roundf128",
+    hdrs = ["RoundTest.h"],
+)
+
+math_test(
+    name = "scalbn",
+    hdrs = [
+        "LdExpTest.h",
+        "ScalbnTest.h",
+    ],
+)
+
+math_test(
+    name = "scalbnf",
+    hdrs = [
+        "LdExpTest.h",
+        "ScalbnTest.h",
+    ],
+)
+
+math_test(
+    name = "scalbnl",
+    hdrs = [
+        "LdExpTest.h",
+        "ScalbnTest.h",
+    ],
+)
+
+math_test(
+    name = "scalbnf128",
+    hdrs = [
+        "LdExpTest.h",
+        "ScalbnTest.h",
+    ],
+)
+
+math_test(
+    name = "scalbln",
+    hdrs = [
+        "LdExpTest.h",
+        "ScalbnTest.h",
+    ],
+)
+
+math_test(
+    name = "scalblnf",
+    hdrs = [
+        "LdExpTest.h",
+        "ScalbnTest.h",
+    ],
+)
+
+math_test(
+    name = "scalblnl",
+    hdrs = [
+        "LdExpTest.h",
+        "ScalbnTest.h",
+    ],
+)
+
+math_test(
+    name = "scalblnf128",
+    hdrs = [
+        "LdExpTest.h",
+        "ScalbnTest.h",
+    ],
+)
+
+math_test(
+    name = "setpayload",
+    hdrs = ["SetPayloadTest.h"],
+)
+
+math_test(
+    name = "setpayloadf",
+    hdrs = ["SetPayloadTest.h"],
+)
+
+math_test(
+    name = "setpayloadl",
+    hdrs = ["SetPayloadTest.h"],
+)
+
+math_test(
+    name = "setpayloadf128",
+    hdrs = ["SetPayloadTest.h"],
+)
+
+math_test(
+    name = "setpayloadsig",
+    hdrs = ["SetPayloadSigTest.h"],
+)
+
+math_test(
+    name = "setpayloadsigf",
+    hdrs = ["SetPayloadSigTest.h"],
+)
+
+math_test(
+    name = "setpayloadsigl",
+    hdrs = ["SetPayloadSigTest.h"],
+)
+
+math_test(
+    name = "setpayloadsigf128",
+    hdrs = ["SetPayloadSigTest.h"],
+)
+
+math_test(name = "sin")
+
+math_test(name = "sinf")
+
+math_test(name = "sincos")
+
+math_test(name = "sincosf")
+
+math_test(
+    name = "sinhf",
     deps = [
         "//libc:__support_cpp_array",
-        "//libc:__support_cpp_bit",
-        "//libc:__support_cpp_type_traits",
-        "//libc:__support_fputil_basic_operations",
-        "//libc:__support_fputil_fenv_impl",
-        "//libc:__support_fputil_fp_bits",
-        "//libc:hdr_fenv_macros",
-        "//libc:hdr_math_macros",
-        "//libc/test/UnitTest:LibcUnitTest",
-        "//libc/test/UnitTest:fp_test_helpers",
-    ],
+    ]
 )
 
+math_test(name = "sinpif")
+
 math_test(
-    name = "nextafterf128",
-    deps = [":nextafter_test_template"],
+    name = "sqrt",
+    hdrs = ["SqrtTest.h"],
+)
+
+math_test(
+    name = "sqrtf",
+    hdrs = ["SqrtTest.h"],
+)
+
+math_test(
+    name = "sqrtl",
+    hdrs = ["SqrtTest.h"],
+)
+
+math_test(
+    name = "sqrtf128",
+    hdrs = ["SqrtTest.h"],
+)
+
+math_test(name = "tan")
+
+math_test(name = "tanf")
+
+math_test(name = "tanhf")
+
+math_test(
+    name = "totalorder",
+    hdrs = ["TotalOrderTest.h"],
+)
+
+math_test(
+    name = "totalorderf",
+    hdrs = ["TotalOrderTest.h"],
+)
+
+math_test(
+    name = "totalorderl",
+    hdrs = ["TotalOrderTest.h"],
+)
+
+math_test(
+    name = "totalorderf128",
+    hdrs = ["TotalOrderTest.h"],
+)
+
+math_test(
+    name = "totalordermag",
+    hdrs = ["TotalOrderMagTest.h"],
+)
+
+math_test(
+    name = "totalordermagf",
+    hdrs = ["TotalOrderMagTest.h"],
+)
+
+math_test(
+    name = "totalordermagl",
+    hdrs = ["TotalOrderMagTest.h"],
+)
+
+math_test(
+    name = "totalordermagf128",
+    hdrs = ["TotalOrderMagTest.h"],
+)
+
+math_test(
+    name = "trunc",
+    hdrs = ["TruncTest.h"],
+)
+
+math_test(
+    name = "truncf",
+    hdrs = ["TruncTest.h"],
+)
+
+math_test(
+    name = "truncl",
+    hdrs = ["TruncTest.h"],
+)
+
+math_test(
+    name = "truncf128",
+    hdrs = ["TruncTest.h"],
+)
+
+math_test(
+    name = "ufromfp",
+    hdrs = ["UfromfpTest.h"],
+)
+
+math_test(
+    name = "ufromfpf",
+    hdrs = ["UfromfpTest.h"],
+)
+
+math_test(
+    name = "ufromfpl",
+    hdrs = ["UfromfpTest.h"],
+)
+
+math_test(
+    name = "ufromfpf128",
+    hdrs = ["UfromfpTest.h"],
+)
+
+math_test(
+    name = "ufromfpx",
+    hdrs = ["UfromfpxTest.h"],
+)
+
+math_test(
+    name = "ufromfpxf",
+    hdrs = ["UfromfpxTest.h"],
+)
+
+math_test(
+    name = "ufromfpxl",
+    hdrs = ["UfromfpxTest.h"],
+)
+
+math_test(
+    name = "ufromfpxf128",
+    hdrs = ["UfromfpxTest.h"],
 )



More information about the libc-commits mailing list