diff --git a/libc/test/src/math/exp2f_test.cpp b/libc/test/src/math/exp2f_test.cpp index 7caf1489d0221..0c4c821534392 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 3ef1a4ece4cf6..39228eb2f6d8b 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 bedd363edd1bd..8dc93014714b8 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 57e3f9f6e9458..9df23fe44c45a 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 9ec3a5e5ad57a..22e6f6578a1fc 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 b0a40ad51abec..eb744b4524332 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"], )