[libc] Make fmaximum_mag/fminimum_mag functions use the emulated float128 type - #217539
Open
Sukumarsawant wants to merge 5 commits into
Open
Conversation
Sukumarsawant
marked this pull request as ready for review
August 20, 2026 07:52
Sukumarsawant
requested review from
a team,
kaladron and
labath
as code owners
August 20, 2026 07:52
|
@llvm/pr-subscribers-clangd @llvm/pr-subscribers-libc Author: Zorojuro (Sukumarsawant) ChangesPatch is 30.30 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/217539.diff 32 Files Affected:
diff --git a/libc/config/baremetal/aarch64/entrypoints.txt b/libc/config/baremetal/aarch64/entrypoints.txt
index ab4c600cf59b9..2d10fdf5f83eb 100644
--- a/libc/config/baremetal/aarch64/entrypoints.txt
+++ b/libc/config/baremetal/aarch64/entrypoints.txt
@@ -429,6 +429,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.fmaximum_mag_numf
libc.src.math.fmaximum_mag_numl
libc.src.math.fmaximum_magf
+ libc.src.math.fmaximum_magf128
libc.src.math.fmaximum_magl
libc.src.math.fmaximum_num
libc.src.math.fmaximum_numf
@@ -447,6 +448,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.fminimum_mag_numf
libc.src.math.fminimum_mag_numl
libc.src.math.fminimum_magf
+ libc.src.math.fminimum_magf128
libc.src.math.fminimum_magl
libc.src.math.fminimum_num
libc.src.math.fminimum_numf
@@ -758,9 +760,7 @@ if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
libc.src.math.fdivf128
libc.src.math.ffmaf128
libc.src.math.fmaximum_mag_numf128
- libc.src.math.fmaximum_magf128
libc.src.math.fminimum_mag_numf128
- libc.src.math.fminimum_magf128
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 fe8fac859e80e..5dfa7138184a9 100644
--- a/libc/config/baremetal/arm/entrypoints.txt
+++ b/libc/config/baremetal/arm/entrypoints.txt
@@ -441,6 +441,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.fmaximum_mag_numf
libc.src.math.fmaximum_mag_numl
libc.src.math.fmaximum_magf
+ libc.src.math.fmaximum_magf128
libc.src.math.fmaximum_magl
libc.src.math.fmaximum_num
libc.src.math.fmaximum_numf
@@ -459,6 +460,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.fminimum_mag_numf
libc.src.math.fminimum_mag_numl
libc.src.math.fminimum_magf
+ libc.src.math.fminimum_magf128
libc.src.math.fminimum_magl
libc.src.math.fminimum_num
libc.src.math.fminimum_numf
@@ -769,9 +771,7 @@ if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
libc.src.math.fdivf128
libc.src.math.ffmaf128
libc.src.math.fmaximum_mag_numf128
- libc.src.math.fmaximum_magf128
libc.src.math.fminimum_mag_numf128
- libc.src.math.fminimum_magf128
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 5a0c212826ed8..380db99cecb2b 100644
--- a/libc/config/baremetal/riscv/entrypoints.txt
+++ b/libc/config/baremetal/riscv/entrypoints.txt
@@ -437,6 +437,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.fmaximum_mag_numf
libc.src.math.fmaximum_mag_numl
libc.src.math.fmaximum_magf
+ libc.src.math.fmaximum_magf128
libc.src.math.fmaximum_magl
libc.src.math.fmaximum_num
libc.src.math.fmaximum_numf
@@ -455,6 +456,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.fminimum_mag_numf
libc.src.math.fminimum_mag_numl
libc.src.math.fminimum_magf
+ libc.src.math.fminimum_magf128
libc.src.math.fminimum_magl
libc.src.math.fminimum_num
libc.src.math.fminimum_numf
@@ -766,9 +768,7 @@ if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
libc.src.math.fdivf128
libc.src.math.ffmaf128
libc.src.math.fmaximum_mag_numf128
- libc.src.math.fmaximum_magf128
libc.src.math.fminimum_mag_numf128
- libc.src.math.fminimum_magf128
# 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 70eed9bcd3e5e..42c20685d588b 100644
--- a/libc/config/darwin/aarch64/entrypoints.txt
+++ b/libc/config/darwin/aarch64/entrypoints.txt
@@ -248,6 +248,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.fmaximum_mag_numf
libc.src.math.fmaximum_mag_numl
libc.src.math.fmaximum_magf
+ libc.src.math.fmaximum_magf128
libc.src.math.fmaximum_magl
libc.src.math.fmaximum_num
libc.src.math.fmaximum_numf
@@ -266,6 +267,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.fminimum_mag_numf
libc.src.math.fminimum_mag_numl
libc.src.math.fminimum_magf
+ libc.src.math.fminimum_magf128
libc.src.math.fminimum_magl
libc.src.math.fminimum_num
libc.src.math.fminimum_numf
@@ -578,9 +580,7 @@ if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
libc.src.math.fdivf128
libc.src.math.ffmaf128
libc.src.math.fmaximum_mag_numf128
- libc.src.math.fmaximum_magf128
libc.src.math.fminimum_mag_numf128
- libc.src.math.fminimum_magf128
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 6932dc5ff8d10..90e6134f72896 100644
--- a/libc/config/darwin/x86_64/entrypoints.txt
+++ b/libc/config/darwin/x86_64/entrypoints.txt
@@ -158,12 +158,14 @@ set(TARGET_LIBM_ENTRYPOINTS
#libc.src.math.fmax
#libc.src.math.fmaxf
#libc.src.math.fmaxf128
+ #libc.src.math.fmaximum_magf128
#libc.src.math.fmaximum_numf128
#libc.src.math.fmaximumf128
#libc.src.math.fmaxl
#libc.src.math.fmin
#libc.src.math.fminf
#libc.src.math.fminf128
+ #libc.src.math.fminimum_magf128
#libc.src.math.fminimum_numf128
#libc.src.math.fminimumf128
#libc.src.math.fminl
diff --git a/libc/config/freebsd/x86_64/entrypoints.txt b/libc/config/freebsd/x86_64/entrypoints.txt
index 32dc32a980675..7db5208705dd5 100644
--- a/libc/config/freebsd/x86_64/entrypoints.txt
+++ b/libc/config/freebsd/x86_64/entrypoints.txt
@@ -191,6 +191,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.fmaximum_numl
libc.src.math.fmaximum_mag
libc.src.math.fmaximum_magf
+ libc.src.math.fmaximum_magf128
libc.src.math.fmaximum_magl
libc.src.math.fmaximum_mag_num
libc.src.math.fmaximum_mag_numf
@@ -205,6 +206,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.fminimum_numl
libc.src.math.fminimum_mag
libc.src.math.fminimum_magf
+ libc.src.math.fminimum_magf128
libc.src.math.fminimum_magl
libc.src.math.fminimum_mag_num
libc.src.math.fminimum_mag_numf
@@ -517,9 +519,7 @@ if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
libc.src.math.fdivf128
libc.src.math.ffmaf128
libc.src.math.fmaximum_mag_numf128
- libc.src.math.fmaximum_magf128
libc.src.math.fminimum_mag_numf128
- libc.src.math.fminimum_magf128
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 889a0d301bff7..8c3b3e5178b31 100644
--- a/libc/config/gpu/amdgpu/entrypoints.txt
+++ b/libc/config/gpu/amdgpu/entrypoints.txt
@@ -376,6 +376,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.fmaximuml
libc.src.math.fmaximum_mag
libc.src.math.fmaximum_magf
+ libc.src.math.fmaximum_magf128
libc.src.math.fmaximum_magl
libc.src.math.fmaximum_mag_num
libc.src.math.fmaximum_mag_numf
@@ -394,6 +395,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.fminimuml
libc.src.math.fminimum_mag
libc.src.math.fminimum_magf
+ libc.src.math.fminimum_magf128
libc.src.math.fminimum_magl
libc.src.math.fminimum_mag_num
libc.src.math.fminimum_mag_numf
diff --git a/libc/config/gpu/nvptx/entrypoints.txt b/libc/config/gpu/nvptx/entrypoints.txt
index 29d9f299d03a8..dd71679f3ba37 100644
--- a/libc/config/gpu/nvptx/entrypoints.txt
+++ b/libc/config/gpu/nvptx/entrypoints.txt
@@ -372,6 +372,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.fmaximuml
libc.src.math.fmaximum_mag
libc.src.math.fmaximum_magf
+ libc.src.math.fmaximum_magf128
libc.src.math.fmaximum_magl
libc.src.math.fmaximum_mag_num
libc.src.math.fmaximum_mag_numf
@@ -390,6 +391,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.fminimuml
libc.src.math.fminimum_mag
libc.src.math.fminimum_magf
+ libc.src.math.fminimum_magf128
libc.src.math.fminimum_magl
libc.src.math.fminimum_mag_num
libc.src.math.fminimum_mag_numf
diff --git a/libc/config/linux/aarch64/entrypoints.txt b/libc/config/linux/aarch64/entrypoints.txt
index 594e8a0ca0a3d..53c34096107e2 100644
--- a/libc/config/linux/aarch64/entrypoints.txt
+++ b/libc/config/linux/aarch64/entrypoints.txt
@@ -588,6 +588,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.fmaximum_mag_numf
libc.src.math.fmaximum_mag_numl
libc.src.math.fmaximum_magf
+ libc.src.math.fmaximum_magf128
libc.src.math.fmaximum_magl
libc.src.math.fmaximum_num
libc.src.math.fmaximum_numf
@@ -606,6 +607,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.fminimum_mag_numf
libc.src.math.fminimum_mag_numl
libc.src.math.fminimum_magf
+ libc.src.math.fminimum_magf128
libc.src.math.fminimum_magl
libc.src.math.fminimum_num
libc.src.math.fminimum_numf
@@ -911,9 +913,7 @@ if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
libc.src.math.fdivf128
libc.src.math.ffmaf128
libc.src.math.fmaximum_mag_numf128
- libc.src.math.fmaximum_magf128
libc.src.math.fminimum_mag_numf128
- libc.src.math.fminimum_magf128
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 6c0366549c574..dcee44297c8bf 100644
--- a/libc/config/linux/arm/entrypoints.txt
+++ b/libc/config/linux/arm/entrypoints.txt
@@ -416,6 +416,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.fmaximum_mag_numf
libc.src.math.fmaximum_mag_numl
libc.src.math.fmaximum_magf
+ libc.src.math.fmaximum_magf128
libc.src.math.fmaximum_magl
libc.src.math.fmaximum_num
libc.src.math.fmaximum_numf
@@ -434,6 +435,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.fminimum_mag_numf
libc.src.math.fminimum_mag_numl
libc.src.math.fminimum_magf
+ libc.src.math.fminimum_magf128
libc.src.math.fminimum_magl
libc.src.math.fminimum_num
libc.src.math.fminimum_numf
diff --git a/libc/config/linux/riscv/entrypoints.txt b/libc/config/linux/riscv/entrypoints.txt
index 28ee04a8407c0..1387ba6a17fe6 100644
--- a/libc/config/linux/riscv/entrypoints.txt
+++ b/libc/config/linux/riscv/entrypoints.txt
@@ -656,6 +656,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.fmaximum_mag_numf
libc.src.math.fmaximum_mag_numl
libc.src.math.fmaximum_magf
+ libc.src.math.fmaximum_magf128
libc.src.math.fmaximum_magl
libc.src.math.fmaximum_num
libc.src.math.fmaximum_numf
@@ -674,6 +675,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.fminimum_mag_numf
libc.src.math.fminimum_mag_numl
libc.src.math.fminimum_magf
+ libc.src.math.fminimum_magf128
libc.src.math.fminimum_magl
libc.src.math.fminimum_num
libc.src.math.fminimum_numf
@@ -996,9 +998,7 @@ if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
libc.src.math.fdivf128
libc.src.math.ffmaf128
libc.src.math.fmaximum_mag_numf128
- libc.src.math.fmaximum_magf128
libc.src.math.fminimum_mag_numf128
- libc.src.math.fminimum_magf128
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 23ef9d79cc54b..289f04f3edf62 100644
--- a/libc/config/linux/x86_64/entrypoints.txt
+++ b/libc/config/linux/x86_64/entrypoints.txt
@@ -666,6 +666,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.fmaximum_mag_numf
libc.src.math.fmaximum_mag_numl
libc.src.math.fmaximum_magf
+ libc.src.math.fmaximum_magf128
libc.src.math.fmaximum_magl
libc.src.math.fmaximum_num
libc.src.math.fmaximum_numf
@@ -684,6 +685,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.fminimum_mag_numf
libc.src.math.fminimum_mag_numl
libc.src.math.fminimum_magf
+ libc.src.math.fminimum_magf128
libc.src.math.fminimum_magl
libc.src.math.fminimum_num
libc.src.math.fminimum_numf
@@ -1006,9 +1008,7 @@ if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
libc.src.math.fdivf128
libc.src.math.ffmaf128
libc.src.math.fmaximum_mag_numf128
- libc.src.math.fmaximum_magf128
libc.src.math.fminimum_mag_numf128
- libc.src.math.fminimum_magf128
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 cbfc2c0ce4126..ed2ed0d375b11 100644
--- a/libc/config/windows/entrypoints.txt
+++ b/libc/config/windows/entrypoints.txt
@@ -224,6 +224,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.fmaximum_numl
libc.src.math.fmaximum_mag
libc.src.math.fmaximum_magf
+ libc.src.math.fmaximum_magf128
libc.src.math.fmaximum_magl
libc.src.math.fmaximum_mag_num
libc.src.math.fmaximum_mag_numf
@@ -238,6 +239,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.fminimum_numl
libc.src.math.fminimum_mag
libc.src.math.fminimum_magf
+ libc.src.math.fminimum_magf128
libc.src.math.fminimum_magl
libc.src.math.fminimum_mag_num
libc.src.math.fminimum_mag_numf
diff --git a/libc/shared/math/fmaximum_magf128.h b/libc/shared/math/fmaximum_magf128.h
index 93996933d1071..88794875893d4 100644
--- a/libc/shared/math/fmaximum_magf128.h
+++ b/libc/shared/math/fmaximum_magf128.h
@@ -9,10 +9,6 @@
#ifndef LLVM_LIBC_SHARED_MATH_FMAXIMUM_MAGF128_H
#define LLVM_LIBC_SHARED_MATH_FMAXIMUM_MAGF128_H
-#include "include/llvm-libc-types/float128.h"
-
-#ifdef LIBC_TYPES_HAS_NATIVE_FLOAT128
-
#include "shared/libc_common.h"
#include "src/__support/math/fmaximum_magf128.h"
@@ -24,6 +20,4 @@ using math::fmaximum_magf128;
} // namespace shared
} // namespace LIBC_NAMESPACE_DECL
-#endif // LIBC_TYPES_HAS_NATIVE_FLOAT128
-
#endif // LLVM_LIBC_SHARED_MATH_FMAXIMUM_MAGF128_H
diff --git a/libc/shared/math/fminimum_magf128.h b/libc/shared/math/fminimum_magf128.h
index cf8794c5b16ce..f538605febfe4 100644
--- a/libc/shared/math/fminimum_magf128.h
+++ b/libc/shared/math/fminimum_magf128.h
@@ -9,10 +9,6 @@
#ifndef LLVM_LIBC_SHARED_MATH_FMINIMUM_MAGF128_H
#define LLVM_LIBC_SHARED_MATH_FMINIMUM_MAGF128_H
-#include "include/llvm-libc-types/float128.h"
-
-#ifdef LIBC_TYPES_HAS_NATIVE_FLOAT128
-
#include "shared/libc_common.h"
#include "src/__support/math/fminimum_magf128.h"
@@ -24,6 +20,4 @@ using math::fminimum_magf128;
} // namespace shared
} // namespace LIBC_NAMESPACE_DECL
-#endif // LIBC_TYPES_HAS_NATIVE_FLOAT128
-
#endif // LLVM_LIBC_SHARED_MATH_FMINIMUM_MAGF128_H
diff --git a/libc/src/__support/math/CMakeLists.txt b/libc/src/__support/math/CMakeLists.txt
index d4a2aefdf783c..9fd437242ffef 100644
--- a/libc/src/__support/math/CMakeLists.txt
+++ b/libc/src/__support/math/CMakeLists.txt
@@ -960,7 +960,7 @@ add_header_library(
HDRS
fmaximum_magf128.h
DEPENDS
- libc.include.llvm-libc-types.float128
+ libc.src.__support.FPUtil.float128
libc.src.__support.FPUtil.basic_operations
libc.src.__support.macros.config
)
@@ -1236,7 +1236,7 @@ add_header_library(
HDRS
fminimum_magf128.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/fmaximum_magf128.h b/libc/src/__support/math/fmaximum_magf128.h
index b540e0940c926..11b0385061b7c 100644
--- a/libc/src/__support/math/fmaximum_magf128.h
+++ b/libc/src/__support/math/fmaximum_magf128.h
@@ -9,23 +9,20 @@
#ifndef LLVM_LIBC_SRC___SUPPORT_MATH_FMAXIMUM_MAGF128_H
#define LLVM_LIBC_SRC___SUPPORT_MATH_FMAXIMUM_MAGF128_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 fmaximum_magf128(float128 x, float128 y) {
+using LIBC_NAMESPACE::fputil::Float128;
+
+LIBC_INLINE constexpr Float128 fmaximum_magf128(Float128 x, Float128 y) {
return fputil::fmaximum_mag(x, y);
}
} // namespace math
} // namespace LIBC_NAMESPACE_DECL
-#endif // LIBC_TYPES_HAS_NATIVE_FLOAT128
-
#endif // LLVM_LIBC_SRC___SUPPORT_MATH_FMAXIMUM_MAGF128_H
diff --git a/libc/src/__support/math/fminimum_magf128.h b/libc/src/__support/math/fminimum_magf128.h
index ea571905fb7df..d81f64821da63 100644
--- a/libc/src/__support/math/fminimum_magf128.h
+++ b/libc/src/__support/math/fminimum_magf128.h
@@ -9,23 +9,20 @@
#ifndef LLVM_LIBC_SRC___SUPPORT_MATH_FMINIMUM_MAGF128_H
#define LLVM_LIBC_SRC___SUPPORT_MATH_FMINIMUM_MAGF128_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 fminimum_magf128(float128 x, float128 y) {
+using LIBC_NAMESPACE::fputil::Float128;
+
+LIBC_INLINE constexpr Float128 fminimum_magf128(Float128 x, Float128 y) {
return fputil::fminimum_mag(x, y);
}
} // namespace math
} // namespace LIBC_NAMESPACE_DECL
-#endif // LIBC_TYPES_HAS_NATIVE_FLOAT128
-
#endif // LLVM_LIBC_SRC___SUPPORT_MATH_FMINIMUM_MAGF128_H
diff --git a/libc/src/math/fmaximum_magf128.h b/libc/src/math/fmaximum_magf128.h
index fb68af7e6a0c9..04212d893514a 100644
--- a/libc/src/math/fmaximum_magf128.h
+++ b/libc/src/math/fmaximum_magf128.h
@@ -10,11 +10,16 @@
#ifndef LLVM_LIBC_SRC_MATH_FMAXIMUM_MAGF128_H
#define LLVM_LIBC_SRC_MATH_FMAXIMUM_MAGF128_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 fmaximum_magf128(float128 x, float128 y);
} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/fminimum_magf128.h b/libc/src/math/fminimum_magf128.h
index 00eee4e287933..4f8114cf49651 100644
--- a/libc/src/math/fminimum_magf128.h
+++ b/libc/src/math/fminimum_magf128.h
@@ -10,11 +10,16 @@
#ifndef LLVM_LIBC_SRC_MATH_FMINIMUM_MAGF128_H
#define LLVM_LIBC_SRC_MATH_FMINIMUM_MAGF128_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 fminimum_magf128(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 ad14be550b6f3..281a739e98b86 100644
--- a/libc/src/math/generic/CMakeLists.txt
+++ b/libc/src/math/generic/CMakeLists.txt
@@ -2288,6 +2288,7 @@ add_entrypoint_object(
HDRS
../fmaximum_magf128.h
DEPENDS
+ libc.src.__support.CPP.bit
libc.src.__support.math.fmaximum_magf128
)
@@ -2530,6 +2531,7 @@ add_entrypoint_object(
HDRS
../fminimum_magf128.h
DEPENDS
+ libc.src.__support.CPP.bit
libc.src.__support.math.fminimum_magf128
)
diff --git a/libc/src/math/generic/fmaximum_magf128.cpp b/libc/src/math/generic/fmaximum_magf128.cpp
index d75d6a0a69b0c..97e97f6140aa0 100644
--- a/libc/src/math/generic/fmaximum_magf128.cpp
+++ b/libc/src/math/generic/fmaximum_magf128.cpp
@@ -7,12 +7,16 @@
//===----------------------------------------------------------------------===//
#include "src/math/fmaximum_magf128.h"
+#include "src/__support/CPP/bit.h"
#include "src/__support/math/fmaximum_magf128.h"
namespace LIBC_NAMESPACE_DECL {
+using LIBC_NAMESPACE::fputil::Float128;
+
LLVM_LIBC_FUNCTION(float128, fmaximum_magf128, (float128 x, float128 y)) {
- return math::fmaximum_magf128(x, y);
+ return cpp::bit_cast<float128>(math::fmaximum_magf128(
+ cpp::bit_cast<Float128>(x), cpp::bit_cast<Float128>(y)));
}
} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/fminimum_magf128.cpp b/libc/src/math/generic/fminimum_magf128.cpp
index 56c6a48d291aa..64c04ef785152 100644
--- a/libc/src/math/generic...
[truncated]
|
Sukumarsawant
force-pushed
the
users/sukumarsawant/fmaximum_minimum_mag
branch
from
August 21, 2026 10:49
1c6a179 to
f773c06
Compare
Sukumarsawant
force-pushed
the
users/sukumarsawant/fmaximum_minimum_mag
branch
from
August 21, 2026 11:44
f773c06 to
ef1578e
Compare
Sukumarsawant
force-pushed
the
users/sukumarsawant/fmaximum_minimum_mag
branch
from
August 21, 2026 11:51
ef1578e to
05a64df
Compare
Sukumarsawant
commented
Aug 21, 2026
Sukumarsawant
commented
Aug 21, 2026
Sukumarsawant
force-pushed
the
users/sukumarsawant/fmaximum_minimum_mag
branch
from
August 21, 2026 12:30
c0d3345 to
656af1b
Compare
overmighty
approved these changes
Aug 25, 2026
overmighty
left a comment
Member
There was a problem hiding this comment.
LGTM besides a formatting nit.
Sukumarsawant
force-pushed
the
users/sukumarsawant/fmaximum_minimum_mag
branch
from
August 27, 2026 14:20
1796e71 to
35d834f
Compare
Sukumarsawant
force-pushed
the
users/sukumarsawant/fmaximum_minimum_mag
branch
2 times, most recently
from
September 2, 2026 13:34
8645df7 to
e8680c0
Compare
Sukumarsawant
force-pushed
the
users/sukumarsawant/fmaximum_minimum_mag
branch
from
September 2, 2026 14:54
e8680c0 to
018b1ed
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.