[llvm-branch-commits] [libc] [llvm] [libc] Make fmaximum_mag/fminimum_mag functions use the emulated float128 type (PR #217539)

via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Thu Aug 20 00:53:11 PDT 2026


llvmorg-github-actions[bot] wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-libc

Author: Zorojuro (Sukumarsawant)

<details>
<summary>Changes</summary>



---

Patch is 30.30 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/217539.diff


32 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/fmaximum_magf128.h (-6) 
- (modified) libc/shared/math/fminimum_magf128.h (-6) 
- (modified) libc/src/__support/math/CMakeLists.txt (+2-2) 
- (modified) libc/src/__support/math/fmaximum_magf128.h (+4-7) 
- (modified) libc/src/__support/math/fminimum_magf128.h (+4-7) 
- (modified) libc/src/math/fmaximum_magf128.h (+5) 
- (modified) libc/src/math/fminimum_magf128.h (+5) 
- (modified) libc/src/math/generic/CMakeLists.txt (+2) 
- (modified) libc/src/math/generic/fmaximum_magf128.cpp (+5-1) 
- (modified) libc/src/math/generic/fminimum_magf128.cpp (+5-1) 
- (modified) libc/test/shared/shared_math_constexpr_test.cpp (+8-8) 
- (modified) libc/test/shared/shared_math_test.cpp (+4-4) 
- (modified) libc/test/src/math/smoke/CMakeLists.txt (+2) 
- (modified) libc/test/src/math/smoke/FMaximumMagTest.h (+1-1) 
- (modified) libc/test/src/math/smoke/FMinimumMagTest.h (+1-1) 
- (modified) libc/test/src/math/smoke/fmaximum_magf128_test.cpp (+5) 
- (modified) libc/test/src/math/smoke/fminimum_magf128_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 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]

``````````

</details>


https://github.com/llvm/llvm-project/pull/217539


More information about the llvm-branch-commits mailing list