[llvm-branch-commits] [libc] [llvm] [libc] Make fmaximum/fminimum functions use the emulated float128 type (PR #217390)
via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Wed Aug 19 10:05:38 PDT 2026
llvmorg-github-actions[bot] wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-libc
Author: Zorojuro (Sukumarsawant)
<details>
<summary>Changes</summary>
Stacked on #<!-- -->217389.
---
Patch is 27.44 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/217390.diff
30 Files Affected:
- (modified) libc/config/baremetal/aarch64/entrypoints.txt (+2-2)
- (modified) libc/config/baremetal/arm/entrypoints.txt (+2-2)
- (modified) libc/config/baremetal/riscv/entrypoints.txt (+2-2)
- (modified) libc/config/darwin/aarch64/entrypoints.txt (+2-2)
- (modified) libc/config/darwin/x86_64/entrypoints.txt (+2)
- (modified) libc/config/freebsd/x86_64/entrypoints.txt (+2-2)
- (modified) libc/config/gpu/amdgpu/entrypoints.txt (+2)
- (modified) libc/config/gpu/nvptx/entrypoints.txt (+2)
- (modified) libc/config/linux/aarch64/entrypoints.txt (+2-2)
- (modified) libc/config/linux/arm/entrypoints.txt (+2)
- (modified) libc/config/linux/riscv/entrypoints.txt (+2-2)
- (modified) libc/config/linux/x86_64/entrypoints.txt (+2-2)
- (modified) libc/config/windows/entrypoints.txt (+2)
- (modified) libc/shared/math/fmaximumf128.h (-6)
- (modified) libc/shared/math/fminimumf128.h (-6)
- (modified) libc/src/__support/math/CMakeLists.txt (+2-2)
- (modified) libc/src/__support/math/fmaximumf128.h (+4-7)
- (modified) libc/src/__support/math/fminimumf128.h (+4-7)
- (modified) libc/src/math/fmaximumf128.h (+5)
- (modified) libc/src/math/fminimumf128.h (+5)
- (modified) libc/src/math/generic/CMakeLists.txt (+2)
- (modified) libc/src/math/generic/fmaximumf128.cpp (+5-1)
- (modified) libc/src/math/generic/fminimumf128.cpp (+5-1)
- (modified) libc/test/shared/shared_math_constexpr_test.cpp (+6-6)
- (modified) libc/test/shared/shared_math_test.cpp (+4-5)
- (modified) libc/test/src/math/smoke/CMakeLists.txt (+2)
- (modified) libc/test/src/math/smoke/fmaximumf128_test.cpp (+5)
- (modified) libc/test/src/math/smoke/fminimumf128_test.cpp (+5)
- (modified) utils/bazel/llvm-project-overlay/libc/BUILD.bazel (+6-2)
- (modified) utils/bazel/llvm-project-overlay/libc/test/src/math/smoke/BUILD.bazel (+6)
``````````diff
diff --git a/libc/config/baremetal/aarch64/entrypoints.txt b/libc/config/baremetal/aarch64/entrypoints.txt
index e7dce9a59c3d3..9b2438dca9a38 100644
--- a/libc/config/baremetal/aarch64/entrypoints.txt
+++ b/libc/config/baremetal/aarch64/entrypoints.txt
@@ -434,6 +434,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.fmaximum_numf
libc.src.math.fmaximum_numl
libc.src.math.fmaximumf
+ libc.src.math.fmaximumf128
libc.src.math.fmaximuml
libc.src.math.fmaxl
libc.src.math.fmin
@@ -450,6 +451,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.fminimum_numf
libc.src.math.fminimum_numl
libc.src.math.fminimumf
+ libc.src.math.fminimumf128
libc.src.math.fminimuml
libc.src.math.fminl
libc.src.math.fmod
@@ -756,11 +758,9 @@ if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
libc.src.math.fmaximum_mag_numf128
libc.src.math.fmaximum_magf128
libc.src.math.fmaximum_numf128
- libc.src.math.fmaximumf128
libc.src.math.fminimum_mag_numf128
libc.src.math.fminimum_magf128
libc.src.math.fminimum_numf128
- libc.src.math.fminimumf128
libc.src.math.fmodf128
libc.src.math.fmulf128
libc.src.math.frexpf128
diff --git a/libc/config/baremetal/arm/entrypoints.txt b/libc/config/baremetal/arm/entrypoints.txt
index 67ca6750e65f7..e2d288d1f790d 100644
--- a/libc/config/baremetal/arm/entrypoints.txt
+++ b/libc/config/baremetal/arm/entrypoints.txt
@@ -446,6 +446,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.fmaximum_numf
libc.src.math.fmaximum_numl
libc.src.math.fmaximumf
+ libc.src.math.fmaximumf128
libc.src.math.fmaximuml
libc.src.math.fmaxl
libc.src.math.fmin
@@ -462,6 +463,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.fminimum_numf
libc.src.math.fminimum_numl
libc.src.math.fminimumf
+ libc.src.math.fminimumf128
libc.src.math.fminimuml
libc.src.math.fminl
libc.src.math.fmod
@@ -767,11 +769,9 @@ if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
libc.src.math.fmaximum_mag_numf128
libc.src.math.fmaximum_magf128
libc.src.math.fmaximum_numf128
- libc.src.math.fmaximumf128
libc.src.math.fminimum_mag_numf128
libc.src.math.fminimum_magf128
libc.src.math.fminimum_numf128
- libc.src.math.fminimumf128
libc.src.math.fmodf128
libc.src.math.fmulf128
libc.src.math.frexpf128
diff --git a/libc/config/baremetal/riscv/entrypoints.txt b/libc/config/baremetal/riscv/entrypoints.txt
index d38ad6e1c2232..9b359785f994c 100644
--- a/libc/config/baremetal/riscv/entrypoints.txt
+++ b/libc/config/baremetal/riscv/entrypoints.txt
@@ -442,6 +442,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.fmaximum_numf
libc.src.math.fmaximum_numl
libc.src.math.fmaximumf
+ libc.src.math.fmaximumf128
libc.src.math.fmaximuml
libc.src.math.fmaxl
libc.src.math.fmin
@@ -458,6 +459,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.fminimum_numf
libc.src.math.fminimum_numl
libc.src.math.fminimumf
+ libc.src.math.fminimumf128
libc.src.math.fminimuml
libc.src.math.fminl
libc.src.math.fmod
@@ -764,11 +766,9 @@ if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
libc.src.math.fmaximum_mag_numf128
libc.src.math.fmaximum_magf128
libc.src.math.fmaximum_numf128
- libc.src.math.fmaximumf128
libc.src.math.fminimum_mag_numf128
libc.src.math.fminimum_magf128
libc.src.math.fminimum_numf128
- libc.src.math.fminimumf128
# libc.src.math.fmodf128
libc.src.math.fmulf128
libc.src.math.frexpf128
diff --git a/libc/config/darwin/aarch64/entrypoints.txt b/libc/config/darwin/aarch64/entrypoints.txt
index b346b2a131a9a..cd88c643912c0 100644
--- a/libc/config/darwin/aarch64/entrypoints.txt
+++ b/libc/config/darwin/aarch64/entrypoints.txt
@@ -253,6 +253,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.fmaximum_numf
libc.src.math.fmaximum_numl
libc.src.math.fmaximumf
+ libc.src.math.fmaximumf128
libc.src.math.fmaximuml
libc.src.math.fmaxl
libc.src.math.fmin
@@ -269,6 +270,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.fminimum_numf
libc.src.math.fminimum_numl
libc.src.math.fminimumf
+ libc.src.math.fminimumf128
libc.src.math.fminimuml
libc.src.math.fminl
libc.src.math.fmod
@@ -576,11 +578,9 @@ if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
libc.src.math.fmaximum_mag_numf128
libc.src.math.fmaximum_magf128
libc.src.math.fmaximum_numf128
- libc.src.math.fmaximumf128
libc.src.math.fminimum_mag_numf128
libc.src.math.fminimum_magf128
libc.src.math.fminimum_numf128
- libc.src.math.fminimumf128
libc.src.math.fmodf128
libc.src.math.fmulf128
libc.src.math.frexpf128
diff --git a/libc/config/darwin/x86_64/entrypoints.txt b/libc/config/darwin/x86_64/entrypoints.txt
index 52ee843d106c3..55eed1c456f08 100644
--- a/libc/config/darwin/x86_64/entrypoints.txt
+++ b/libc/config/darwin/x86_64/entrypoints.txt
@@ -158,10 +158,12 @@ set(TARGET_LIBM_ENTRYPOINTS
#libc.src.math.fmax
#libc.src.math.fmaxf
#libc.src.math.fmaxf128
+ #libc.src.math.fmaximumf128
#libc.src.math.fmaxl
#libc.src.math.fmin
#libc.src.math.fminf
#libc.src.math.fminf128
+ #libc.src.math.fminimumf128
#libc.src.math.fminl
#libc.src.math.fmod
#libc.src.math.fmodf
diff --git a/libc/config/freebsd/x86_64/entrypoints.txt b/libc/config/freebsd/x86_64/entrypoints.txt
index c51949b135c12..fdf6b17103e35 100644
--- a/libc/config/freebsd/x86_64/entrypoints.txt
+++ b/libc/config/freebsd/x86_64/entrypoints.txt
@@ -183,6 +183,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.fmaxl
libc.src.math.fmaximum
libc.src.math.fmaximumf
+ libc.src.math.fmaximumf128
libc.src.math.fmaximuml
libc.src.math.fmaximum_num
libc.src.math.fmaximum_numf
@@ -195,6 +196,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.fmaximum_mag_numl
libc.src.math.fminimum
libc.src.math.fminimumf
+ libc.src.math.fminimumf128
libc.src.math.fminimuml
libc.src.math.fminimum_num
libc.src.math.fminimum_numf
@@ -515,11 +517,9 @@ if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
libc.src.math.fmaximum_mag_numf128
libc.src.math.fmaximum_magf128
libc.src.math.fmaximum_numf128
- libc.src.math.fmaximumf128
libc.src.math.fminimum_mag_numf128
libc.src.math.fminimum_magf128
libc.src.math.fminimum_numf128
- libc.src.math.fminimumf128
libc.src.math.fmodf128
libc.src.math.fmulf128
libc.src.math.frexpf128
diff --git a/libc/config/gpu/amdgpu/entrypoints.txt b/libc/config/gpu/amdgpu/entrypoints.txt
index 1b68b9fdaa75c..63eceda56c7b1 100644
--- a/libc/config/gpu/amdgpu/entrypoints.txt
+++ b/libc/config/gpu/amdgpu/entrypoints.txt
@@ -372,6 +372,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.fmaxf128
libc.src.math.fmaximum
libc.src.math.fmaximumf
+ libc.src.math.fmaximumf128
libc.src.math.fmaximuml
libc.src.math.fmaximum_mag
libc.src.math.fmaximum_magf
@@ -388,6 +389,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.fminf128
libc.src.math.fminimum
libc.src.math.fminimumf
+ libc.src.math.fminimumf128
libc.src.math.fminimuml
libc.src.math.fminimum_mag
libc.src.math.fminimum_magf
diff --git a/libc/config/gpu/nvptx/entrypoints.txt b/libc/config/gpu/nvptx/entrypoints.txt
index 2d372c34047c1..8122738f1711f 100644
--- a/libc/config/gpu/nvptx/entrypoints.txt
+++ b/libc/config/gpu/nvptx/entrypoints.txt
@@ -368,6 +368,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.fmaxf128
libc.src.math.fmaximum
libc.src.math.fmaximumf
+ libc.src.math.fmaximumf128
libc.src.math.fmaximuml
libc.src.math.fmaximum_mag
libc.src.math.fmaximum_magf
@@ -384,6 +385,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.fminf128
libc.src.math.fminimum
libc.src.math.fminimumf
+ libc.src.math.fminimumf128
libc.src.math.fminimuml
libc.src.math.fminimum_mag
libc.src.math.fminimum_magf
diff --git a/libc/config/linux/aarch64/entrypoints.txt b/libc/config/linux/aarch64/entrypoints.txt
index 8c41024e3904f..7cce5ac0ea908 100644
--- a/libc/config/linux/aarch64/entrypoints.txt
+++ b/libc/config/linux/aarch64/entrypoints.txt
@@ -593,6 +593,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.fmaximum_numf
libc.src.math.fmaximum_numl
libc.src.math.fmaximumf
+ libc.src.math.fmaximumf128
libc.src.math.fmaximuml
libc.src.math.fmaxl
libc.src.math.fmin
@@ -609,6 +610,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.fminimum_numf
libc.src.math.fminimum_numl
libc.src.math.fminimumf
+ libc.src.math.fminimumf128
libc.src.math.fminimuml
libc.src.math.fminl
libc.src.math.fmod
@@ -909,11 +911,9 @@ if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
libc.src.math.fmaximum_mag_numf128
libc.src.math.fmaximum_magf128
libc.src.math.fmaximum_numf128
- libc.src.math.fmaximumf128
libc.src.math.fminimum_mag_numf128
libc.src.math.fminimum_magf128
libc.src.math.fminimum_numf128
- libc.src.math.fminimumf128
libc.src.math.fmodf128
libc.src.math.fmulf128
libc.src.math.frexpf128
diff --git a/libc/config/linux/arm/entrypoints.txt b/libc/config/linux/arm/entrypoints.txt
index c4fa17986e9a7..5adabaac76fbf 100644
--- a/libc/config/linux/arm/entrypoints.txt
+++ b/libc/config/linux/arm/entrypoints.txt
@@ -421,6 +421,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.fmaximum_numf
libc.src.math.fmaximum_numl
libc.src.math.fmaximumf
+ libc.src.math.fmaximumf128
libc.src.math.fmaximuml
libc.src.math.fmaxl
libc.src.math.fmin
@@ -437,6 +438,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.fminimum_numf
libc.src.math.fminimum_numl
libc.src.math.fminimumf
+ libc.src.math.fminimumf128
libc.src.math.fminimuml
libc.src.math.fminl
libc.src.math.fmod
diff --git a/libc/config/linux/riscv/entrypoints.txt b/libc/config/linux/riscv/entrypoints.txt
index 2d311be11f5f4..6f3df6cadae37 100644
--- a/libc/config/linux/riscv/entrypoints.txt
+++ b/libc/config/linux/riscv/entrypoints.txt
@@ -661,6 +661,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.fmaximum_numf
libc.src.math.fmaximum_numl
libc.src.math.fmaximumf
+ libc.src.math.fmaximumf128
libc.src.math.fmaximuml
libc.src.math.fmaxl
libc.src.math.fmin
@@ -677,6 +678,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.fminimum_numf
libc.src.math.fminimum_numl
libc.src.math.fminimumf
+ libc.src.math.fminimumf128
libc.src.math.fminimuml
libc.src.math.fminl
libc.src.math.fmod
@@ -994,11 +996,9 @@ if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
libc.src.math.fmaximum_mag_numf128
libc.src.math.fmaximum_magf128
libc.src.math.fmaximum_numf128
- libc.src.math.fmaximumf128
libc.src.math.fminimum_mag_numf128
libc.src.math.fminimum_magf128
libc.src.math.fminimum_numf128
- libc.src.math.fminimumf128
libc.src.math.fmodf128
libc.src.math.fmulf128
libc.src.math.frexpf128
diff --git a/libc/config/linux/x86_64/entrypoints.txt b/libc/config/linux/x86_64/entrypoints.txt
index f8a6e4ac016d0..8101d65fa9880 100644
--- a/libc/config/linux/x86_64/entrypoints.txt
+++ b/libc/config/linux/x86_64/entrypoints.txt
@@ -671,6 +671,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.fmaximum_numf
libc.src.math.fmaximum_numl
libc.src.math.fmaximumf
+ libc.src.math.fmaximumf128
libc.src.math.fmaximuml
libc.src.math.fmaxl
libc.src.math.fmin
@@ -687,6 +688,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.fminimum_numf
libc.src.math.fminimum_numl
libc.src.math.fminimumf
+ libc.src.math.fminimumf128
libc.src.math.fminimuml
libc.src.math.fminl
libc.src.math.fmod
@@ -1004,11 +1006,9 @@ if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
libc.src.math.fmaximum_mag_numf128
libc.src.math.fmaximum_magf128
libc.src.math.fmaximum_numf128
- libc.src.math.fmaximumf128
libc.src.math.fminimum_mag_numf128
libc.src.math.fminimum_magf128
libc.src.math.fminimum_numf128
- libc.src.math.fminimumf128
libc.src.math.fmodf128
libc.src.math.fmulf128
libc.src.math.frexpf128
diff --git a/libc/config/windows/entrypoints.txt b/libc/config/windows/entrypoints.txt
index c3efab38cd60c..a56ede9effa36 100644
--- a/libc/config/windows/entrypoints.txt
+++ b/libc/config/windows/entrypoints.txt
@@ -216,6 +216,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.fmaxl
libc.src.math.fmaximum
libc.src.math.fmaximumf
+ libc.src.math.fmaximumf128
libc.src.math.fmaximuml
libc.src.math.fmaximum_num
libc.src.math.fmaximum_numf
@@ -228,6 +229,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.fmaximum_mag_numl
libc.src.math.fminimum
libc.src.math.fminimumf
+ libc.src.math.fminimumf128
libc.src.math.fminimuml
libc.src.math.fminimum_num
libc.src.math.fminimum_numf
diff --git a/libc/shared/math/fmaximumf128.h b/libc/shared/math/fmaximumf128.h
index 12b53d74e4f7e..af6beefbb99fb 100644
--- a/libc/shared/math/fmaximumf128.h
+++ b/libc/shared/math/fmaximumf128.h
@@ -9,10 +9,6 @@
#ifndef LLVM_LIBC_SHARED_MATH_FMAXIMUMF128_H
#define LLVM_LIBC_SHARED_MATH_FMAXIMUMF128_H
-#include "include/llvm-libc-types/float128.h"
-
-#ifdef LIBC_TYPES_HAS_NATIVE_FLOAT128
-
#include "shared/libc_common.h"
#include "src/__support/math/fmaximumf128.h"
@@ -24,6 +20,4 @@ using math::fmaximumf128;
} // namespace shared
} // namespace LIBC_NAMESPACE_DECL
-#endif // LIBC_TYPES_HAS_NATIVE_FLOAT128
-
#endif // LLVM_LIBC_SHARED_MATH_FMAXIMUMF128_H
diff --git a/libc/shared/math/fminimumf128.h b/libc/shared/math/fminimumf128.h
index 1f31c05d73c15..2604222a7e74f 100644
--- a/libc/shared/math/fminimumf128.h
+++ b/libc/shared/math/fminimumf128.h
@@ -9,10 +9,6 @@
#ifndef LLVM_LIBC_SHARED_MATH_FMINIMUMF128_H
#define LLVM_LIBC_SHARED_MATH_FMINIMUMF128_H
-#include "include/llvm-libc-types/float128.h"
-
-#ifdef LIBC_TYPES_HAS_NATIVE_FLOAT128
-
#include "shared/libc_common.h"
#include "src/__support/math/fminimumf128.h"
@@ -24,6 +20,4 @@ using math::fminimumf128;
} // namespace shared
} // namespace LIBC_NAMESPACE_DECL
-#endif // LIBC_TYPES_HAS_NATIVE_FLOAT128
-
#endif // LLVM_LIBC_SHARED_MATH_FMINIMUMF128_H
diff --git a/libc/src/__support/math/CMakeLists.txt b/libc/src/__support/math/CMakeLists.txt
index 9ec3f8eb3242e..355009a146654 100644
--- a/libc/src/__support/math/CMakeLists.txt
+++ b/libc/src/__support/math/CMakeLists.txt
@@ -899,7 +899,7 @@ add_header_library(
HDRS
fmaximumf128.h
DEPENDS
- libc.include.llvm-libc-types.float128
+ libc.src.__support.FPUtil.float128
libc.src.__support.FPUtil.basic_operations
libc.src.__support.macros.config
)
@@ -1175,7 +1175,7 @@ add_header_library(
HDRS
fminimumf128.h
DEPENDS
- libc.include.llvm-libc-types.float128
+ libc.src.__support.FPUtil.float128
libc.src.__support.FPUtil.basic_operations
libc.src.__support.macros.config
)
diff --git a/libc/src/__support/math/fmaximumf128.h b/libc/src/__support/math/fmaximumf128.h
index 136b16419cd58..91326ef27887f 100644
--- a/libc/src/__support/math/fmaximumf128.h
+++ b/libc/src/__support/math/fmaximumf128.h
@@ -9,23 +9,20 @@
#ifndef LLVM_LIBC_SRC___SUPPORT_MATH_FMAXIMUMF128_H
#define LLVM_LIBC_SRC___SUPPORT_MATH_FMAXIMUMF128_H
-#include "include/llvm-libc-types/float128.h"
-
-#ifdef LIBC_TYPES_HAS_NATIVE_FLOAT128
-
#include "src/__support/FPUtil/BasicOperations.h"
+#include "src/__support/FPUtil/float128.h"
#include "src/__support/macros/config.h"
namespace LIBC_NAMESPACE_DECL {
namespace math {
-LIBC_INLINE constexpr float128 fmaximumf128(float128 x, float128 y) {
+using LIBC_NAMESPACE::fputil::Float128;
+
+LIBC_INLINE constexpr Float128 fmaximumf128(Float128 x, Float128 y) {
return fputil::fmaximum(x, y);
}
} // namespace math
} // namespace LIBC_NAMESPACE_DECL
-#endif // LIBC_TYPES_HAS_NATIVE_FLOAT128
-
#endif // LLVM_LIBC_SRC___SUPPORT_MATH_FMAXIMUMF128_H
diff --git a/libc/src/__support/math/fminimumf128.h b/libc/src/__support/math/fminimumf128.h
index cfbe36ba1fb81..6a6ed675ffa27 100644
--- a/libc/src/__support/math/fminimumf128.h
+++ b/libc/src/__support/math/fminimumf128.h
@@ -9,23 +9,20 @@
#ifndef LLVM_LIBC_SRC___SUPPORT_MATH_FMINIMUMF128_H
#define LLVM_LIBC_SRC___SUPPORT_MATH_FMINIMUMF128_H
-#include "include/llvm-libc-types/float128.h"
-
-#ifdef LIBC_TYPES_HAS_NATIVE_FLOAT128
-
#include "src/__support/FPUtil/BasicOperations.h"
+#include "src/__support/FPUtil/float128.h"
#include "src/__support/macros/config.h"
namespace LIBC_NAMESPACE_DECL {
namespace math {
-LIBC_INLINE constexpr float128 fminimumf128(float128 x, float128 y) {
+using LIBC_NAMESPACE::fputil::Float128;
+
+LIBC_INLINE constexpr Float128 fminimumf128(Float128 x, Float128 y) {
return fputil::fminimum(x, y);
}
} // namespace math
} // namespace LIBC_NAMESPACE_DECL
-#endif // LIBC_TYPES_HAS_NATIVE_FLOAT128
-
#endif // LLVM_LIBC_SRC___SUPPORT_MATH_FMINIMUMF128_H
diff --git a/libc/src/math/fmaximumf128.h b/libc/src/math/fmaximumf128.h
index 3cc6fa023c797..5eb3451448047 100644
--- a/libc/src/math/fmaximumf128.h
+++ b/libc/src/math/fmaximumf128.h
@@ -10,11 +10,16 @@
#ifndef LLVM_LIBC_SRC_MATH_FMAXIMUMF128_H
#define LLVM_LIBC_SRC_MATH_FMAXIMUMF128_H
+#include "src/__support/FPUtil/float128.h"
#include "src/__support/macros/config.h"
#include "src/__support/macros/properties/types.h"
namespace LIBC_NAMESPACE_DECL {
+#ifndef LIBC_TYPES_HAS_NATIVE_FLOAT128
+using float128 = LIBC_NAMESPACE::fputil::Float128;
+#endif // LIBC_TYPES_HAS_NATIVE_FLOAT128
+
float128 fmaximumf128(float128 x, float128 y);
} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/fminimumf128.h b/libc/src/math/fminimumf128.h
index d507766059909..18c5d4d8c1672 100644
--- a/libc/src/math/fminimumf128.h
+++ b/libc/src/math/fminimumf128.h
@@ -10,11 +10,16 @@
#ifndef LLVM_LIBC_SRC_MATH_FMINIMUMF128_H
#define LLVM_LIBC_SRC_MATH_FMINIMUMF128_H
+#include "src/__support/FPUtil/float128.h"
#include "src/__support/macros/config.h"
#include "src/__support/macros/properties/types.h"
namespace LIBC_NAMESPACE_DECL {
+#ifndef LIBC_TYPES_HAS_NATIVE_FLOAT128
+using float128 = LIBC_NAMESPACE::fputil::Float128;
+#endif // LIBC_TYPES_HAS_NATIVE_FLOAT128
+
float128 fminimumf128(float128 x, float128 y);
} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/CMakeLists.txt b/libc/src/math/generic/CMakeLists.txt
index 46265a187ecd1..b9dfebbc23009 100644
--- a/libc/src/math/generic/CMakeLists.txt
+++ b/libc/src/math/generic/CMakeLists.txt
@@ -2166,6 +2166,7 @@ add_entrypoint_object(
HDRS
../fmaximumf128.h
DEPENDS
+ libc.src.__support.CPP.bit
libc.src.__support.math.fmaximumf128
)
@@ -2406,6 +2407,7 @@ add_entrypoint_object(
HDRS
../fminimumf128.h
DEPENDS
+ libc.src.__support.CPP.bit
libc.src.__support.math.fminimumf128
)
diff --git a/libc/src/math/generic/fmaximumf128.cpp b/libc/src/math/generic/fmaximumf128.cpp
index 88b698c19ccea..889cdbf4c35dc 100644
--- a/libc/src/math/generic/fmaximumf128.cpp
+++ b/libc/src/math/generic/fmaximumf128.cpp
@@ -7,12 +7,16 @@
//===----------------------------------------------------------------------===//
#include "src/math/fmaximumf128.h"
+#include "src/__support/CPP/bit.h"
#include "src/__support/math/fmaximumf128.h"
namespace LIBC_NAMESPACE_DECL {
+using LIBC_NAMESPACE::fputil::Float128;
+
LLVM_LIBC_FUNCTION(float128, fmaximumf128, (float128 x, float128 y)) {
- return math::fmaximumf128(x, y);
+ return cpp::bit_cast<float128>(math::fmaximumf128(
+ cpp::bit_cast<Float128>(x), cpp::bit_cast<Float128>(y)));
}
} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fminimumf128.cpp b/libc/src/math/generic/fminimumf128.cpp
index b8fb50f0d424c..77c8504d49519 100644
--- a/libc/src/math/generic/fminimumf128.cpp
+++ b/libc/src/math/generic/fminimumf128.cpp
@@ -7,12 +7,16 @@
//===----------------------------------------------------------------------===//
#include "src/math/fminimumf128.h"
+#include "src/__support/CPP/bit.h"
#include "src/__support/math/fminimumf128.h"
namespace LIBC_NAMESPACE_DECL {
+using LIBC_NAMESPACE::fputil::Float128;
+
LLVM_LIBC_FUNCTION(float128, fminimumf128, (float128 x, float128 y)) {
- return math::fminimumf128(x, y);
+ return cpp::bit_cast<float128>(...
[truncated]
``````````
</details>
https://github.com/llvm/llvm-project/pull/217390
More information about the llvm-branch-commits
mailing list