[libc-commits] [libc] [llvm] [libc][math] Refactor fmaximum_num-fminimum_num family to header-only (PR #194562)
via libc-commits
libc-commits at lists.llvm.org
Tue Apr 28 00:23:56 PDT 2026
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-libc
Author: Anonmiraj (AnonMiraj)
<details>
<summary>Changes</summary>
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
---
Patch is 57.47 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/194562.diff
44 Files Affected:
- (modified) libc/shared/math.h (+12)
- (added) libc/shared/math/fmaximum_num.h (+23)
- (added) libc/shared/math/fmaximum_numbf16.h (+23)
- (added) libc/shared/math/fmaximum_numf.h (+23)
- (added) libc/shared/math/fmaximum_numf128.h (+29)
- (added) libc/shared/math/fmaximum_numf16.h (+29)
- (added) libc/shared/math/fmaximum_numl.h (+23)
- (added) libc/shared/math/fminimum_num.h (+23)
- (added) libc/shared/math/fminimum_numbf16.h (+23)
- (added) libc/shared/math/fminimum_numf.h (+23)
- (added) libc/shared/math/fminimum_numf128.h (+29)
- (added) libc/shared/math/fminimum_numf16.h (+29)
- (added) libc/shared/math/fminimum_numl.h (+23)
- (modified) libc/src/__support/FPUtil/BasicOperations.h (+1-1)
- (modified) libc/src/__support/math/CMakeLists.txt (+130)
- (added) libc/src/__support/math/fmaximum_num.h (+25)
- (added) libc/src/__support/math/fmaximum_numbf16.h (+26)
- (added) libc/src/__support/math/fmaximum_numf.h (+25)
- (added) libc/src/__support/math/fmaximum_numf128.h (+31)
- (added) libc/src/__support/math/fmaximum_numf16.h (+31)
- (added) libc/src/__support/math/fmaximum_numl.h (+25)
- (added) libc/src/__support/math/fminimum_num.h (+25)
- (added) libc/src/__support/math/fminimum_numbf16.h (+26)
- (added) libc/src/__support/math/fminimum_numf.h (+25)
- (added) libc/src/__support/math/fminimum_numf128.h (+31)
- (added) libc/src/__support/math/fminimum_numf16.h (+31)
- (added) libc/src/__support/math/fminimum_numl.h (+25)
- (modified) libc/src/math/generic/CMakeLists.txt (+12-38)
- (modified) libc/src/math/generic/fmaximum_num.cpp (+2-4)
- (modified) libc/src/math/generic/fmaximum_numbf16.cpp (+2-5)
- (modified) libc/src/math/generic/fmaximum_numf.cpp (+2-4)
- (modified) libc/src/math/generic/fmaximum_numf128.cpp (+2-4)
- (modified) libc/src/math/generic/fmaximum_numf16.cpp (+2-4)
- (modified) libc/src/math/generic/fmaximum_numl.cpp (+2-4)
- (modified) libc/src/math/generic/fminimum_num.cpp (+2-4)
- (modified) libc/src/math/generic/fminimum_numbf16.cpp (+2-5)
- (modified) libc/src/math/generic/fminimum_numf.cpp (+2-4)
- (modified) libc/src/math/generic/fminimum_numf128.cpp (+2-4)
- (modified) libc/src/math/generic/fminimum_numf16.cpp (+2-4)
- (modified) libc/src/math/generic/fminimum_numl.cpp (+2-4)
- (modified) libc/test/shared/CMakeLists.txt (+24)
- (modified) libc/test/shared/shared_math_constexpr_test.cpp (+22)
- (modified) libc/test/shared/shared_math_test.cpp (+18)
- (modified) utils/bazel/llvm-project-overlay/libc/BUILD.bazel (+176-6)
``````````diff
diff --git a/libc/shared/math.h b/libc/shared/math.h
index 85ba47731f9d4..6d2b573244c0c 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 0000000000000..0a28c3971f298
--- /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 0000000000000..1c9232444c0ee
--- /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 0000000000000..142fd2dbb1bf1
--- /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 0000000000000..4bdd100dcc2d6
--- /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 0000000000000..ffd92eb1d9df8
--- /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 0000000000000..79553902ffdfb
--- /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 0000000000000..31dc5d41a4f08
--- /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 0000000000000..d875d20c60c16
--- /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 0000000000000..2fa1beba3ed60
--- /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 0000000000000..798040f12b309
--- /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 0000000000000..093e9d640d2a2
--- /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 0000000000000..d1663e1f7bc92
--- /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 7d7688dc21a03..99e3f0d43d6cc 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 <typename T, cpp::enable_if_t<cpp::is_floating_point_v<T>, int> = 0>
-LIBC_INLINE T fminimum_num(T x, T y) {
+LIBC_INLINE constexpr T fminimum_num(T x, T y) {
FPBits<T> 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 7a25cd9fa0342..8a9cb3b647c72 100644
--- a/libc/src/__support/math/CMakeLists.txt
+++ b/libc/src/__support/math/CMakeLists.txt
@@ -894,6 +894,71 @@ 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
@@ -1015,6 +1080,71 @@ add_header_library(
libc.src.__support.FPUtil.basic_operations
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
diff --git a/libc/src/__support/math/fmaximum_num.h b/libc/src/__support/math/fmaximum_num.h
new file mode 100644
index 0000000000000..fa20551a23e74
--- /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 0000000000000..673b8a8af1b87
--- /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 0000000000000..436492d5f676d
--- /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 0000000000000..b3fc57031d74f
--- /dev/null
+++ b/libc/src/__support/math/fmaximum_numf128.h
@@ -0,0 +1,31 @@
+//===-- Implementation head...
[truncated]
``````````
</details>
https://github.com/llvm/llvm-project/pull/194562
More information about the libc-commits
mailing list