https://github.com/Sukumarsawant updated https://github.com/llvm/llvm-project/pull/217409
>From abb2714b170feee9edc6c7be6d8dd72c6a6ba4e4 Mon Sep 17 00:00:00 2001 From: Sukumarsawant <[email protected]> Date: Wed, 19 Aug 2026 23:12:43 +0530 Subject: [PATCH 1/3] fmaximum_numf128 --- libc/config/baremetal/aarch64/entrypoints.txt | 2 +- libc/config/baremetal/arm/entrypoints.txt | 2 +- libc/config/baremetal/riscv/entrypoints.txt | 2 +- libc/config/darwin/aarch64/entrypoints.txt | 2 +- libc/config/darwin/x86_64/entrypoints.txt | 1 + libc/config/freebsd/x86_64/entrypoints.txt | 2 +- libc/config/gpu/amdgpu/entrypoints.txt | 1 + libc/config/gpu/nvptx/entrypoints.txt | 1 + libc/config/linux/aarch64/entrypoints.txt | 2 +- libc/config/linux/arm/entrypoints.txt | 1 + libc/config/linux/riscv/entrypoints.txt | 2 +- libc/config/linux/x86_64/entrypoints.txt | 2 +- libc/config/windows/entrypoints.txt | 1 + libc/shared/math/fmaximum_numf128.h | 6 ------ libc/src/__support/math/CMakeLists.txt | 2 +- libc/src/__support/math/fmaximum_numf128.h | 11 ++++------- libc/src/math/fmaximum_numf128.h | 5 +++++ libc/src/math/generic/CMakeLists.txt | 1 + libc/src/math/generic/fmaximum_numf128.cpp | 6 +++++- libc/test/shared/shared_math_constexpr_test.cpp | 6 +++--- libc/test/shared/shared_math_test.cpp | 4 ++-- libc/test/src/math/smoke/CMakeLists.txt | 1 + libc/test/src/math/smoke/FMaximumNumTest.h | 2 +- libc/test/src/math/smoke/fmaximum_numf128_test.cpp | 5 +++++ utils/bazel/llvm-project-overlay/libc/BUILD.bazel | 4 +++- .../libc/test/src/math/smoke/BUILD.bazel | 3 +++ 26 files changed, 47 insertions(+), 30 deletions(-) diff --git a/libc/config/baremetal/aarch64/entrypoints.txt b/libc/config/baremetal/aarch64/entrypoints.txt index af9315e99797f..f304d8496450a 100644 --- a/libc/config/baremetal/aarch64/entrypoints.txt +++ b/libc/config/baremetal/aarch64/entrypoints.txt @@ -432,6 +432,7 @@ set(TARGET_LIBM_ENTRYPOINTS libc.src.math.fmaximum_magl libc.src.math.fmaximum_num libc.src.math.fmaximum_numf + libc.src.math.fmaximum_numf128 libc.src.math.fmaximum_numl libc.src.math.fmaximumf libc.src.math.fmaximumf128 @@ -765,7 +766,6 @@ if(LIBC_TYPES_HAS_NATIVE_FLOAT128) libc.src.math.ffmaf128 libc.src.math.fmaximum_mag_numf128 libc.src.math.fmaximum_magf128 - libc.src.math.fmaximum_numf128 libc.src.math.fminimum_mag_numf128 libc.src.math.fminimum_magf128 libc.src.math.fminimum_numf128 diff --git a/libc/config/baremetal/arm/entrypoints.txt b/libc/config/baremetal/arm/entrypoints.txt index 4c0d51c4feb95..c285339c7ca3a 100644 --- a/libc/config/baremetal/arm/entrypoints.txt +++ b/libc/config/baremetal/arm/entrypoints.txt @@ -444,6 +444,7 @@ set(TARGET_LIBM_ENTRYPOINTS libc.src.math.fmaximum_magl libc.src.math.fmaximum_num libc.src.math.fmaximum_numf + libc.src.math.fmaximum_numf128 libc.src.math.fmaximum_numl libc.src.math.fmaximumf libc.src.math.fmaximumf128 @@ -776,7 +777,6 @@ if(LIBC_TYPES_HAS_NATIVE_FLOAT128) libc.src.math.ffmaf128 libc.src.math.fmaximum_mag_numf128 libc.src.math.fmaximum_magf128 - libc.src.math.fmaximum_numf128 libc.src.math.fminimum_mag_numf128 libc.src.math.fminimum_magf128 libc.src.math.fminimum_numf128 diff --git a/libc/config/baremetal/riscv/entrypoints.txt b/libc/config/baremetal/riscv/entrypoints.txt index 83a9960734f85..29ce8f92c4343 100644 --- a/libc/config/baremetal/riscv/entrypoints.txt +++ b/libc/config/baremetal/riscv/entrypoints.txt @@ -440,6 +440,7 @@ set(TARGET_LIBM_ENTRYPOINTS libc.src.math.fmaximum_magl libc.src.math.fmaximum_num libc.src.math.fmaximum_numf + libc.src.math.fmaximum_numf128 libc.src.math.fmaximum_numl libc.src.math.fmaximumf libc.src.math.fmaximumf128 @@ -773,7 +774,6 @@ if(LIBC_TYPES_HAS_NATIVE_FLOAT128) libc.src.math.ffmaf128 libc.src.math.fmaximum_mag_numf128 libc.src.math.fmaximum_magf128 - libc.src.math.fmaximum_numf128 libc.src.math.fminimum_mag_numf128 libc.src.math.fminimum_magf128 libc.src.math.fminimum_numf128 diff --git a/libc/config/darwin/aarch64/entrypoints.txt b/libc/config/darwin/aarch64/entrypoints.txt index 3e42341cdadf3..3c57a07834e72 100644 --- a/libc/config/darwin/aarch64/entrypoints.txt +++ b/libc/config/darwin/aarch64/entrypoints.txt @@ -251,6 +251,7 @@ set(TARGET_LIBM_ENTRYPOINTS libc.src.math.fmaximum_magl libc.src.math.fmaximum_num libc.src.math.fmaximum_numf + libc.src.math.fmaximum_numf128 libc.src.math.fmaximum_numl libc.src.math.fmaximumf libc.src.math.fmaximumf128 @@ -585,7 +586,6 @@ if(LIBC_TYPES_HAS_NATIVE_FLOAT128) libc.src.math.ffmaf128 libc.src.math.fmaximum_mag_numf128 libc.src.math.fmaximum_magf128 - libc.src.math.fmaximum_numf128 libc.src.math.fminimum_mag_numf128 libc.src.math.fminimum_magf128 libc.src.math.fminimum_numf128 diff --git a/libc/config/darwin/x86_64/entrypoints.txt b/libc/config/darwin/x86_64/entrypoints.txt index c41165b5b4fd9..eaab7e6c2257b 100644 --- a/libc/config/darwin/x86_64/entrypoints.txt +++ b/libc/config/darwin/x86_64/entrypoints.txt @@ -158,6 +158,7 @@ set(TARGET_LIBM_ENTRYPOINTS #libc.src.math.fmax #libc.src.math.fmaxf #libc.src.math.fmaxf128 + #libc.src.math.fmaximum_numf128 #libc.src.math.fmaximumf128 #libc.src.math.fmaxl #libc.src.math.fmin diff --git a/libc/config/freebsd/x86_64/entrypoints.txt b/libc/config/freebsd/x86_64/entrypoints.txt index 545f9bf99e760..a077ac95d9678 100644 --- a/libc/config/freebsd/x86_64/entrypoints.txt +++ b/libc/config/freebsd/x86_64/entrypoints.txt @@ -187,6 +187,7 @@ set(TARGET_LIBM_ENTRYPOINTS libc.src.math.fmaximuml libc.src.math.fmaximum_num libc.src.math.fmaximum_numf + libc.src.math.fmaximum_numf128 libc.src.math.fmaximum_numl libc.src.math.fmaximum_mag libc.src.math.fmaximum_magf @@ -524,7 +525,6 @@ if(LIBC_TYPES_HAS_NATIVE_FLOAT128) libc.src.math.ffmaf128 libc.src.math.fmaximum_mag_numf128 libc.src.math.fmaximum_magf128 - libc.src.math.fmaximum_numf128 libc.src.math.fminimum_mag_numf128 libc.src.math.fminimum_magf128 libc.src.math.fminimum_numf128 diff --git a/libc/config/gpu/amdgpu/entrypoints.txt b/libc/config/gpu/amdgpu/entrypoints.txt index 0cd9e13186e2f..0c5158e8e4059 100644 --- a/libc/config/gpu/amdgpu/entrypoints.txt +++ b/libc/config/gpu/amdgpu/entrypoints.txt @@ -382,6 +382,7 @@ set(TARGET_LIBM_ENTRYPOINTS libc.src.math.fmaximum_mag_numl libc.src.math.fmaximum_num libc.src.math.fmaximum_numf + libc.src.math.fmaximum_numf128 libc.src.math.fmaximum_numl libc.src.math.fmaxl libc.src.math.fmin diff --git a/libc/config/gpu/nvptx/entrypoints.txt b/libc/config/gpu/nvptx/entrypoints.txt index dcff512e17fc2..693dd493329b3 100644 --- a/libc/config/gpu/nvptx/entrypoints.txt +++ b/libc/config/gpu/nvptx/entrypoints.txt @@ -378,6 +378,7 @@ set(TARGET_LIBM_ENTRYPOINTS libc.src.math.fmaximum_mag_numl libc.src.math.fmaximum_num libc.src.math.fmaximum_numf + libc.src.math.fmaximum_numf128 libc.src.math.fmaximum_numl libc.src.math.fmaxl libc.src.math.fmin diff --git a/libc/config/linux/aarch64/entrypoints.txt b/libc/config/linux/aarch64/entrypoints.txt index 8191103e6d799..ebacd3582b762 100644 --- a/libc/config/linux/aarch64/entrypoints.txt +++ b/libc/config/linux/aarch64/entrypoints.txt @@ -597,6 +597,7 @@ set(TARGET_LIBM_ENTRYPOINTS libc.src.math.fmaximum_magl libc.src.math.fmaximum_num libc.src.math.fmaximum_numf + libc.src.math.fmaximum_numf128 libc.src.math.fmaximum_numl libc.src.math.fmaximumf libc.src.math.fmaximumf128 @@ -924,7 +925,6 @@ if(LIBC_TYPES_HAS_NATIVE_FLOAT128) libc.src.math.ffmaf128 libc.src.math.fmaximum_mag_numf128 libc.src.math.fmaximum_magf128 - libc.src.math.fmaximum_numf128 libc.src.math.fminimum_mag_numf128 libc.src.math.fminimum_magf128 libc.src.math.fminimum_numf128 diff --git a/libc/config/linux/arm/entrypoints.txt b/libc/config/linux/arm/entrypoints.txt index add3f99f7cf2c..24cb2b386ea84 100644 --- a/libc/config/linux/arm/entrypoints.txt +++ b/libc/config/linux/arm/entrypoints.txt @@ -424,6 +424,7 @@ set(TARGET_LIBM_ENTRYPOINTS libc.src.math.fmaximum_magl libc.src.math.fmaximum_num libc.src.math.fmaximum_numf + libc.src.math.fmaximum_numf128 libc.src.math.fmaximum_numl libc.src.math.fmaximumf libc.src.math.fmaximumf128 diff --git a/libc/config/linux/riscv/entrypoints.txt b/libc/config/linux/riscv/entrypoints.txt index 9d665089e4e21..d965248bd543b 100644 --- a/libc/config/linux/riscv/entrypoints.txt +++ b/libc/config/linux/riscv/entrypoints.txt @@ -666,6 +666,7 @@ set(TARGET_LIBM_ENTRYPOINTS libc.src.math.fmaximum_magl libc.src.math.fmaximum_num libc.src.math.fmaximum_numf + libc.src.math.fmaximum_numf128 libc.src.math.fmaximum_numl libc.src.math.fmaximumf libc.src.math.fmaximumf128 @@ -1010,7 +1011,6 @@ if(LIBC_TYPES_HAS_NATIVE_FLOAT128) libc.src.math.ffmaf128 libc.src.math.fmaximum_mag_numf128 libc.src.math.fmaximum_magf128 - libc.src.math.fmaximum_numf128 libc.src.math.fminimum_mag_numf128 libc.src.math.fminimum_magf128 libc.src.math.fminimum_numf128 diff --git a/libc/config/linux/x86_64/entrypoints.txt b/libc/config/linux/x86_64/entrypoints.txt index f5154d6e7a9ad..c209156ddf197 100644 --- a/libc/config/linux/x86_64/entrypoints.txt +++ b/libc/config/linux/x86_64/entrypoints.txt @@ -675,6 +675,7 @@ set(TARGET_LIBM_ENTRYPOINTS libc.src.math.fmaximum_magl libc.src.math.fmaximum_num libc.src.math.fmaximum_numf + libc.src.math.fmaximum_numf128 libc.src.math.fmaximum_numl libc.src.math.fmaximumf libc.src.math.fmaximumf128 @@ -1019,7 +1020,6 @@ if(LIBC_TYPES_HAS_NATIVE_FLOAT128) libc.src.math.ffmaf128 libc.src.math.fmaximum_mag_numf128 libc.src.math.fmaximum_magf128 - libc.src.math.fmaximum_numf128 libc.src.math.fminimum_mag_numf128 libc.src.math.fminimum_magf128 libc.src.math.fminimum_numf128 diff --git a/libc/config/windows/entrypoints.txt b/libc/config/windows/entrypoints.txt index 26fee125870c5..cab6164a0a364 100644 --- a/libc/config/windows/entrypoints.txt +++ b/libc/config/windows/entrypoints.txt @@ -220,6 +220,7 @@ set(TARGET_LIBM_ENTRYPOINTS libc.src.math.fmaximuml libc.src.math.fmaximum_num libc.src.math.fmaximum_numf + libc.src.math.fmaximum_numf128 libc.src.math.fmaximum_numl libc.src.math.fmaximum_mag libc.src.math.fmaximum_magf diff --git a/libc/shared/math/fmaximum_numf128.h b/libc/shared/math/fmaximum_numf128.h index f26724d537a3f..50557e8d25a14 100644 --- a/libc/shared/math/fmaximum_numf128.h +++ b/libc/shared/math/fmaximum_numf128.h @@ -9,10 +9,6 @@ #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_NATIVE_FLOAT128 - #include "shared/libc_common.h" #include "src/__support/math/fmaximum_numf128.h" @@ -24,6 +20,4 @@ using math::fmaximum_numf128; } // namespace shared } // namespace LIBC_NAMESPACE_DECL -#endif // LIBC_TYPES_HAS_NATIVE_FLOAT128 - #endif // LLVM_LIBC_SHARED_MATH_FMAXIMUM_NUMF128_H diff --git a/libc/src/__support/math/CMakeLists.txt b/libc/src/__support/math/CMakeLists.txt index 57530f4b8b460..e04aa6460598d 100644 --- a/libc/src/__support/math/CMakeLists.txt +++ b/libc/src/__support/math/CMakeLists.txt @@ -1052,7 +1052,7 @@ add_header_library( HDRS fmaximum_numf128.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_numf128.h b/libc/src/__support/math/fmaximum_numf128.h index ccee570de2c14..f81f851201538 100644 --- a/libc/src/__support/math/fmaximum_numf128.h +++ b/libc/src/__support/math/fmaximum_numf128.h @@ -9,23 +9,20 @@ #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_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_numf128(float128 x, float128 y) { +using LIBC_NAMESPACE::fputil::Float128; + +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_NATIVE_FLOAT128 - #endif // LLVM_LIBC_SRC___SUPPORT_MATH_FMAXIMUM_NUMF128_H diff --git a/libc/src/math/fmaximum_numf128.h b/libc/src/math/fmaximum_numf128.h index 1e9bd8dfb81aa..a4afa4f7b2241 100644 --- a/libc/src/math/fmaximum_numf128.h +++ b/libc/src/math/fmaximum_numf128.h @@ -10,11 +10,16 @@ #ifndef LLVM_LIBC_SRC_MATH_FMAXIMUM_NUMF128_H #define LLVM_LIBC_SRC_MATH_FMAXIMUM_NUMF128_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_numf128(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 ed5e07a9d818d..a13361d139d28 100644 --- a/libc/src/math/generic/CMakeLists.txt +++ b/libc/src/math/generic/CMakeLists.txt @@ -2233,6 +2233,7 @@ add_entrypoint_object( HDRS ../fmaximum_numf128.h DEPENDS + libc.src.__support.CPP.bit libc.src.__support.math.fmaximum_numf128 ) diff --git a/libc/src/math/generic/fmaximum_numf128.cpp b/libc/src/math/generic/fmaximum_numf128.cpp index e6bae7947371d..fb164d4f98a18 100644 --- a/libc/src/math/generic/fmaximum_numf128.cpp +++ b/libc/src/math/generic/fmaximum_numf128.cpp @@ -7,12 +7,16 @@ //===----------------------------------------------------------------------===// #include "src/math/fmaximum_numf128.h" +#include "src/__support/CPP/bit.h" #include "src/__support/math/fmaximum_numf128.h" namespace LIBC_NAMESPACE_DECL { +using LIBC_NAMESPACE::fputil::Float128; + LLVM_LIBC_FUNCTION(float128, fmaximum_numf128, (float128 x, float128 y)) { - return math::fmaximum_numf128(x, y); + return cpp::bit_cast<float128>(math::fmaximum_numf128( + cpp::bit_cast<Float128>(x), cpp::bit_cast<Float128>(y))); } } // namespace LIBC_NAMESPACE_DECL diff --git a/libc/test/shared/shared_math_constexpr_test.cpp b/libc/test/shared/shared_math_constexpr_test.cpp index e9a9791529e59..77c0ae92842d3 100644 --- a/libc/test/shared/shared_math_constexpr_test.cpp +++ b/libc/test/shared/shared_math_constexpr_test.cpp @@ -398,6 +398,9 @@ static_assert(Float128(0.0) == static_assert(Float128(0.0) == LIBC_NAMESPACE::shared::fminimumf128(Float128(0.0), Float128(0.0))); +static_assert(Float128(0.0) == + LIBC_NAMESPACE::shared::fmaximum_numf128(Float128(0.0), + Float128(0.0))); static_assert(1 == LIBC_NAMESPACE::shared::iscanonicalf128(Float128(0.0))); static_assert(0 == LIBC_NAMESPACE::shared::isnanf128(Float128(0.0))); static_assert(0.0 == LIBC_NAMESPACE::shared::issignalingf128(Float128(0.0))); @@ -437,9 +440,6 @@ static_assert(float128(1.0) == static_assert(0.0f == LIBC_NAMESPACE::shared::fdivf128(float128(0.0), float128(1.0))); static_assert(0.0 == LIBC_NAMESPACE::shared::dsqrtf128(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))); diff --git a/libc/test/shared/shared_math_test.cpp b/libc/test/shared/shared_math_test.cpp index b1a3041947c86..fa39a0995ee65 100644 --- a/libc/test/shared/shared_math_test.cpp +++ b/libc/test/shared/shared_math_test.cpp @@ -596,6 +596,8 @@ TEST(LlvmLibcSharedMathTest, AllEmuFloat128) { Float128(0.0), Float128(0.0))); EXPECT_FP_EQ(Float128(0.0), LIBC_NAMESPACE::shared::fminimumf128( Float128(0.0), Float128(0.0))); + EXPECT_FP_EQ(Float128(0.0), LIBC_NAMESPACE::shared::fmaximum_numf128( + Float128(0.0), Float128(0.0))); EXPECT_EQ(1, LIBC_NAMESPACE::shared::iscanonicalf128(Float128(0.0))); EXPECT_EQ(0, LIBC_NAMESPACE::shared::isnanf128(Float128(0.0))); EXPECT_EQ(0, LIBC_NAMESPACE::shared::issignalingf128(Float128(0.0))); @@ -706,8 +708,6 @@ TEST(LlvmLibcSharedMathTest, AllFloat128) { 0.0f16, LIBC_NAMESPACE::shared::f16subf128(float128(0.0), float128(0.0))); EXPECT_FP_EQ(0.0f16, LIBC_NAMESPACE::shared::f16sqrtf128(float128(0.0))); #endif // LIBC_TYPES_HAS_FLOAT16 - 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))); EXPECT_FP_EQ(float128(0.0), diff --git a/libc/test/src/math/smoke/CMakeLists.txt b/libc/test/src/math/smoke/CMakeLists.txt index 62a141ae66dbe..017398d643fc6 100644 --- a/libc/test/src/math/smoke/CMakeLists.txt +++ b/libc/test/src/math/smoke/CMakeLists.txt @@ -2992,6 +2992,7 @@ add_fp_unittest( HDRS FMaximumNumTest.h DEPENDS + libc.src.__support.FPUtil.float128 libc.src.math.fmaximum_numf128 libc.src.__support.CPP.algorithm libc.src.__support.FPUtil.fp_bits diff --git a/libc/test/src/math/smoke/FMaximumNumTest.h b/libc/test/src/math/smoke/FMaximumNumTest.h index 14b70f029009d..49e74a3d58468 100644 --- a/libc/test/src/math/smoke/FMaximumNumTest.h +++ b/libc/test/src/math/smoke/FMaximumNumTest.h @@ -80,7 +80,7 @@ class FMaximumNumTest : public LIBC_NAMESPACE::testing::FEnvSafeTest { continue; T x = xbits.get_val(); T y = ybits.get_val(); - if ((x == 0) && (y == 0)) + if ((x == T(0)) && (y == T(0))) continue; if (x > y) diff --git a/libc/test/src/math/smoke/fmaximum_numf128_test.cpp b/libc/test/src/math/smoke/fmaximum_numf128_test.cpp index 6855ea3b39a9c..8eb4df09d5e17 100644 --- a/libc/test/src/math/smoke/fmaximum_numf128_test.cpp +++ b/libc/test/src/math/smoke/fmaximum_numf128_test.cpp @@ -7,7 +7,12 @@ //===----------------------------------------------------------------------===// #include "FMaximumNumTest.h" +#include "src/__support/FPUtil/float128.h" #include "src/math/fmaximum_numf128.h" +#ifndef LIBC_TYPES_HAS_NATIVE_FLOAT128 +using float128 = LIBC_NAMESPACE::fputil::Float128; +#endif // LIBC_TYPES_HAS_NATIVE_FLOAT128 + LIST_FMAXIMUM_NUM_TESTS(float128, LIBC_NAMESPACE::fmaximum_numf128) diff --git a/utils/bazel/llvm-project-overlay/libc/BUILD.bazel b/utils/bazel/llvm-project-overlay/libc/BUILD.bazel index 5851c104c8e2f..915372e8009de 100644 --- a/utils/bazel/llvm-project-overlay/libc/BUILD.bazel +++ b/utils/bazel/llvm-project-overlay/libc/BUILD.bazel @@ -5607,8 +5607,8 @@ libc_support_library( hdrs = ["src/__support/math/fmaximum_numf128.h"], deps = [ ":__support_fputil_basic_operations", + ":__support_fputil_float128", ":__support_macros_config", - ":llvm_libc_types_float128", ], ) @@ -12004,6 +12004,8 @@ libc_math_function( libc_math_function( name = "fmaximum_numf128", additional_deps = [ + ":__support_cpp_bit", + ":__support_fputil_float128", ":__support_math_fmaximum_numf128", ], ) diff --git a/utils/bazel/llvm-project-overlay/libc/test/src/math/smoke/BUILD.bazel b/utils/bazel/llvm-project-overlay/libc/test/src/math/smoke/BUILD.bazel index aba43a2ea5a61..c4d7404d368f8 100644 --- a/utils/bazel/llvm-project-overlay/libc/test/src/math/smoke/BUILD.bazel +++ b/utils/bazel/llvm-project-overlay/libc/test/src/math/smoke/BUILD.bazel @@ -637,6 +637,9 @@ math_test( math_test( name = "fmaximum_numf128", hdrs = ["FMaximumNumTest.h"], + deps = [ + "//libc:__support_fputil_float128", + ], ) math_test( >From 9b88065cccf11bd243fd78b617d6fdcf46f65839 Mon Sep 17 00:00:00 2001 From: Sukumarsawant <[email protected]> Date: Wed, 19 Aug 2026 23:15:50 +0530 Subject: [PATCH 2/3] fminimum_numf128 --- libc/config/baremetal/aarch64/entrypoints.txt | 2 +- libc/config/baremetal/arm/entrypoints.txt | 2 +- libc/config/baremetal/riscv/entrypoints.txt | 2 +- libc/config/darwin/aarch64/entrypoints.txt | 2 +- libc/config/darwin/x86_64/entrypoints.txt | 1 + libc/config/freebsd/x86_64/entrypoints.txt | 2 +- libc/config/gpu/amdgpu/entrypoints.txt | 1 + libc/config/gpu/nvptx/entrypoints.txt | 1 + libc/config/linux/aarch64/entrypoints.txt | 2 +- libc/config/linux/arm/entrypoints.txt | 1 + libc/config/linux/riscv/entrypoints.txt | 2 +- libc/config/linux/x86_64/entrypoints.txt | 2 +- libc/config/windows/entrypoints.txt | 1 + libc/shared/math/fminimum_numf128.h | 6 ------ libc/src/__support/math/CMakeLists.txt | 2 +- libc/src/__support/math/fminimum_numf128.h | 11 ++++------- libc/src/math/fminimum_numf128.h | 5 +++++ libc/src/math/generic/CMakeLists.txt | 1 + libc/src/math/generic/fminimum_numf128.cpp | 6 +++++- libc/test/shared/shared_math_constexpr_test.cpp | 6 +++--- libc/test/shared/shared_math_test.cpp | 4 ++-- libc/test/src/math/smoke/CMakeLists.txt | 1 + libc/test/src/math/smoke/FMinimumNumTest.h | 2 +- libc/test/src/math/smoke/fminimum_numf128_test.cpp | 5 +++++ utils/bazel/llvm-project-overlay/libc/BUILD.bazel | 4 +++- .../libc/test/src/math/smoke/BUILD.bazel | 3 +++ 26 files changed, 47 insertions(+), 30 deletions(-) diff --git a/libc/config/baremetal/aarch64/entrypoints.txt b/libc/config/baremetal/aarch64/entrypoints.txt index f304d8496450a..76f9cb53e35e1 100644 --- a/libc/config/baremetal/aarch64/entrypoints.txt +++ b/libc/config/baremetal/aarch64/entrypoints.txt @@ -450,6 +450,7 @@ set(TARGET_LIBM_ENTRYPOINTS libc.src.math.fminimum_magl libc.src.math.fminimum_num libc.src.math.fminimum_numf + libc.src.math.fminimum_numf128 libc.src.math.fminimum_numl libc.src.math.fminimumf libc.src.math.fminimumf128 @@ -768,7 +769,6 @@ if(LIBC_TYPES_HAS_NATIVE_FLOAT128) libc.src.math.fmaximum_magf128 libc.src.math.fminimum_mag_numf128 libc.src.math.fminimum_magf128 - libc.src.math.fminimum_numf128 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 c285339c7ca3a..84b694b4328f8 100644 --- a/libc/config/baremetal/arm/entrypoints.txt +++ b/libc/config/baremetal/arm/entrypoints.txt @@ -462,6 +462,7 @@ set(TARGET_LIBM_ENTRYPOINTS libc.src.math.fminimum_magl libc.src.math.fminimum_num libc.src.math.fminimum_numf + libc.src.math.fminimum_numf128 libc.src.math.fminimum_numl libc.src.math.fminimumf libc.src.math.fminimumf128 @@ -779,7 +780,6 @@ if(LIBC_TYPES_HAS_NATIVE_FLOAT128) libc.src.math.fmaximum_magf128 libc.src.math.fminimum_mag_numf128 libc.src.math.fminimum_magf128 - libc.src.math.fminimum_numf128 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 29ce8f92c4343..9bfa44ce5f2eb 100644 --- a/libc/config/baremetal/riscv/entrypoints.txt +++ b/libc/config/baremetal/riscv/entrypoints.txt @@ -458,6 +458,7 @@ set(TARGET_LIBM_ENTRYPOINTS libc.src.math.fminimum_magl libc.src.math.fminimum_num libc.src.math.fminimum_numf + libc.src.math.fminimum_numf128 libc.src.math.fminimum_numl libc.src.math.fminimumf libc.src.math.fminimumf128 @@ -776,7 +777,6 @@ if(LIBC_TYPES_HAS_NATIVE_FLOAT128) libc.src.math.fmaximum_magf128 libc.src.math.fminimum_mag_numf128 libc.src.math.fminimum_magf128 - libc.src.math.fminimum_numf128 # 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 3c57a07834e72..7deaa391be03d 100644 --- a/libc/config/darwin/aarch64/entrypoints.txt +++ b/libc/config/darwin/aarch64/entrypoints.txt @@ -269,6 +269,7 @@ set(TARGET_LIBM_ENTRYPOINTS libc.src.math.fminimum_magl libc.src.math.fminimum_num libc.src.math.fminimum_numf + libc.src.math.fminimum_numf128 libc.src.math.fminimum_numl libc.src.math.fminimumf libc.src.math.fminimumf128 @@ -588,7 +589,6 @@ if(LIBC_TYPES_HAS_NATIVE_FLOAT128) libc.src.math.fmaximum_magf128 libc.src.math.fminimum_mag_numf128 libc.src.math.fminimum_magf128 - libc.src.math.fminimum_numf128 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 eaab7e6c2257b..24d74acb9fde2 100644 --- a/libc/config/darwin/x86_64/entrypoints.txt +++ b/libc/config/darwin/x86_64/entrypoints.txt @@ -164,6 +164,7 @@ set(TARGET_LIBM_ENTRYPOINTS #libc.src.math.fmin #libc.src.math.fminf #libc.src.math.fminf128 + #libc.src.math.fminimum_numf128 #libc.src.math.fminimumf128 #libc.src.math.fminl #libc.src.math.fmod diff --git a/libc/config/freebsd/x86_64/entrypoints.txt b/libc/config/freebsd/x86_64/entrypoints.txt index a077ac95d9678..a1f4b3b62beef 100644 --- a/libc/config/freebsd/x86_64/entrypoints.txt +++ b/libc/config/freebsd/x86_64/entrypoints.txt @@ -201,6 +201,7 @@ set(TARGET_LIBM_ENTRYPOINTS libc.src.math.fminimuml libc.src.math.fminimum_num libc.src.math.fminimum_numf + libc.src.math.fminimum_numf128 libc.src.math.fminimum_numl libc.src.math.fminimum_mag libc.src.math.fminimum_magf @@ -527,7 +528,6 @@ if(LIBC_TYPES_HAS_NATIVE_FLOAT128) libc.src.math.fmaximum_magf128 libc.src.math.fminimum_mag_numf128 libc.src.math.fminimum_magf128 - libc.src.math.fminimum_numf128 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 0c5158e8e4059..bba9427578f12 100644 --- a/libc/config/gpu/amdgpu/entrypoints.txt +++ b/libc/config/gpu/amdgpu/entrypoints.txt @@ -400,6 +400,7 @@ set(TARGET_LIBM_ENTRYPOINTS libc.src.math.fminimum_mag_numl libc.src.math.fminimum_num libc.src.math.fminimum_numf + libc.src.math.fminimum_numf128 libc.src.math.fminimum_numl libc.src.math.fminl libc.src.math.fmod diff --git a/libc/config/gpu/nvptx/entrypoints.txt b/libc/config/gpu/nvptx/entrypoints.txt index 693dd493329b3..011cc8b73a607 100644 --- a/libc/config/gpu/nvptx/entrypoints.txt +++ b/libc/config/gpu/nvptx/entrypoints.txt @@ -396,6 +396,7 @@ set(TARGET_LIBM_ENTRYPOINTS libc.src.math.fminimum_mag_numl libc.src.math.fminimum_num libc.src.math.fminimum_numf + libc.src.math.fminimum_numf128 libc.src.math.fminimum_numl libc.src.math.fminl libc.src.math.fmod diff --git a/libc/config/linux/aarch64/entrypoints.txt b/libc/config/linux/aarch64/entrypoints.txt index ebacd3582b762..ad662cb450cea 100644 --- a/libc/config/linux/aarch64/entrypoints.txt +++ b/libc/config/linux/aarch64/entrypoints.txt @@ -615,6 +615,7 @@ set(TARGET_LIBM_ENTRYPOINTS libc.src.math.fminimum_magl libc.src.math.fminimum_num libc.src.math.fminimum_numf + libc.src.math.fminimum_numf128 libc.src.math.fminimum_numl libc.src.math.fminimumf libc.src.math.fminimumf128 @@ -927,7 +928,6 @@ if(LIBC_TYPES_HAS_NATIVE_FLOAT128) libc.src.math.fmaximum_magf128 libc.src.math.fminimum_mag_numf128 libc.src.math.fminimum_magf128 - libc.src.math.fminimum_numf128 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 24cb2b386ea84..7fe27ed4d1729 100644 --- a/libc/config/linux/arm/entrypoints.txt +++ b/libc/config/linux/arm/entrypoints.txt @@ -442,6 +442,7 @@ set(TARGET_LIBM_ENTRYPOINTS libc.src.math.fminimum_magl libc.src.math.fminimum_num libc.src.math.fminimum_numf + libc.src.math.fminimum_numf128 libc.src.math.fminimum_numl libc.src.math.fminimumf libc.src.math.fminimumf128 diff --git a/libc/config/linux/riscv/entrypoints.txt b/libc/config/linux/riscv/entrypoints.txt index d965248bd543b..3c52c1564cada 100644 --- a/libc/config/linux/riscv/entrypoints.txt +++ b/libc/config/linux/riscv/entrypoints.txt @@ -684,6 +684,7 @@ set(TARGET_LIBM_ENTRYPOINTS libc.src.math.fminimum_magl libc.src.math.fminimum_num libc.src.math.fminimum_numf + libc.src.math.fminimum_numf128 libc.src.math.fminimum_numl libc.src.math.fminimumf libc.src.math.fminimumf128 @@ -1013,7 +1014,6 @@ if(LIBC_TYPES_HAS_NATIVE_FLOAT128) libc.src.math.fmaximum_magf128 libc.src.math.fminimum_mag_numf128 libc.src.math.fminimum_magf128 - libc.src.math.fminimum_numf128 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 c209156ddf197..96a94ca08a08a 100644 --- a/libc/config/linux/x86_64/entrypoints.txt +++ b/libc/config/linux/x86_64/entrypoints.txt @@ -693,6 +693,7 @@ set(TARGET_LIBM_ENTRYPOINTS libc.src.math.fminimum_magl libc.src.math.fminimum_num libc.src.math.fminimum_numf + libc.src.math.fminimum_numf128 libc.src.math.fminimum_numl libc.src.math.fminimumf libc.src.math.fminimumf128 @@ -1022,7 +1023,6 @@ if(LIBC_TYPES_HAS_NATIVE_FLOAT128) libc.src.math.fmaximum_magf128 libc.src.math.fminimum_mag_numf128 libc.src.math.fminimum_magf128 - libc.src.math.fminimum_numf128 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 cab6164a0a364..5b7ebe1e5e749 100644 --- a/libc/config/windows/entrypoints.txt +++ b/libc/config/windows/entrypoints.txt @@ -234,6 +234,7 @@ set(TARGET_LIBM_ENTRYPOINTS libc.src.math.fminimuml libc.src.math.fminimum_num libc.src.math.fminimum_numf + libc.src.math.fminimum_numf128 libc.src.math.fminimum_numl libc.src.math.fminimum_mag libc.src.math.fminimum_magf diff --git a/libc/shared/math/fminimum_numf128.h b/libc/shared/math/fminimum_numf128.h index dcacd52b18a12..e654f0025bdf6 100644 --- a/libc/shared/math/fminimum_numf128.h +++ b/libc/shared/math/fminimum_numf128.h @@ -9,10 +9,6 @@ #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_NATIVE_FLOAT128 - #include "shared/libc_common.h" #include "src/__support/math/fminimum_numf128.h" @@ -24,6 +20,4 @@ using math::fminimum_numf128; } // namespace shared } // namespace LIBC_NAMESPACE_DECL -#endif // LIBC_TYPES_HAS_NATIVE_FLOAT128 - #endif // LLVM_LIBC_SHARED_MATH_FMINIMUM_NUMF128_H diff --git a/libc/src/__support/math/CMakeLists.txt b/libc/src/__support/math/CMakeLists.txt index e04aa6460598d..5f66dd5503a50 100644 --- a/libc/src/__support/math/CMakeLists.txt +++ b/libc/src/__support/math/CMakeLists.txt @@ -1358,7 +1358,7 @@ add_header_library( HDRS fminimum_numf128.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/fminimum_numf128.h b/libc/src/__support/math/fminimum_numf128.h index 6f3ac894a7d2b..607eae7ee0e6b 100644 --- a/libc/src/__support/math/fminimum_numf128.h +++ b/libc/src/__support/math/fminimum_numf128.h @@ -9,23 +9,20 @@ #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_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_numf128(float128 x, float128 y) { +using LIBC_NAMESPACE::fputil::Float128; + +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_NATIVE_FLOAT128 - #endif // LLVM_LIBC_SRC___SUPPORT_MATH_FMINIMUM_NUMF128_H diff --git a/libc/src/math/fminimum_numf128.h b/libc/src/math/fminimum_numf128.h index 1833e9e1c9f5c..3b02a6519e037 100644 --- a/libc/src/math/fminimum_numf128.h +++ b/libc/src/math/fminimum_numf128.h @@ -10,11 +10,16 @@ #ifndef LLVM_LIBC_SRC_MATH_FMINIMUM_NUMF128_H #define LLVM_LIBC_SRC_MATH_FMINIMUM_NUMF128_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_numf128(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 a13361d139d28..3df5ad768b3a0 100644 --- a/libc/src/math/generic/CMakeLists.txt +++ b/libc/src/math/generic/CMakeLists.txt @@ -2475,6 +2475,7 @@ add_entrypoint_object( HDRS ../fminimum_numf128.h DEPENDS + libc.src.__support.CPP.bit libc.src.__support.math.fminimum_numf128 ) diff --git a/libc/src/math/generic/fminimum_numf128.cpp b/libc/src/math/generic/fminimum_numf128.cpp index fec526cd19c41..793d3e6041a52 100644 --- a/libc/src/math/generic/fminimum_numf128.cpp +++ b/libc/src/math/generic/fminimum_numf128.cpp @@ -7,12 +7,16 @@ //===----------------------------------------------------------------------===// #include "src/math/fminimum_numf128.h" +#include "src/__support/CPP/bit.h" #include "src/__support/math/fminimum_numf128.h" namespace LIBC_NAMESPACE_DECL { +using LIBC_NAMESPACE::fputil::Float128; + LLVM_LIBC_FUNCTION(float128, fminimum_numf128, (float128 x, float128 y)) { - return math::fminimum_numf128(x, y); + return cpp::bit_cast<float128>(math::fminimum_numf128( + cpp::bit_cast<Float128>(x), cpp::bit_cast<Float128>(y))); } } // namespace LIBC_NAMESPACE_DECL diff --git a/libc/test/shared/shared_math_constexpr_test.cpp b/libc/test/shared/shared_math_constexpr_test.cpp index 77c0ae92842d3..e3cca0d15a4ea 100644 --- a/libc/test/shared/shared_math_constexpr_test.cpp +++ b/libc/test/shared/shared_math_constexpr_test.cpp @@ -401,6 +401,9 @@ static_assert(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))); static_assert(1 == LIBC_NAMESPACE::shared::iscanonicalf128(Float128(0.0))); static_assert(0 == LIBC_NAMESPACE::shared::isnanf128(Float128(0.0))); static_assert(0.0 == LIBC_NAMESPACE::shared::issignalingf128(Float128(0.0))); @@ -440,9 +443,6 @@ static_assert(float128(1.0) == static_assert(0.0f == LIBC_NAMESPACE::shared::fdivf128(float128(0.0), float128(1.0))); static_assert(0.0 == LIBC_NAMESPACE::shared::dsqrtf128(float128(0.0))); -static_assert(float128(0.0) == - LIBC_NAMESPACE::shared::fminimum_numf128(float128(0.0), - float128(0.0))); static_assert(float128(0.0) == LIBC_NAMESPACE::shared::fromfpf128(float128(0.0), 0, 32)); diff --git a/libc/test/shared/shared_math_test.cpp b/libc/test/shared/shared_math_test.cpp index fa39a0995ee65..f27145ca2ce26 100644 --- a/libc/test/shared/shared_math_test.cpp +++ b/libc/test/shared/shared_math_test.cpp @@ -598,6 +598,8 @@ TEST(LlvmLibcSharedMathTest, AllEmuFloat128) { 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))); EXPECT_EQ(1, LIBC_NAMESPACE::shared::iscanonicalf128(Float128(0.0))); EXPECT_EQ(0, LIBC_NAMESPACE::shared::isnanf128(Float128(0.0))); EXPECT_EQ(0, LIBC_NAMESPACE::shared::issignalingf128(Float128(0.0))); @@ -708,8 +710,6 @@ TEST(LlvmLibcSharedMathTest, AllFloat128) { 0.0f16, LIBC_NAMESPACE::shared::f16subf128(float128(0.0), float128(0.0))); EXPECT_FP_EQ(0.0f16, LIBC_NAMESPACE::shared::f16sqrtf128(float128(0.0))); #endif // LIBC_TYPES_HAS_FLOAT16 - EXPECT_FP_EQ(float128(0.0), LIBC_NAMESPACE::shared::fminimum_numf128( - float128(0.0), float128(0.0))); EXPECT_FP_EQ(float128(0.0), LIBC_NAMESPACE::shared::fromfpf128(float128(0.0), 0, 32)); EXPECT_FP_EQ(float128(0.0), diff --git a/libc/test/src/math/smoke/CMakeLists.txt b/libc/test/src/math/smoke/CMakeLists.txt index 017398d643fc6..8de09e54f0cb6 100644 --- a/libc/test/src/math/smoke/CMakeLists.txt +++ b/libc/test/src/math/smoke/CMakeLists.txt @@ -3339,6 +3339,7 @@ add_fp_unittest( HDRS FMinimumNumTest.h DEPENDS + libc.src.__support.FPUtil.float128 libc.src.math.fminimum_numf128 libc.src.__support.CPP.algorithm libc.src.__support.FPUtil.fp_bits diff --git a/libc/test/src/math/smoke/FMinimumNumTest.h b/libc/test/src/math/smoke/FMinimumNumTest.h index 10b7d7aab9343..bad31b0c647f7 100644 --- a/libc/test/src/math/smoke/FMinimumNumTest.h +++ b/libc/test/src/math/smoke/FMinimumNumTest.h @@ -80,7 +80,7 @@ class FMinimumNumTest : public LIBC_NAMESPACE::testing::FEnvSafeTest { continue; T x = xbits.get_val(); T y = ybits.get_val(); - if ((x == 0) && (y == 0)) + if ((x == T(0)) && (y == T(0))) continue; if (x > y) diff --git a/libc/test/src/math/smoke/fminimum_numf128_test.cpp b/libc/test/src/math/smoke/fminimum_numf128_test.cpp index d773d8973286e..863e177b06cbe 100644 --- a/libc/test/src/math/smoke/fminimum_numf128_test.cpp +++ b/libc/test/src/math/smoke/fminimum_numf128_test.cpp @@ -7,7 +7,12 @@ //===----------------------------------------------------------------------===// #include "FMinimumNumTest.h" +#include "src/__support/FPUtil/float128.h" #include "src/math/fminimum_numf128.h" +#ifndef LIBC_TYPES_HAS_NATIVE_FLOAT128 +using float128 = LIBC_NAMESPACE::fputil::Float128; +#endif // LIBC_TYPES_HAS_NATIVE_FLOAT128 + LIST_FMINIMUM_NUM_TESTS(float128, LIBC_NAMESPACE::fminimum_numf128) diff --git a/utils/bazel/llvm-project-overlay/libc/BUILD.bazel b/utils/bazel/llvm-project-overlay/libc/BUILD.bazel index 915372e8009de..d62292b588bd6 100644 --- a/utils/bazel/llvm-project-overlay/libc/BUILD.bazel +++ b/utils/bazel/llvm-project-overlay/libc/BUILD.bazel @@ -5883,8 +5883,8 @@ libc_support_library( hdrs = ["src/__support/math/fminimum_numf128.h"], deps = [ ":__support_fputil_basic_operations", + ":__support_fputil_float128", ":__support_macros_config", - ":llvm_libc_types_float128", ], ) @@ -12185,6 +12185,8 @@ libc_math_function( libc_math_function( name = "fminimum_numf128", additional_deps = [ + ":__support_cpp_bit", + ":__support_fputil_float128", ":__support_math_fminimum_numf128", ], ) diff --git a/utils/bazel/llvm-project-overlay/libc/test/src/math/smoke/BUILD.bazel b/utils/bazel/llvm-project-overlay/libc/test/src/math/smoke/BUILD.bazel index c4d7404d368f8..b98db6861ba7b 100644 --- a/utils/bazel/llvm-project-overlay/libc/test/src/math/smoke/BUILD.bazel +++ b/utils/bazel/llvm-project-overlay/libc/test/src/math/smoke/BUILD.bazel @@ -781,6 +781,9 @@ math_test( math_test( name = "fminimum_numf128", hdrs = ["FMinimumNumTest.h"], + deps = [ + "//libc:__support_fputil_float128", + ], ) math_test( >From cab8a32d6bcb285ee47cb39dab23353244887d36 Mon Sep 17 00:00:00 2001 From: Sukumarsawant <[email protected]> Date: Wed, 2 Sep 2026 17:55:21 +0530 Subject: [PATCH 3/3] nits --- libc/src/__support/math/CMakeLists.txt | 4 ++-- libc/test/src/math/smoke/CMakeLists.txt | 4 ++-- libc/test/src/math/smoke/fmaximum_numf128_test.cpp | 2 +- libc/test/src/math/smoke/fminimum_numf128_test.cpp | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/libc/src/__support/math/CMakeLists.txt b/libc/src/__support/math/CMakeLists.txt index 5f66dd5503a50..fdbf4d541ef35 100644 --- a/libc/src/__support/math/CMakeLists.txt +++ b/libc/src/__support/math/CMakeLists.txt @@ -1052,8 +1052,8 @@ add_header_library( HDRS fmaximum_numf128.h DEPENDS - libc.src.__support.FPUtil.float128 libc.src.__support.FPUtil.basic_operations + libc.src.__support.FPUtil.float128 libc.src.__support.macros.config ) @@ -1358,8 +1358,8 @@ add_header_library( HDRS fminimum_numf128.h DEPENDS - libc.src.__support.FPUtil.float128 libc.src.__support.FPUtil.basic_operations + libc.src.__support.FPUtil.float128 libc.src.__support.macros.config ) diff --git a/libc/test/src/math/smoke/CMakeLists.txt b/libc/test/src/math/smoke/CMakeLists.txt index 8de09e54f0cb6..0336beaf3457e 100644 --- a/libc/test/src/math/smoke/CMakeLists.txt +++ b/libc/test/src/math/smoke/CMakeLists.txt @@ -2878,9 +2878,9 @@ add_fp_unittest( HDRS FMaximumTest.h DEPENDS - libc.src.__support.FPUtil.float128 libc.src.math.fmaximumf128 libc.src.__support.CPP.algorithm + libc.src.__support.FPUtil.float128 libc.src.__support.FPUtil.fp_bits ) @@ -3225,9 +3225,9 @@ add_fp_unittest( HDRS FMinimumTest.h DEPENDS - libc.src.__support.FPUtil.float128 libc.src.math.fminimumf128 libc.src.__support.CPP.algorithm + libc.src.__support.FPUtil.float128 libc.src.__support.FPUtil.fp_bits ) diff --git a/libc/test/src/math/smoke/fmaximum_numf128_test.cpp b/libc/test/src/math/smoke/fmaximum_numf128_test.cpp index 8eb4df09d5e17..2e870609b3fee 100644 --- a/libc/test/src/math/smoke/fmaximum_numf128_test.cpp +++ b/libc/test/src/math/smoke/fmaximum_numf128_test.cpp @@ -7,8 +7,8 @@ //===----------------------------------------------------------------------===// #include "FMaximumNumTest.h" -#include "src/__support/FPUtil/float128.h" +#include "src/__support/FPUtil/float128.h" #include "src/math/fmaximum_numf128.h" #ifndef LIBC_TYPES_HAS_NATIVE_FLOAT128 diff --git a/libc/test/src/math/smoke/fminimum_numf128_test.cpp b/libc/test/src/math/smoke/fminimum_numf128_test.cpp index 863e177b06cbe..cc954e817daee 100644 --- a/libc/test/src/math/smoke/fminimum_numf128_test.cpp +++ b/libc/test/src/math/smoke/fminimum_numf128_test.cpp @@ -7,8 +7,8 @@ //===----------------------------------------------------------------------===// #include "FMinimumNumTest.h" -#include "src/__support/FPUtil/float128.h" +#include "src/__support/FPUtil/float128.h" #include "src/math/fminimum_numf128.h" #ifndef LIBC_TYPES_HAS_NATIVE_FLOAT128 _______________________________________________ llvm-branch-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
