[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:30:11 PDT 2024
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-libc
Author: None (lntue)
<details>
<summary>Changes</summary>
---
Patch is 81.80 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/107862.diff
6 Files Affected:
- (modified) libc/test/src/math/exp2f_test.cpp (-1)
- (modified) libc/test/src/math/smoke/exp2f_test.cpp (-1)
- (modified) utils/bazel/llvm-project-overlay/libc/BUILD.bazel (+742-361)
- (modified) utils/bazel/llvm-project-overlay/libc/test/src/math/BUILD.bazel (+245-639)
- (modified) utils/bazel/llvm-project-overlay/libc/test/src/math/libc_math_test_rules.bzl (+16)
- (modified) utils/bazel/llvm-project-overlay/libc/test/src/math/smoke/BUILD.bazel (+1200-67)
``````````diff
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_fu...
[truncated]
``````````
</details>
https://github.com/llvm/llvm-project/pull/107862
More information about the libc-commits
mailing list