From 20ae89477021638fa03bc8664c215b5e44662012 Mon Sep 17 00:00:00 2001 From: Anonmiraj Date: Tue, 28 Apr 2026 11:11:09 +0300 Subject: [PATCH] [libc][math] Refactor fmaximum_num-fminimum_num family to header-only (#194562) Refactors the fmaximum_num-fminimum_num math family to be header-only. part of: #147386 Target Functions: - fmaximum_num - fmaximum_numbf16 - fmaximum_numf - fmaximum_numf128 - fmaximum_numf16 - fmaximum_numl - fminimum_num - fminimum_numbf16 - fminimum_numf - fminimum_numf128 - fminimum_numf16 - fminimum_numl --- libc/shared/math.h | 12 ++ libc/shared/math/fmaximum_num.h | 23 +++ libc/shared/math/fmaximum_numbf16.h | 23 +++ libc/shared/math/fmaximum_numf.h | 23 +++ libc/shared/math/fmaximum_numf128.h | 29 +++ libc/shared/math/fmaximum_numf16.h | 29 +++ libc/shared/math/fmaximum_numl.h | 23 +++ libc/shared/math/fminimum_num.h | 23 +++ libc/shared/math/fminimum_numbf16.h | 23 +++ libc/shared/math/fminimum_numf.h | 23 +++ libc/shared/math/fminimum_numf128.h | 29 +++ libc/shared/math/fminimum_numf16.h | 29 +++ libc/shared/math/fminimum_numl.h | 23 +++ libc/src/__support/FPUtil/BasicOperations.h | 2 +- libc/src/__support/math/CMakeLists.txt | 132 +++++++++++++ libc/src/__support/math/fmaximum_num.h | 25 +++ libc/src/__support/math/fmaximum_numbf16.h | 26 +++ libc/src/__support/math/fmaximum_numf.h | 25 +++ libc/src/__support/math/fmaximum_numf128.h | 31 +++ libc/src/__support/math/fmaximum_numf16.h | 31 +++ libc/src/__support/math/fmaximum_numl.h | 25 +++ libc/src/__support/math/fminimum_num.h | 25 +++ libc/src/__support/math/fminimum_numbf16.h | 26 +++ libc/src/__support/math/fminimum_numf.h | 25 +++ libc/src/__support/math/fminimum_numf128.h | 31 +++ libc/src/__support/math/fminimum_numf16.h | 31 +++ libc/src/__support/math/fminimum_numl.h | 25 +++ libc/src/math/generic/CMakeLists.txt | 50 ++--- libc/src/math/generic/fmaximum_num.cpp | 6 +- libc/src/math/generic/fmaximum_numbf16.cpp | 7 +- libc/src/math/generic/fmaximum_numf.cpp | 6 +- libc/src/math/generic/fmaximum_numf128.cpp | 6 +- libc/src/math/generic/fmaximum_numf16.cpp | 6 +- libc/src/math/generic/fmaximum_numl.cpp | 6 +- libc/src/math/generic/fminimum_num.cpp | 6 +- libc/src/math/generic/fminimum_numbf16.cpp | 7 +- libc/src/math/generic/fminimum_numf.cpp | 6 +- libc/src/math/generic/fminimum_numf128.cpp | 6 +- libc/src/math/generic/fminimum_numf16.cpp | 6 +- libc/src/math/generic/fminimum_numl.cpp | 6 +- libc/test/shared/CMakeLists.txt | 24 +++ .../shared/shared_math_constexpr_test.cpp | 22 +++ libc/test/shared/shared_math_test.cpp | 18 ++ .../llvm-project-overlay/libc/BUILD.bazel | 182 +++++++++++++++++- 44 files changed, 1047 insertions(+), 95 deletions(-) create mode 100644 libc/shared/math/fmaximum_num.h create mode 100644 libc/shared/math/fmaximum_numbf16.h create mode 100644 libc/shared/math/fmaximum_numf.h create mode 100644 libc/shared/math/fmaximum_numf128.h create mode 100644 libc/shared/math/fmaximum_numf16.h create mode 100644 libc/shared/math/fmaximum_numl.h create mode 100644 libc/shared/math/fminimum_num.h create mode 100644 libc/shared/math/fminimum_numbf16.h create mode 100644 libc/shared/math/fminimum_numf.h create mode 100644 libc/shared/math/fminimum_numf128.h create mode 100644 libc/shared/math/fminimum_numf16.h create mode 100644 libc/shared/math/fminimum_numl.h create mode 100644 libc/src/__support/math/fmaximum_num.h create mode 100644 libc/src/__support/math/fmaximum_numbf16.h create mode 100644 libc/src/__support/math/fmaximum_numf.h create mode 100644 libc/src/__support/math/fmaximum_numf128.h create mode 100644 libc/src/__support/math/fmaximum_numf16.h create mode 100644 libc/src/__support/math/fmaximum_numl.h create mode 100644 libc/src/__support/math/fminimum_num.h create mode 100644 libc/src/__support/math/fminimum_numbf16.h create mode 100644 libc/src/__support/math/fminimum_numf.h create mode 100644 libc/src/__support/math/fminimum_numf128.h create mode 100644 libc/src/__support/math/fminimum_numf16.h create mode 100644 libc/src/__support/math/fminimum_numl.h diff --git a/libc/shared/math.h b/libc/shared/math.h index 85ba47731f9d..6d2b573244c0 100644 --- a/libc/shared/math.h +++ b/libc/shared/math.h @@ -181,6 +181,12 @@ #include "math/fmaximum_mag_num.h" #include "math/fmaximum_mag_numbf16.h" #include "math/fmaximum_mag_numf.h" +#include "math/fmaximum_num.h" +#include "math/fmaximum_numbf16.h" +#include "math/fmaximum_numf.h" +#include "math/fmaximum_numf128.h" +#include "math/fmaximum_numf16.h" +#include "math/fmaximum_numl.h" #include "math/fmaximumbf16.h" #include "math/fmaximumf.h" #include "math/fmaximumf128.h" @@ -193,6 +199,12 @@ #include "math/fminf128.h" #include "math/fminf16.h" #include "math/fminimum.h" +#include "math/fminimum_num.h" +#include "math/fminimum_numbf16.h" +#include "math/fminimum_numf.h" +#include "math/fminimum_numf128.h" +#include "math/fminimum_numf16.h" +#include "math/fminimum_numl.h" #include "math/fminimumbf16.h" #include "math/fminimumf.h" #include "math/fminimumf128.h" diff --git a/libc/shared/math/fmaximum_num.h b/libc/shared/math/fmaximum_num.h new file mode 100644 index 000000000000..0a28c3971f29 --- /dev/null +++ b/libc/shared/math/fmaximum_num.h @@ -0,0 +1,23 @@ +//===-- Shared fmaximum_num function ----------------------------*- C++ -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_LIBC_SHARED_MATH_FMAXIMUM_NUM_H +#define LLVM_LIBC_SHARED_MATH_FMAXIMUM_NUM_H + +#include "shared/libc_common.h" +#include "src/__support/math/fmaximum_num.h" + +namespace LIBC_NAMESPACE_DECL { +namespace shared { + +using math::fmaximum_num; + +} // namespace shared +} // namespace LIBC_NAMESPACE_DECL + +#endif // LLVM_LIBC_SHARED_MATH_FMAXIMUM_NUM_H diff --git a/libc/shared/math/fmaximum_numbf16.h b/libc/shared/math/fmaximum_numbf16.h new file mode 100644 index 000000000000..1c9232444c0e --- /dev/null +++ b/libc/shared/math/fmaximum_numbf16.h @@ -0,0 +1,23 @@ +//===-- Shared fmaximum_numbf16 function ------------------------*- C++ -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_LIBC_SHARED_MATH_FMAXIMUM_NUMBF16_H +#define LLVM_LIBC_SHARED_MATH_FMAXIMUM_NUMBF16_H + +#include "shared/libc_common.h" +#include "src/__support/math/fmaximum_numbf16.h" + +namespace LIBC_NAMESPACE_DECL { +namespace shared { + +using math::fmaximum_numbf16; + +} // namespace shared +} // namespace LIBC_NAMESPACE_DECL + +#endif // LLVM_LIBC_SHARED_MATH_FMAXIMUM_NUMBF16_H diff --git a/libc/shared/math/fmaximum_numf.h b/libc/shared/math/fmaximum_numf.h new file mode 100644 index 000000000000..142fd2dbb1bf --- /dev/null +++ b/libc/shared/math/fmaximum_numf.h @@ -0,0 +1,23 @@ +//===-- Shared fmaximum_numf function ---------------------------*- C++ -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_LIBC_SHARED_MATH_FMAXIMUM_NUMF_H +#define LLVM_LIBC_SHARED_MATH_FMAXIMUM_NUMF_H + +#include "shared/libc_common.h" +#include "src/__support/math/fmaximum_numf.h" + +namespace LIBC_NAMESPACE_DECL { +namespace shared { + +using math::fmaximum_numf; + +} // namespace shared +} // namespace LIBC_NAMESPACE_DECL + +#endif // LLVM_LIBC_SHARED_MATH_FMAXIMUM_NUMF_H diff --git a/libc/shared/math/fmaximum_numf128.h b/libc/shared/math/fmaximum_numf128.h new file mode 100644 index 000000000000..4bdd100dcc2d --- /dev/null +++ b/libc/shared/math/fmaximum_numf128.h @@ -0,0 +1,29 @@ +//===-- Shared fmaximum_numf128 function ------------------------*- C++ -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_LIBC_SHARED_MATH_FMAXIMUM_NUMF128_H +#define LLVM_LIBC_SHARED_MATH_FMAXIMUM_NUMF128_H + +#include "include/llvm-libc-types/float128.h" + +#ifdef LIBC_TYPES_HAS_FLOAT128 + +#include "shared/libc_common.h" +#include "src/__support/math/fmaximum_numf128.h" + +namespace LIBC_NAMESPACE_DECL { +namespace shared { + +using math::fmaximum_numf128; + +} // namespace shared +} // namespace LIBC_NAMESPACE_DECL + +#endif // LIBC_TYPES_HAS_FLOAT128 + +#endif // LLVM_LIBC_SHARED_MATH_FMAXIMUM_NUMF128_H diff --git a/libc/shared/math/fmaximum_numf16.h b/libc/shared/math/fmaximum_numf16.h new file mode 100644 index 000000000000..ffd92eb1d9df --- /dev/null +++ b/libc/shared/math/fmaximum_numf16.h @@ -0,0 +1,29 @@ +//===-- Shared fmaximum_numf16 function -------------------------*- C++ -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_LIBC_SHARED_MATH_FMAXIMUM_NUMF16_H +#define LLVM_LIBC_SHARED_MATH_FMAXIMUM_NUMF16_H + +#include "include/llvm-libc-macros/float16-macros.h" + +#ifdef LIBC_TYPES_HAS_FLOAT16 + +#include "shared/libc_common.h" +#include "src/__support/math/fmaximum_numf16.h" + +namespace LIBC_NAMESPACE_DECL { +namespace shared { + +using math::fmaximum_numf16; + +} // namespace shared +} // namespace LIBC_NAMESPACE_DECL + +#endif // LIBC_TYPES_HAS_FLOAT16 + +#endif // LLVM_LIBC_SHARED_MATH_FMAXIMUM_NUMF16_H diff --git a/libc/shared/math/fmaximum_numl.h b/libc/shared/math/fmaximum_numl.h new file mode 100644 index 000000000000..79553902ffdf --- /dev/null +++ b/libc/shared/math/fmaximum_numl.h @@ -0,0 +1,23 @@ +//===-- Shared fmaximum_numl function ---------------------------*- C++ -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_LIBC_SHARED_MATH_FMAXIMUM_NUML_H +#define LLVM_LIBC_SHARED_MATH_FMAXIMUM_NUML_H + +#include "shared/libc_common.h" +#include "src/__support/math/fmaximum_numl.h" + +namespace LIBC_NAMESPACE_DECL { +namespace shared { + +using math::fmaximum_numl; + +} // namespace shared +} // namespace LIBC_NAMESPACE_DECL + +#endif // LLVM_LIBC_SHARED_MATH_FMAXIMUM_NUML_H diff --git a/libc/shared/math/fminimum_num.h b/libc/shared/math/fminimum_num.h new file mode 100644 index 000000000000..31dc5d41a4f0 --- /dev/null +++ b/libc/shared/math/fminimum_num.h @@ -0,0 +1,23 @@ +//===-- Shared fminimum_num function ----------------------------*- C++ -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_LIBC_SHARED_MATH_FMINIMUM_NUM_H +#define LLVM_LIBC_SHARED_MATH_FMINIMUM_NUM_H + +#include "shared/libc_common.h" +#include "src/__support/math/fminimum_num.h" + +namespace LIBC_NAMESPACE_DECL { +namespace shared { + +using math::fminimum_num; + +} // namespace shared +} // namespace LIBC_NAMESPACE_DECL + +#endif // LLVM_LIBC_SHARED_MATH_FMINIMUM_NUM_H diff --git a/libc/shared/math/fminimum_numbf16.h b/libc/shared/math/fminimum_numbf16.h new file mode 100644 index 000000000000..d875d20c60c1 --- /dev/null +++ b/libc/shared/math/fminimum_numbf16.h @@ -0,0 +1,23 @@ +//===-- Shared fminimum_numbf16 function ------------------------*- C++ -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_LIBC_SHARED_MATH_FMINIMUM_NUMBF16_H +#define LLVM_LIBC_SHARED_MATH_FMINIMUM_NUMBF16_H + +#include "shared/libc_common.h" +#include "src/__support/math/fminimum_numbf16.h" + +namespace LIBC_NAMESPACE_DECL { +namespace shared { + +using math::fminimum_numbf16; + +} // namespace shared +} // namespace LIBC_NAMESPACE_DECL + +#endif // LLVM_LIBC_SHARED_MATH_FMINIMUM_NUMBF16_H diff --git a/libc/shared/math/fminimum_numf.h b/libc/shared/math/fminimum_numf.h new file mode 100644 index 000000000000..2fa1beba3ed6 --- /dev/null +++ b/libc/shared/math/fminimum_numf.h @@ -0,0 +1,23 @@ +//===-- Shared fminimum_numf function ---------------------------*- C++ -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_LIBC_SHARED_MATH_FMINIMUM_NUMF_H +#define LLVM_LIBC_SHARED_MATH_FMINIMUM_NUMF_H + +#include "shared/libc_common.h" +#include "src/__support/math/fminimum_numf.h" + +namespace LIBC_NAMESPACE_DECL { +namespace shared { + +using math::fminimum_numf; + +} // namespace shared +} // namespace LIBC_NAMESPACE_DECL + +#endif // LLVM_LIBC_SHARED_MATH_FMINIMUM_NUMF_H diff --git a/libc/shared/math/fminimum_numf128.h b/libc/shared/math/fminimum_numf128.h new file mode 100644 index 000000000000..798040f12b30 --- /dev/null +++ b/libc/shared/math/fminimum_numf128.h @@ -0,0 +1,29 @@ +//===-- Shared fminimum_numf128 function ------------------------*- C++ -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_LIBC_SHARED_MATH_FMINIMUM_NUMF128_H +#define LLVM_LIBC_SHARED_MATH_FMINIMUM_NUMF128_H + +#include "include/llvm-libc-types/float128.h" + +#ifdef LIBC_TYPES_HAS_FLOAT128 + +#include "shared/libc_common.h" +#include "src/__support/math/fminimum_numf128.h" + +namespace LIBC_NAMESPACE_DECL { +namespace shared { + +using math::fminimum_numf128; + +} // namespace shared +} // namespace LIBC_NAMESPACE_DECL + +#endif // LIBC_TYPES_HAS_FLOAT128 + +#endif // LLVM_LIBC_SHARED_MATH_FMINIMUM_NUMF128_H diff --git a/libc/shared/math/fminimum_numf16.h b/libc/shared/math/fminimum_numf16.h new file mode 100644 index 000000000000..093e9d640d2a --- /dev/null +++ b/libc/shared/math/fminimum_numf16.h @@ -0,0 +1,29 @@ +//===-- Shared fminimum_numf16 function -------------------------*- C++ -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_LIBC_SHARED_MATH_FMINIMUM_NUMF16_H +#define LLVM_LIBC_SHARED_MATH_FMINIMUM_NUMF16_H + +#include "include/llvm-libc-macros/float16-macros.h" + +#ifdef LIBC_TYPES_HAS_FLOAT16 + +#include "shared/libc_common.h" +#include "src/__support/math/fminimum_numf16.h" + +namespace LIBC_NAMESPACE_DECL { +namespace shared { + +using math::fminimum_numf16; + +} // namespace shared +} // namespace LIBC_NAMESPACE_DECL + +#endif // LIBC_TYPES_HAS_FLOAT16 + +#endif // LLVM_LIBC_SHARED_MATH_FMINIMUM_NUMF16_H diff --git a/libc/shared/math/fminimum_numl.h b/libc/shared/math/fminimum_numl.h new file mode 100644 index 000000000000..d1663e1f7bc9 --- /dev/null +++ b/libc/shared/math/fminimum_numl.h @@ -0,0 +1,23 @@ +//===-- Shared fminimum_numl function ---------------------------*- C++ -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_LIBC_SHARED_MATH_FMINIMUM_NUML_H +#define LLVM_LIBC_SHARED_MATH_FMINIMUM_NUML_H + +#include "shared/libc_common.h" +#include "src/__support/math/fminimum_numl.h" + +namespace LIBC_NAMESPACE_DECL { +namespace shared { + +using math::fminimum_numl; + +} // namespace shared +} // namespace LIBC_NAMESPACE_DECL + +#endif // LLVM_LIBC_SHARED_MATH_FMINIMUM_NUML_H diff --git a/libc/src/__support/FPUtil/BasicOperations.h b/libc/src/__support/FPUtil/BasicOperations.h index 7d7688dc21a0..99e3f0d43d6c 100644 --- a/libc/src/__support/FPUtil/BasicOperations.h +++ b/libc/src/__support/FPUtil/BasicOperations.h @@ -200,7 +200,7 @@ LIBC_INLINE constexpr T fmaximum_num(T x, T y) { } template , int> = 0> -LIBC_INLINE T fminimum_num(T x, T y) { +LIBC_INLINE constexpr T fminimum_num(T x, T y) { FPBits bitx(x), bity(y); if (bitx.is_signaling_nan() || bity.is_signaling_nan()) { fputil::raise_except_if_required(FE_INVALID); diff --git a/libc/src/__support/math/CMakeLists.txt b/libc/src/__support/math/CMakeLists.txt index 7a25cd9fa034..dad34b002315 100644 --- a/libc/src/__support/math/CMakeLists.txt +++ b/libc/src/__support/math/CMakeLists.txt @@ -894,6 +894,73 @@ add_header_library( libc.src.__support.FPUtil.basic_operations libc.src.__support.macros.config ) + +add_header_library( + fmaximum_num + HDRS + fmaximum_num.h + DEPENDS + libc.src.__support.FPUtil.basic_operations + libc.src.__support.macros.config + FLAGS + MISC_MATH_BASIC_OPS_OPT +) + +add_header_library( + fmaximum_numbf16 + HDRS + fmaximum_numbf16.h + DEPENDS + libc.src.__support.FPUtil.basic_operations + libc.src.__support.FPUtil.bfloat16 + libc.src.__support.macros.config + FLAGS + MISC_MATH_BASIC_OPS_OPT +) + +add_header_library( + fmaximum_numf + HDRS + fmaximum_numf.h + DEPENDS + libc.src.__support.FPUtil.basic_operations + libc.src.__support.macros.config + FLAGS + MISC_MATH_BASIC_OPS_OPT +) + +add_header_library( + fmaximum_numf128 + HDRS + fmaximum_numf128.h + DEPENDS + libc.include.llvm-libc-types.float128 + libc.src.__support.FPUtil.basic_operations + libc.src.__support.macros.config +) + +add_header_library( + fmaximum_numf16 + HDRS + fmaximum_numf16.h + DEPENDS + libc.include.llvm-libc-macros.float16_macros + libc.src.__support.FPUtil.basic_operations + libc.src.__support.macros.config + FLAGS + MISC_MATH_BASIC_OPS_OPT +) + +add_header_library( + fmaximum_numl + HDRS + fmaximum_numl.h + DEPENDS + libc.src.__support.FPUtil.basic_operations + libc.src.__support.macros.config +) + + add_header_library( fmin HDRS @@ -1016,6 +1083,71 @@ add_header_library( libc.src.__support.macros.config ) +add_header_library( + fminimum_num + HDRS + fminimum_num.h + DEPENDS + libc.src.__support.FPUtil.basic_operations + libc.src.__support.macros.config + FLAGS + MISC_MATH_BASIC_OPS_OPT +) + +add_header_library( + fminimum_numbf16 + HDRS + fminimum_numbf16.h + DEPENDS + libc.src.__support.FPUtil.basic_operations + libc.src.__support.FPUtil.bfloat16 + libc.src.__support.macros.config + FLAGS + MISC_MATH_BASIC_OPS_OPT +) + +add_header_library( + fminimum_numf + HDRS + fminimum_numf.h + DEPENDS + libc.src.__support.FPUtil.basic_operations + libc.src.__support.macros.config + FLAGS + MISC_MATH_BASIC_OPS_OPT +) + +add_header_library( + fminimum_numf128 + HDRS + fminimum_numf128.h + DEPENDS + libc.include.llvm-libc-types.float128 + libc.src.__support.FPUtil.basic_operations + libc.src.__support.macros.config +) + +add_header_library( + fminimum_numf16 + HDRS + fminimum_numf16.h + DEPENDS + libc.include.llvm-libc-macros.float16_macros + libc.src.__support.FPUtil.basic_operations + libc.src.__support.macros.config + FLAGS + MISC_MATH_BASIC_OPS_OPT +) + +add_header_library( + fminimum_numl + HDRS + fminimum_numl.h + DEPENDS + libc.src.__support.FPUtil.basic_operations + libc.src.__support.macros.config +) + add_header_library( fminl HDRS diff --git a/libc/src/__support/math/fmaximum_num.h b/libc/src/__support/math/fmaximum_num.h new file mode 100644 index 000000000000..fa20551a23e7 --- /dev/null +++ b/libc/src/__support/math/fmaximum_num.h @@ -0,0 +1,25 @@ +//===-- Implementation header for fmaximum_num ------------------*- C++ -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_LIBC_SRC___SUPPORT_MATH_FMAXIMUM_NUM_H +#define LLVM_LIBC_SRC___SUPPORT_MATH_FMAXIMUM_NUM_H + +#include "src/__support/FPUtil/BasicOperations.h" +#include "src/__support/macros/config.h" + +namespace LIBC_NAMESPACE_DECL { +namespace math { + +LIBC_INLINE constexpr double fmaximum_num(double x, double y) { + return fputil::fmaximum_num(x, y); +} + +} // namespace math +} // namespace LIBC_NAMESPACE_DECL + +#endif // LLVM_LIBC_SRC___SUPPORT_MATH_FMAXIMUM_NUM_H diff --git a/libc/src/__support/math/fmaximum_numbf16.h b/libc/src/__support/math/fmaximum_numbf16.h new file mode 100644 index 000000000000..673b8a8af1b8 --- /dev/null +++ b/libc/src/__support/math/fmaximum_numbf16.h @@ -0,0 +1,26 @@ +//===-- Implementation header for fmaximum_numbf16 --------------*- C++ -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_LIBC_SRC___SUPPORT_MATH_FMAXIMUM_NUMBF16_H +#define LLVM_LIBC_SRC___SUPPORT_MATH_FMAXIMUM_NUMBF16_H + +#include "src/__support/FPUtil/BasicOperations.h" +#include "src/__support/FPUtil/bfloat16.h" +#include "src/__support/macros/config.h" + +namespace LIBC_NAMESPACE_DECL { +namespace math { + +LIBC_INLINE constexpr bfloat16 fmaximum_numbf16(bfloat16 x, bfloat16 y) { + return fputil::fmaximum_num(x, y); +} + +} // namespace math +} // namespace LIBC_NAMESPACE_DECL + +#endif // LLVM_LIBC_SRC___SUPPORT_MATH_FMAXIMUM_NUMBF16_H diff --git a/libc/src/__support/math/fmaximum_numf.h b/libc/src/__support/math/fmaximum_numf.h new file mode 100644 index 000000000000..436492d5f676 --- /dev/null +++ b/libc/src/__support/math/fmaximum_numf.h @@ -0,0 +1,25 @@ +//===-- Implementation header for fmaximum_numf -----------------*- C++ -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_LIBC_SRC___SUPPORT_MATH_FMAXIMUM_NUMF_H +#define LLVM_LIBC_SRC___SUPPORT_MATH_FMAXIMUM_NUMF_H + +#include "src/__support/FPUtil/BasicOperations.h" +#include "src/__support/macros/config.h" + +namespace LIBC_NAMESPACE_DECL { +namespace math { + +LIBC_INLINE constexpr float fmaximum_numf(float x, float y) { + return fputil::fmaximum_num(x, y); +} + +} // namespace math +} // namespace LIBC_NAMESPACE_DECL + +#endif // LLVM_LIBC_SRC___SUPPORT_MATH_FMAXIMUM_NUMF_H diff --git a/libc/src/__support/math/fmaximum_numf128.h b/libc/src/__support/math/fmaximum_numf128.h new file mode 100644 index 000000000000..b3fc57031d74 --- /dev/null +++ b/libc/src/__support/math/fmaximum_numf128.h @@ -0,0 +1,31 @@ +//===-- Implementation header for fmaximum_numf128 --------------*- C++ -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_LIBC_SRC___SUPPORT_MATH_FMAXIMUM_NUMF128_H +#define LLVM_LIBC_SRC___SUPPORT_MATH_FMAXIMUM_NUMF128_H + +#include "include/llvm-libc-types/float128.h" + +#ifdef LIBC_TYPES_HAS_FLOAT128 + +#include "src/__support/FPUtil/BasicOperations.h" +#include "src/__support/macros/config.h" + +namespace LIBC_NAMESPACE_DECL { +namespace math { + +LIBC_INLINE constexpr float128 fmaximum_numf128(float128 x, float128 y) { + return fputil::fmaximum_num(x, y); +} + +} // namespace math +} // namespace LIBC_NAMESPACE_DECL + +#endif // LIBC_TYPES_HAS_FLOAT128 + +#endif // LLVM_LIBC_SRC___SUPPORT_MATH_FMAXIMUM_NUMF128_H diff --git a/libc/src/__support/math/fmaximum_numf16.h b/libc/src/__support/math/fmaximum_numf16.h new file mode 100644 index 000000000000..5253d7df295b --- /dev/null +++ b/libc/src/__support/math/fmaximum_numf16.h @@ -0,0 +1,31 @@ +//===-- Implementation header for fmaximum_numf16 ---------------*- C++ -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_LIBC_SRC___SUPPORT_MATH_FMAXIMUM_NUMF16_H +#define LLVM_LIBC_SRC___SUPPORT_MATH_FMAXIMUM_NUMF16_H + +#include "include/llvm-libc-macros/float16-macros.h" + +#ifdef LIBC_TYPES_HAS_FLOAT16 + +#include "src/__support/FPUtil/BasicOperations.h" +#include "src/__support/macros/config.h" + +namespace LIBC_NAMESPACE_DECL { +namespace math { + +LIBC_INLINE constexpr float16 fmaximum_numf16(float16 x, float16 y) { + return fputil::fmaximum_num(x, y); +} + +} // namespace math +} // namespace LIBC_NAMESPACE_DECL + +#endif // LIBC_TYPES_HAS_FLOAT16 + +#endif // LLVM_LIBC_SRC___SUPPORT_MATH_FMAXIMUM_NUMF16_H diff --git a/libc/src/__support/math/fmaximum_numl.h b/libc/src/__support/math/fmaximum_numl.h new file mode 100644 index 000000000000..08ae24aaa469 --- /dev/null +++ b/libc/src/__support/math/fmaximum_numl.h @@ -0,0 +1,25 @@ +//===-- Implementation header for fmaximum_numl -----------------*- C++ -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_LIBC_SRC___SUPPORT_MATH_FMAXIMUM_NUML_H +#define LLVM_LIBC_SRC___SUPPORT_MATH_FMAXIMUM_NUML_H + +#include "src/__support/FPUtil/BasicOperations.h" +#include "src/__support/macros/config.h" + +namespace LIBC_NAMESPACE_DECL { +namespace math { + +LIBC_INLINE constexpr long double fmaximum_numl(long double x, long double y) { + return fputil::fmaximum_num(x, y); +} + +} // namespace math +} // namespace LIBC_NAMESPACE_DECL + +#endif // LLVM_LIBC_SRC___SUPPORT_MATH_FMAXIMUM_NUML_H diff --git a/libc/src/__support/math/fminimum_num.h b/libc/src/__support/math/fminimum_num.h new file mode 100644 index 000000000000..06dc642fcf93 --- /dev/null +++ b/libc/src/__support/math/fminimum_num.h @@ -0,0 +1,25 @@ +//===-- Implementation header for fminimum_num ------------------*- C++ -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_LIBC_SRC___SUPPORT_MATH_FMINIMUM_NUM_H +#define LLVM_LIBC_SRC___SUPPORT_MATH_FMINIMUM_NUM_H + +#include "src/__support/FPUtil/BasicOperations.h" +#include "src/__support/macros/config.h" + +namespace LIBC_NAMESPACE_DECL { +namespace math { + +LIBC_INLINE constexpr double fminimum_num(double x, double y) { + return fputil::fminimum_num(x, y); +} + +} // namespace math +} // namespace LIBC_NAMESPACE_DECL + +#endif // LLVM_LIBC_SRC___SUPPORT_MATH_FMINIMUM_NUM_H diff --git a/libc/src/__support/math/fminimum_numbf16.h b/libc/src/__support/math/fminimum_numbf16.h new file mode 100644 index 000000000000..658faf35e63f --- /dev/null +++ b/libc/src/__support/math/fminimum_numbf16.h @@ -0,0 +1,26 @@ +//===-- Implementation header for fminimum_numbf16 --------------*- C++ -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_LIBC_SRC___SUPPORT_MATH_FMINIMUM_NUMBF16_H +#define LLVM_LIBC_SRC___SUPPORT_MATH_FMINIMUM_NUMBF16_H + +#include "src/__support/FPUtil/BasicOperations.h" +#include "src/__support/FPUtil/bfloat16.h" +#include "src/__support/macros/config.h" + +namespace LIBC_NAMESPACE_DECL { +namespace math { + +LIBC_INLINE constexpr bfloat16 fminimum_numbf16(bfloat16 x, bfloat16 y) { + return fputil::fminimum_num(x, y); +} + +} // namespace math +} // namespace LIBC_NAMESPACE_DECL + +#endif // LLVM_LIBC_SRC___SUPPORT_MATH_FMINIMUM_NUMBF16_H diff --git a/libc/src/__support/math/fminimum_numf.h b/libc/src/__support/math/fminimum_numf.h new file mode 100644 index 000000000000..3c10fcbdc60b --- /dev/null +++ b/libc/src/__support/math/fminimum_numf.h @@ -0,0 +1,25 @@ +//===-- Implementation header for fminimum_numf -----------------*- C++ -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_LIBC_SRC___SUPPORT_MATH_FMINIMUM_NUMF_H +#define LLVM_LIBC_SRC___SUPPORT_MATH_FMINIMUM_NUMF_H + +#include "src/__support/FPUtil/BasicOperations.h" +#include "src/__support/macros/config.h" + +namespace LIBC_NAMESPACE_DECL { +namespace math { + +LIBC_INLINE constexpr float fminimum_numf(float x, float y) { + return fputil::fminimum_num(x, y); +} + +} // namespace math +} // namespace LIBC_NAMESPACE_DECL + +#endif // LLVM_LIBC_SRC___SUPPORT_MATH_FMINIMUM_NUMF_H diff --git a/libc/src/__support/math/fminimum_numf128.h b/libc/src/__support/math/fminimum_numf128.h new file mode 100644 index 000000000000..3f9897b17ad7 --- /dev/null +++ b/libc/src/__support/math/fminimum_numf128.h @@ -0,0 +1,31 @@ +//===-- Implementation header for fminimum_numf128 --------------*- C++ -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_LIBC_SRC___SUPPORT_MATH_FMINIMUM_NUMF128_H +#define LLVM_LIBC_SRC___SUPPORT_MATH_FMINIMUM_NUMF128_H + +#include "include/llvm-libc-types/float128.h" + +#ifdef LIBC_TYPES_HAS_FLOAT128 + +#include "src/__support/FPUtil/BasicOperations.h" +#include "src/__support/macros/config.h" + +namespace LIBC_NAMESPACE_DECL { +namespace math { + +LIBC_INLINE constexpr float128 fminimum_numf128(float128 x, float128 y) { + return fputil::fminimum_num(x, y); +} + +} // namespace math +} // namespace LIBC_NAMESPACE_DECL + +#endif // LIBC_TYPES_HAS_FLOAT128 + +#endif // LLVM_LIBC_SRC___SUPPORT_MATH_FMINIMUM_NUMF128_H diff --git a/libc/src/__support/math/fminimum_numf16.h b/libc/src/__support/math/fminimum_numf16.h new file mode 100644 index 000000000000..540f1757af1a --- /dev/null +++ b/libc/src/__support/math/fminimum_numf16.h @@ -0,0 +1,31 @@ +//===-- Implementation header for fminimum_numf16 ---------------*- C++ -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_LIBC_SRC___SUPPORT_MATH_FMINIMUM_NUMF16_H +#define LLVM_LIBC_SRC___SUPPORT_MATH_FMINIMUM_NUMF16_H + +#include "include/llvm-libc-macros/float16-macros.h" + +#ifdef LIBC_TYPES_HAS_FLOAT16 + +#include "src/__support/FPUtil/BasicOperations.h" +#include "src/__support/macros/config.h" + +namespace LIBC_NAMESPACE_DECL { +namespace math { + +LIBC_INLINE constexpr float16 fminimum_numf16(float16 x, float16 y) { + return fputil::fminimum_num(x, y); +} + +} // namespace math +} // namespace LIBC_NAMESPACE_DECL + +#endif // LIBC_TYPES_HAS_FLOAT16 + +#endif // LLVM_LIBC_SRC___SUPPORT_MATH_FMINIMUM_NUMF16_H diff --git a/libc/src/__support/math/fminimum_numl.h b/libc/src/__support/math/fminimum_numl.h new file mode 100644 index 000000000000..fe98af196be0 --- /dev/null +++ b/libc/src/__support/math/fminimum_numl.h @@ -0,0 +1,25 @@ +//===-- Implementation header for fminimum_numl -----------------*- C++ -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_LIBC_SRC___SUPPORT_MATH_FMINIMUM_NUML_H +#define LLVM_LIBC_SRC___SUPPORT_MATH_FMINIMUM_NUML_H + +#include "src/__support/FPUtil/BasicOperations.h" +#include "src/__support/macros/config.h" + +namespace LIBC_NAMESPACE_DECL { +namespace math { + +LIBC_INLINE constexpr long double fminimum_numl(long double x, long double y) { + return fputil::fminimum_num(x, y); +} + +} // namespace math +} // namespace LIBC_NAMESPACE_DECL + +#endif // LLVM_LIBC_SRC___SUPPORT_MATH_FMINIMUM_NUML_H diff --git a/libc/src/math/generic/CMakeLists.txt b/libc/src/math/generic/CMakeLists.txt index 7c2f585815e8..df6e2dd9dbfc 100644 --- a/libc/src/math/generic/CMakeLists.txt +++ b/libc/src/math/generic/CMakeLists.txt @@ -2247,9 +2247,7 @@ add_entrypoint_object( HDRS ../fmaximum_num.h DEPENDS - libc.src.__support.FPUtil.basic_operations - FLAGS - MISC_MATH_BASIC_OPS_OPT + libc.src.__support.math.fmaximum_num ) add_entrypoint_object( @@ -2259,9 +2257,7 @@ add_entrypoint_object( HDRS ../fmaximum_numf.h DEPENDS - libc.src.__support.FPUtil.basic_operations - FLAGS - MISC_MATH_BASIC_OPS_OPT + libc.src.__support.math.fmaximum_numf ) add_entrypoint_object( @@ -2271,7 +2267,7 @@ add_entrypoint_object( HDRS ../fmaximum_numl.h DEPENDS - libc.src.__support.FPUtil.basic_operations + libc.src.__support.math.fmaximum_numl ) add_entrypoint_object( @@ -2281,10 +2277,7 @@ add_entrypoint_object( HDRS ../fmaximum_numf16.h DEPENDS - libc.src.__support.macros.properties.types - libc.src.__support.FPUtil.basic_operations - FLAGS - MISC_MATH_BASIC_OPS_OPT + libc.src.__support.math.fmaximum_numf16 ) add_entrypoint_object( @@ -2294,8 +2287,7 @@ add_entrypoint_object( HDRS ../fmaximum_numf128.h DEPENDS - libc.src.__support.macros.properties.types - libc.src.__support.FPUtil.basic_operations + libc.src.__support.math.fmaximum_numf128 ) add_entrypoint_object( @@ -2305,12 +2297,7 @@ add_entrypoint_object( HDRS ../fmaximum_numbf16.h DEPENDS - libc.src.__support.FPUtil.basic_operations - libc.src.__support.FPUtil.bfloat16 - libc.src.__support.macros.config - libc.src.__support.macros.properties.types - FLAGS - MISC_MATH_BASIC_OPS_OPT + libc.src.__support.math.fmaximum_numbf16 ) add_entrypoint_object( @@ -2509,9 +2496,7 @@ add_entrypoint_object( HDRS ../fminimum_num.h DEPENDS - libc.src.__support.FPUtil.basic_operations - FLAGS - MISC_MATH_BASIC_OPS_OPT + libc.src.__support.math.fminimum_num ) add_entrypoint_object( @@ -2521,9 +2506,7 @@ add_entrypoint_object( HDRS ../fminimum_numf.h DEPENDS - libc.src.__support.FPUtil.basic_operations - FLAGS - MISC_MATH_BASIC_OPS_OPT + libc.src.__support.math.fminimum_numf ) add_entrypoint_object( @@ -2533,7 +2516,7 @@ add_entrypoint_object( HDRS ../fminimum_numl.h DEPENDS - libc.src.__support.FPUtil.basic_operations + libc.src.__support.math.fminimum_numl ) add_entrypoint_object( @@ -2543,10 +2526,7 @@ add_entrypoint_object( HDRS ../fminimum_numf16.h DEPENDS - libc.src.__support.macros.properties.types - libc.src.__support.FPUtil.basic_operations - FLAGS - MISC_MATH_BASIC_OPS_OPT + libc.src.__support.math.fminimum_numf16 ) add_entrypoint_object( @@ -2556,8 +2536,7 @@ add_entrypoint_object( HDRS ../fminimum_numf128.h DEPENDS - libc.src.__support.macros.properties.types - libc.src.__support.FPUtil.basic_operations + libc.src.__support.math.fminimum_numf128 ) add_entrypoint_object( @@ -2567,12 +2546,7 @@ add_entrypoint_object( HDRS ../fminimum_numbf16.h DEPENDS - libc.src.__support.FPUtil.basic_operations - libc.src.__support.FPUtil.bfloat16 - libc.src.__support.macros.config - libc.src.__support.macros.properties.types - FLAGS - MISC_MATH_BASIC_OPS_OPT + libc.src.__support.math.fminimum_numbf16 ) add_entrypoint_object( diff --git a/libc/src/math/generic/fmaximum_num.cpp b/libc/src/math/generic/fmaximum_num.cpp index 33df7daa380d..ee0a1a606066 100644 --- a/libc/src/math/generic/fmaximum_num.cpp +++ b/libc/src/math/generic/fmaximum_num.cpp @@ -7,14 +7,12 @@ //===----------------------------------------------------------------------===// #include "src/math/fmaximum_num.h" -#include "src/__support/FPUtil/BasicOperations.h" -#include "src/__support/common.h" -#include "src/__support/macros/config.h" +#include "src/__support/math/fmaximum_num.h" namespace LIBC_NAMESPACE_DECL { LLVM_LIBC_FUNCTION(double, fmaximum_num, (double x, double y)) { - return fputil::fmaximum_num(x, y); + return math::fmaximum_num(x, y); } } // namespace LIBC_NAMESPACE_DECL diff --git a/libc/src/math/generic/fmaximum_numbf16.cpp b/libc/src/math/generic/fmaximum_numbf16.cpp index b058d50a7fd6..753db1cb6ec1 100644 --- a/libc/src/math/generic/fmaximum_numbf16.cpp +++ b/libc/src/math/generic/fmaximum_numbf16.cpp @@ -7,15 +7,12 @@ //===----------------------------------------------------------------------===// #include "src/math/fmaximum_numbf16.h" -#include "src/__support/FPUtil/BasicOperations.h" -#include "src/__support/FPUtil/bfloat16.h" -#include "src/__support/common.h" -#include "src/__support/macros/config.h" +#include "src/__support/math/fmaximum_numbf16.h" namespace LIBC_NAMESPACE_DECL { LLVM_LIBC_FUNCTION(bfloat16, fmaximum_numbf16, (bfloat16 x, bfloat16 y)) { - return fputil::fmaximum_num(x, y); + return math::fmaximum_numbf16(x, y); } } // namespace LIBC_NAMESPACE_DECL diff --git a/libc/src/math/generic/fmaximum_numf.cpp b/libc/src/math/generic/fmaximum_numf.cpp index 1577080ba2c2..2a26dc61c19f 100644 --- a/libc/src/math/generic/fmaximum_numf.cpp +++ b/libc/src/math/generic/fmaximum_numf.cpp @@ -7,14 +7,12 @@ //===----------------------------------------------------------------------===// #include "src/math/fmaximum_numf.h" -#include "src/__support/FPUtil/BasicOperations.h" -#include "src/__support/common.h" -#include "src/__support/macros/config.h" +#include "src/__support/math/fmaximum_numf.h" namespace LIBC_NAMESPACE_DECL { LLVM_LIBC_FUNCTION(float, fmaximum_numf, (float x, float y)) { - return fputil::fmaximum_num(x, y); + return math::fmaximum_numf(x, y); } } // namespace LIBC_NAMESPACE_DECL diff --git a/libc/src/math/generic/fmaximum_numf128.cpp b/libc/src/math/generic/fmaximum_numf128.cpp index 5cfaca536320..e6bae7947371 100644 --- a/libc/src/math/generic/fmaximum_numf128.cpp +++ b/libc/src/math/generic/fmaximum_numf128.cpp @@ -7,14 +7,12 @@ //===----------------------------------------------------------------------===// #include "src/math/fmaximum_numf128.h" -#include "src/__support/FPUtil/BasicOperations.h" -#include "src/__support/common.h" -#include "src/__support/macros/config.h" +#include "src/__support/math/fmaximum_numf128.h" namespace LIBC_NAMESPACE_DECL { LLVM_LIBC_FUNCTION(float128, fmaximum_numf128, (float128 x, float128 y)) { - return fputil::fmaximum_num(x, y); + return math::fmaximum_numf128(x, y); } } // namespace LIBC_NAMESPACE_DECL diff --git a/libc/src/math/generic/fmaximum_numf16.cpp b/libc/src/math/generic/fmaximum_numf16.cpp index 394ce8b5fe4f..6310986774da 100644 --- a/libc/src/math/generic/fmaximum_numf16.cpp +++ b/libc/src/math/generic/fmaximum_numf16.cpp @@ -7,14 +7,12 @@ //===----------------------------------------------------------------------===// #include "src/math/fmaximum_numf16.h" -#include "src/__support/FPUtil/BasicOperations.h" -#include "src/__support/common.h" -#include "src/__support/macros/config.h" +#include "src/__support/math/fmaximum_numf16.h" namespace LIBC_NAMESPACE_DECL { LLVM_LIBC_FUNCTION(float16, fmaximum_numf16, (float16 x, float16 y)) { - return fputil::fmaximum_num(x, y); + return math::fmaximum_numf16(x, y); } } // namespace LIBC_NAMESPACE_DECL diff --git a/libc/src/math/generic/fmaximum_numl.cpp b/libc/src/math/generic/fmaximum_numl.cpp index eecebf6ed35c..94fbd71cadc8 100644 --- a/libc/src/math/generic/fmaximum_numl.cpp +++ b/libc/src/math/generic/fmaximum_numl.cpp @@ -7,14 +7,12 @@ //===----------------------------------------------------------------------===// #include "src/math/fmaximum_numl.h" -#include "src/__support/FPUtil/BasicOperations.h" -#include "src/__support/common.h" -#include "src/__support/macros/config.h" +#include "src/__support/math/fmaximum_numl.h" namespace LIBC_NAMESPACE_DECL { LLVM_LIBC_FUNCTION(long double, fmaximum_numl, (long double x, long double y)) { - return fputil::fmaximum_num(x, y); + return math::fmaximum_numl(x, y); } } // namespace LIBC_NAMESPACE_DECL diff --git a/libc/src/math/generic/fminimum_num.cpp b/libc/src/math/generic/fminimum_num.cpp index 3ff79def5807..a89e48ac8300 100644 --- a/libc/src/math/generic/fminimum_num.cpp +++ b/libc/src/math/generic/fminimum_num.cpp @@ -7,14 +7,12 @@ //===----------------------------------------------------------------------===// #include "src/math/fminimum_num.h" -#include "src/__support/FPUtil/BasicOperations.h" -#include "src/__support/common.h" -#include "src/__support/macros/config.h" +#include "src/__support/math/fminimum_num.h" namespace LIBC_NAMESPACE_DECL { LLVM_LIBC_FUNCTION(double, fminimum_num, (double x, double y)) { - return fputil::fminimum_num(x, y); + return math::fminimum_num(x, y); } } // namespace LIBC_NAMESPACE_DECL diff --git a/libc/src/math/generic/fminimum_numbf16.cpp b/libc/src/math/generic/fminimum_numbf16.cpp index 079a83011ec3..f6a88722eb2d 100644 --- a/libc/src/math/generic/fminimum_numbf16.cpp +++ b/libc/src/math/generic/fminimum_numbf16.cpp @@ -7,15 +7,12 @@ //===----------------------------------------------------------------------===// #include "src/math/fminimum_numbf16.h" -#include "src/__support/FPUtil/BasicOperations.h" -#include "src/__support/FPUtil/bfloat16.h" -#include "src/__support/common.h" -#include "src/__support/macros/config.h" +#include "src/__support/math/fminimum_numbf16.h" namespace LIBC_NAMESPACE_DECL { LLVM_LIBC_FUNCTION(bfloat16, fminimum_numbf16, (bfloat16 x, bfloat16 y)) { - return fputil::fminimum_num(x, y); + return math::fminimum_numbf16(x, y); } } // namespace LIBC_NAMESPACE_DECL diff --git a/libc/src/math/generic/fminimum_numf.cpp b/libc/src/math/generic/fminimum_numf.cpp index c7ac99b14bd5..aa2e5f11f5ea 100644 --- a/libc/src/math/generic/fminimum_numf.cpp +++ b/libc/src/math/generic/fminimum_numf.cpp @@ -7,14 +7,12 @@ //===----------------------------------------------------------------------===// #include "src/math/fminimum_numf.h" -#include "src/__support/FPUtil/BasicOperations.h" -#include "src/__support/common.h" -#include "src/__support/macros/config.h" +#include "src/__support/math/fminimum_numf.h" namespace LIBC_NAMESPACE_DECL { LLVM_LIBC_FUNCTION(float, fminimum_numf, (float x, float y)) { - return fputil::fminimum_num(x, y); + return math::fminimum_numf(x, y); } } // namespace LIBC_NAMESPACE_DECL diff --git a/libc/src/math/generic/fminimum_numf128.cpp b/libc/src/math/generic/fminimum_numf128.cpp index 6d957128c26f..fec526cd19c4 100644 --- a/libc/src/math/generic/fminimum_numf128.cpp +++ b/libc/src/math/generic/fminimum_numf128.cpp @@ -7,14 +7,12 @@ //===----------------------------------------------------------------------===// #include "src/math/fminimum_numf128.h" -#include "src/__support/FPUtil/BasicOperations.h" -#include "src/__support/common.h" -#include "src/__support/macros/config.h" +#include "src/__support/math/fminimum_numf128.h" namespace LIBC_NAMESPACE_DECL { LLVM_LIBC_FUNCTION(float128, fminimum_numf128, (float128 x, float128 y)) { - return fputil::fminimum_num(x, y); + return math::fminimum_numf128(x, y); } } // namespace LIBC_NAMESPACE_DECL diff --git a/libc/src/math/generic/fminimum_numf16.cpp b/libc/src/math/generic/fminimum_numf16.cpp index 0af7205713c1..dcfee8766ee8 100644 --- a/libc/src/math/generic/fminimum_numf16.cpp +++ b/libc/src/math/generic/fminimum_numf16.cpp @@ -7,14 +7,12 @@ //===----------------------------------------------------------------------===// #include "src/math/fminimum_numf16.h" -#include "src/__support/FPUtil/BasicOperations.h" -#include "src/__support/common.h" -#include "src/__support/macros/config.h" +#include "src/__support/math/fminimum_numf16.h" namespace LIBC_NAMESPACE_DECL { LLVM_LIBC_FUNCTION(float16, fminimum_numf16, (float16 x, float16 y)) { - return fputil::fminimum_num(x, y); + return math::fminimum_numf16(x, y); } } // namespace LIBC_NAMESPACE_DECL diff --git a/libc/src/math/generic/fminimum_numl.cpp b/libc/src/math/generic/fminimum_numl.cpp index 8a4cff38bdd3..6796c6ff460f 100644 --- a/libc/src/math/generic/fminimum_numl.cpp +++ b/libc/src/math/generic/fminimum_numl.cpp @@ -7,14 +7,12 @@ //===----------------------------------------------------------------------===// #include "src/math/fminimum_numl.h" -#include "src/__support/FPUtil/BasicOperations.h" -#include "src/__support/common.h" -#include "src/__support/macros/config.h" +#include "src/__support/math/fminimum_numl.h" namespace LIBC_NAMESPACE_DECL { LLVM_LIBC_FUNCTION(long double, fminimum_numl, (long double x, long double y)) { - return fputil::fminimum_num(x, y); + return math::fminimum_numl(x, y); } } // namespace LIBC_NAMESPACE_DECL diff --git a/libc/test/shared/CMakeLists.txt b/libc/test/shared/CMakeLists.txt index ca85dedff1b4..b716d246d3f7 100644 --- a/libc/test/shared/CMakeLists.txt +++ b/libc/test/shared/CMakeLists.txt @@ -178,6 +178,12 @@ add_fp_unittest( libc.src.__support.math.fmaximum_mag_num libc.src.__support.math.fmaximum_mag_numbf16 libc.src.__support.math.fmaximum_mag_numf + libc.src.__support.math.fmaximum_num + libc.src.__support.math.fmaximum_numbf16 + libc.src.__support.math.fmaximum_numf + libc.src.__support.math.fmaximum_numf128 + libc.src.__support.math.fmaximum_numf16 + libc.src.__support.math.fmaximum_numl libc.src.__support.math.fmaximumbf16 libc.src.__support.math.fmaximumf libc.src.__support.math.fmaximumf128 @@ -190,6 +196,12 @@ add_fp_unittest( libc.src.__support.math.fminf128 libc.src.__support.math.fminf16 libc.src.__support.math.fminimum + libc.src.__support.math.fminimum_num + libc.src.__support.math.fminimum_numbf16 + libc.src.__support.math.fminimum_numf + libc.src.__support.math.fminimum_numf128 + libc.src.__support.math.fminimum_numf16 + libc.src.__support.math.fminimum_numl libc.src.__support.math.fminimumbf16 libc.src.__support.math.fminimumf libc.src.__support.math.fminimumf128 @@ -362,6 +374,12 @@ add_fp_unittest( libc.src.__support.math.fmaximum_mag_num libc.src.__support.math.fmaximum_mag_numbf16 libc.src.__support.math.fmaximum_mag_numf + libc.src.__support.math.fmaximum_num + libc.src.__support.math.fmaximum_numbf16 + libc.src.__support.math.fmaximum_numf + libc.src.__support.math.fmaximum_numf128 + libc.src.__support.math.fmaximum_numf16 + libc.src.__support.math.fmaximum_numl libc.src.__support.math.fmaximumbf16 libc.src.__support.math.fmaximumf libc.src.__support.math.fmaximumf128 @@ -373,6 +391,12 @@ add_fp_unittest( libc.src.__support.math.fminf128 libc.src.__support.math.fminf16 libc.src.__support.math.fminimum + libc.src.__support.math.fminimum_num + libc.src.__support.math.fminimum_numbf16 + libc.src.__support.math.fminimum_numf + libc.src.__support.math.fminimum_numf128 + libc.src.__support.math.fminimum_numf16 + libc.src.__support.math.fminimum_numl libc.src.__support.math.fminimumbf16 libc.src.__support.math.fminimumf libc.src.__support.math.fminimumf128 diff --git a/libc/test/shared/shared_math_constexpr_test.cpp b/libc/test/shared/shared_math_constexpr_test.cpp index 6fbc5ad1c98a..403a010c3c59 100644 --- a/libc/test/shared/shared_math_constexpr_test.cpp +++ b/libc/test/shared/shared_math_constexpr_test.cpp @@ -27,6 +27,8 @@ static_assert(0.0 == LIBC_NAMESPACE::shared::fmaximum(0.0, 0.0)); static_assert(0.0 == LIBC_NAMESPACE::shared::fminimum(0.0, 0.0)); static_assert(0.0 == LIBC_NAMESPACE::shared::fmin(0.0, 0.0)); static_assert(0.0 == LIBC_NAMESPACE::shared::fmax(0.0, 0.0)); +static_assert(0.0 == LIBC_NAMESPACE::shared::fmaximum_num(0.0, 0.0)); +static_assert(0.0 == LIBC_NAMESPACE::shared::fminimum_num(0.0, 0.0)); //===----------------------------------------------------------------------===// // Float Tests @@ -42,6 +44,8 @@ static_assert(0.0f == LIBC_NAMESPACE::shared::fmaximumf(0.0f, 0.0f)); static_assert(0.0f == LIBC_NAMESPACE::shared::fminimumf(0.0f, 0.0f)); static_assert(0.0f == LIBC_NAMESPACE::shared::fminf(0.0f, 0.0f)); static_assert(0.0f == LIBC_NAMESPACE::shared::fmaxf(0.0f, 0.0f)); +static_assert(0.0f == LIBC_NAMESPACE::shared::fmaximum_numf(0.0f, 0.0f)); +static_assert(0.0f == LIBC_NAMESPACE::shared::fminimum_numf(0.0f, 0.0f)); //===----------------------------------------------------------------------===// // Float16 Tests @@ -58,6 +62,10 @@ static_assert(0.0f16 == LIBC_NAMESPACE::shared::fmaximumf16(0.0f16, 0.0f16)); static_assert(0.0f16 == LIBC_NAMESPACE::shared::fminimumf16(0.0f16, 0.0f16)); static_assert(0.0f16 == LIBC_NAMESPACE::shared::fminf16(0.0f16, 0.0f16)); static_assert(0.0f16 == LIBC_NAMESPACE::shared::fmaxf16(0.0f16, 0.0f16)); +static_assert(0.0f16 == + LIBC_NAMESPACE::shared::fmaximum_numf16(0.0f16, 0.0f16)); +static_assert(0.0f16 == + LIBC_NAMESPACE::shared::fminimum_numf16(0.0f16, 0.0f16)); #endif // LIBC_TYPES_HAS_FLOAT16 @@ -82,6 +90,8 @@ static_assert(0.0L == LIBC_NAMESPACE::shared::fmaximuml(0.0L, 0.0L)); static_assert(0.0L == LIBC_NAMESPACE::shared::fminimuml(0.0L, 0.0L)); static_assert(0.0L == LIBC_NAMESPACE::shared::fminl(0.0L, 0.0L)); static_assert(0.0L == LIBC_NAMESPACE::shared::fmaxl(0.0L, 0.0L)); +static_assert(0.0L == LIBC_NAMESPACE::shared::fmaximum_numl(0.0L, 0.0L)); +static_assert(0.0L == LIBC_NAMESPACE::shared::fminimum_numl(0.0L, 0.0L)); #endif @@ -119,6 +129,12 @@ static_assert(0.0 == LIBC_NAMESPACE::shared::dsqrtf128(float128(0.0))); static_assert(float128(0.0) == LIBC_NAMESPACE::shared::fmaxf128(float128(0.0), float128(0.0))); +static_assert(float128(0.0) == + LIBC_NAMESPACE::shared::fmaximum_numf128(float128(0.0), + float128(0.0))); +static_assert(float128(0.0) == + LIBC_NAMESPACE::shared::fminimum_numf128(float128(0.0), + float128(0.0))); #endif // LIBC_TYPES_HAS_FLOAT128 @@ -154,5 +170,11 @@ static_assert(bfloat16(0.0) == LIBC_NAMESPACE::shared::fminbf16(bfloat16(0.0), bfloat16(0.0))); static_assert(bfloat16(0.0) == LIBC_NAMESPACE::shared::fmaxbf16(bfloat16(0.0), bfloat16(0.0))); +static_assert(bfloat16(0.0) == + LIBC_NAMESPACE::shared::fmaximum_numbf16(bfloat16(0.0), + bfloat16(0.0))); +static_assert(bfloat16(0.0) == + LIBC_NAMESPACE::shared::fminimum_numbf16(bfloat16(0.0), + bfloat16(0.0))); TEST(LlvmLibcSharedMathTest, ConstantEvaluation) {} diff --git a/libc/test/shared/shared_math_test.cpp b/libc/test/shared/shared_math_test.cpp index faed98a19e13..a71cc858d8b2 100644 --- a/libc/test/shared/shared_math_test.cpp +++ b/libc/test/shared/shared_math_test.cpp @@ -106,6 +106,10 @@ TEST(LlvmLibcSharedMathTest, AllFloat16) { EXPECT_FP_EQ(0x0p+0f16, LIBC_NAMESPACE::shared::fmaximumf16(0.0f16, 0.0f16)); EXPECT_FP_EQ(0x0p+0f16, LIBC_NAMESPACE::shared::fminimumf16(0.0f16, 0.0f16)); EXPECT_FP_EQ(0x0p+0f16, LIBC_NAMESPACE::shared::fminf16(0.0f16, 0.0f16)); + EXPECT_FP_EQ(0x0p+0f16, + LIBC_NAMESPACE::shared::fmaximum_numf16(0.0f16, 0.0f16)); + EXPECT_FP_EQ(0x0p+0f16, + LIBC_NAMESPACE::shared::fminimum_numf16(0.0f16, 0.0f16)); } #endif // LIBC_TYPES_HAS_FLOAT16 @@ -220,6 +224,8 @@ TEST(LlvmLibcSharedMathTest, AllFloat) { EXPECT_FP_EQ(0x0p+0f, LIBC_NAMESPACE::shared::fmaximumf(0.0f, 0.0f)); EXPECT_FP_EQ(0x0p+0f, LIBC_NAMESPACE::shared::fminimumf(0.0f, 0.0f)); EXPECT_FP_EQ(0x0p+0f, LIBC_NAMESPACE::shared::fminf(0.0f, 0.0f)); + EXPECT_FP_EQ(0x0p+0f, LIBC_NAMESPACE::shared::fmaximum_numf(0.0f, 0.0f)); + EXPECT_FP_EQ(0x0p+0f, LIBC_NAMESPACE::shared::fminimum_numf(0.0f, 0.0f)); } TEST(LlvmLibcSharedMathTest, AllDouble) { @@ -310,6 +316,8 @@ TEST(LlvmLibcSharedMathTest, AllDouble) { EXPECT_FP_EQ(0.0, LIBC_NAMESPACE::shared::fmaximum(0.0, 0.0)); EXPECT_FP_EQ(0.0, LIBC_NAMESPACE::shared::fminimum(0.0, 0.0)); EXPECT_FP_EQ(0.0, LIBC_NAMESPACE::shared::fmin(0.0, 0.0)); + EXPECT_FP_EQ(0.0, LIBC_NAMESPACE::shared::fmaximum_num(0.0, 0.0)); + EXPECT_FP_EQ(0.0, LIBC_NAMESPACE::shared::fminimum_num(0.0, 0.0)); } // TODO: Enable the tests when double-double type is supported. @@ -381,6 +389,8 @@ TEST(LlvmLibcSharedMathTest, AllLongDouble) { EXPECT_FP_EQ(0x0p+0L, LIBC_NAMESPACE::shared::fmaximuml(0.0L, 0.0L)); EXPECT_FP_EQ(0x0p+0L, LIBC_NAMESPACE::shared::fminimuml(0.0L, 0.0L)); EXPECT_FP_EQ(0x0p+0L, LIBC_NAMESPACE::shared::fminl(0.0L, 0.0L)); + EXPECT_FP_EQ(0x0p+0L, LIBC_NAMESPACE::shared::fmaximum_numl(0.0L, 0.0L)); + EXPECT_FP_EQ(0x0p+0L, LIBC_NAMESPACE::shared::fminimum_numl(0.0L, 0.0L)); } #endif // LIBC_TYPES_LONG_DOUBLE_IS_DOUBLE_DOUBLE @@ -495,6 +505,10 @@ TEST(LlvmLibcSharedMathTest, AllFloat128) { float128(0.0), float128(0.0))); EXPECT_FP_EQ(float128(0.0), LIBC_NAMESPACE::shared::fminf128(float128(0.0), float128(0.0))); + EXPECT_FP_EQ(float128(0.0), LIBC_NAMESPACE::shared::fmaximum_numf128( + float128(0.0), float128(0.0))); + EXPECT_FP_EQ(float128(0.0), LIBC_NAMESPACE::shared::fminimum_numf128( + float128(0.0), float128(0.0))); } #endif // LIBC_TYPES_HAS_FLOAT128 @@ -572,4 +586,8 @@ TEST(LlvmLibcSharedMathTest, AllBFloat16) { bfloat16(0.0), bfloat16(0.0))); EXPECT_FP_EQ(bfloat16(0.0), LIBC_NAMESPACE::shared::fminbf16(bfloat16(0.0), bfloat16(0.0))); + EXPECT_FP_EQ(bfloat16(0.0), LIBC_NAMESPACE::shared::fmaximum_numbf16( + bfloat16(0.0), bfloat16(0.0))); + EXPECT_FP_EQ(bfloat16(0.0), LIBC_NAMESPACE::shared::fminimum_numbf16( + bfloat16(0.0), bfloat16(0.0))); } diff --git a/utils/bazel/llvm-project-overlay/libc/BUILD.bazel b/utils/bazel/llvm-project-overlay/libc/BUILD.bazel index 816601b3e7dd..635733e8f86c 100644 --- a/utils/bazel/llvm-project-overlay/libc/BUILD.bazel +++ b/utils/bazel/llvm-project-overlay/libc/BUILD.bazel @@ -4013,6 +4013,63 @@ libc_support_library( ], ) +libc_support_library( + name = "__support_math_fmaximum_num", + hdrs = ["src/__support/math/fmaximum_num.h"], + deps = [ + ":__support_fputil_basic_operations", + ":__support_macros_config", + ], +) + +libc_support_library( + name = "__support_math_fmaximum_numbf16", + hdrs = ["src/__support/math/fmaximum_numbf16.h"], + deps = [ + ":__support_fputil_basic_operations", + ":__support_fputil_bfloat16", + ":__support_macros_config", + ], +) + +libc_support_library( + name = "__support_math_fmaximum_numf", + hdrs = ["src/__support/math/fmaximum_numf.h"], + deps = [ + ":__support_fputil_basic_operations", + ":__support_macros_config", + ], +) + +libc_support_library( + name = "__support_math_fmaximum_numf128", + hdrs = ["src/__support/math/fmaximum_numf128.h"], + deps = [ + ":__support_fputil_basic_operations", + ":__support_macros_config", + ":llvm_libc_types_float128", + ], +) + +libc_support_library( + name = "__support_math_fmaximum_numf16", + hdrs = ["src/__support/math/fmaximum_numf16.h"], + deps = [ + ":__support_fputil_basic_operations", + ":__support_macros_config", + ":llvm_libc_macros_float16_macros", + ], +) + +libc_support_library( + name = "__support_math_fmaximum_numl", + hdrs = ["src/__support/math/fmaximum_numl.h"], + deps = [ + ":__support_fputil_basic_operations", + ":__support_macros_config", + ], +) + libc_support_library( name = "__support_math_fmin", hdrs = ["src/__support/math/fmin.h"], @@ -4118,6 +4175,63 @@ libc_support_library( ], ) +libc_support_library( + name = "__support_math_fminimum_num", + hdrs = ["src/__support/math/fminimum_num.h"], + deps = [ + ":__support_fputil_basic_operations", + ":__support_macros_config", + ], +) + +libc_support_library( + name = "__support_math_fminimum_numbf16", + hdrs = ["src/__support/math/fminimum_numbf16.h"], + deps = [ + ":__support_fputil_basic_operations", + ":__support_fputil_bfloat16", + ":__support_macros_config", + ], +) + +libc_support_library( + name = "__support_math_fminimum_numf", + hdrs = ["src/__support/math/fminimum_numf.h"], + deps = [ + ":__support_fputil_basic_operations", + ":__support_macros_config", + ], +) + +libc_support_library( + name = "__support_math_fminimum_numf128", + hdrs = ["src/__support/math/fminimum_numf128.h"], + deps = [ + ":__support_fputil_basic_operations", + ":__support_macros_config", + ":llvm_libc_types_float128", + ], +) + +libc_support_library( + name = "__support_math_fminimum_numf16", + hdrs = ["src/__support/math/fminimum_numf16.h"], + deps = [ + ":__support_fputil_basic_operations", + ":__support_macros_config", + ":llvm_libc_macros_float16_macros", + ], +) + +libc_support_library( + name = "__support_math_fminimum_numl", + hdrs = ["src/__support/math/fminimum_numl.h"], + deps = [ + ":__support_fputil_basic_operations", + ":__support_macros_config", + ], +) + libc_support_library( name = "__support_math_fminl", hdrs = ["src/__support/math/fminl.h"], @@ -7411,6 +7525,13 @@ libc_math_function( ], ) +libc_math_function( + name = "fmaximum_numbf16", + additional_deps = [ + ":__support_math_fmaximum_numbf16", + ], +) + libc_math_function( name = "fminbf16", additional_deps = [ @@ -7425,6 +7546,13 @@ libc_math_function( ], ) +libc_math_function( + name = "fminimum_numbf16", + additional_deps = [ + ":__support_math_fminimum_numbf16", + ], +) + libc_math_function( name = "ilogbbf16", additional_deps = [ @@ -8304,18 +8432,39 @@ libc_math_function( name = "fmaximum_mag_numf16", ) -libc_math_function(name = "fmaximum_num") +libc_math_function( + name = "fmaximum_num", + additional_deps = [ + ":__support_math_fmaximum_num", + ], +) -libc_math_function(name = "fmaximum_numf") +libc_math_function( + name = "fmaximum_numf", + additional_deps = [ + ":__support_math_fmaximum_numf", + ], +) -libc_math_function(name = "fmaximum_numl") +libc_math_function( + name = "fmaximum_numl", + additional_deps = [ + ":__support_math_fmaximum_numl", + ], +) libc_math_function( name = "fmaximum_numf128", + additional_deps = [ + ":__support_math_fmaximum_numf128", + ], ) libc_math_function( name = "fmaximum_numf16", + additional_deps = [ + ":__support_math_fmaximum_numf16", + ], ) libc_math_function( @@ -8416,18 +8565,39 @@ libc_math_function( name = "fminimum_mag_numf16", ) -libc_math_function(name = "fminimum_num") +libc_math_function( + name = "fminimum_num", + additional_deps = [ + ":__support_math_fminimum_num", + ], +) -libc_math_function(name = "fminimum_numf") +libc_math_function( + name = "fminimum_numf", + additional_deps = [ + ":__support_math_fminimum_numf", + ], +) -libc_math_function(name = "fminimum_numl") +libc_math_function( + name = "fminimum_numl", + additional_deps = [ + ":__support_math_fminimum_numl", + ], +) libc_math_function( name = "fminimum_numf128", + additional_deps = [ + ":__support_math_fminimum_numf128", + ], ) libc_math_function( name = "fminimum_numf16", + additional_deps = [ + ":__support_math_fminimum_numf16", + ], ) libc_math_function(