[libc-commits] [libc] [llvm] [libc] Make sign functions use the emulated float128 type (PR #217389)
via libc-commits
libc-commits at lists.llvm.org
Mon Aug 31 04:37:13 PDT 2026
https://github.com/Sukumarsawant updated https://github.com/llvm/llvm-project/pull/217389
>From 9cefd9168cc3a4e2423f3fe0a98511c09c104d69 Mon Sep 17 00:00:00 2001
From: Sukumarsawant <sawantsukumar at gmail.com>
Date: Wed, 19 Aug 2026 21:58:10 +0530
Subject: [PATCH 1/3] fabsf128
---
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/fabsf128.h | 6 ------
libc/src/__support/math/CMakeLists.txt | 2 +-
libc/src/__support/math/fabsf128.h | 11 ++++-------
libc/src/math/fabsf128.h | 5 +++++
libc/src/math/generic/CMakeLists.txt | 1 +
libc/src/math/generic/fabsf128.cpp | 5 ++++-
libc/test/shared/shared_math_constexpr_test.cpp | 4 ++--
libc/test/shared/shared_math_test.cpp | 2 +-
libc/test/src/math/smoke/CMakeLists.txt | 1 +
libc/test/src/math/smoke/fabsf128_test.cpp | 5 +++++
utils/bazel/llvm-project-overlay/libc/BUILD.bazel | 4 +++-
.../libc/test/src/math/smoke/BUILD.bazel | 3 +++
25 files changed, 43 insertions(+), 27 deletions(-)
diff --git a/libc/config/baremetal/aarch64/entrypoints.txt b/libc/config/baremetal/aarch64/entrypoints.txt
index c9cad49711b88..df59fbbadddd8 100644
--- a/libc/config/baremetal/aarch64/entrypoints.txt
+++ b/libc/config/baremetal/aarch64/entrypoints.txt
@@ -400,6 +400,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.expm1f
libc.src.math.fabs
libc.src.math.fabsf
+ libc.src.math.fabsf128
libc.src.math.fabsl
libc.src.math.fadd
libc.src.math.faddl
@@ -756,7 +757,6 @@ if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
libc.src.math.dmulf128
libc.src.math.dsqrtf128
libc.src.math.dsubf128
- libc.src.math.fabsf128
libc.src.math.faddf128
libc.src.math.fdimf128
libc.src.math.fdivf128
diff --git a/libc/config/baremetal/arm/entrypoints.txt b/libc/config/baremetal/arm/entrypoints.txt
index a5005fd21bbe7..cd05d3fe56b65 100644
--- a/libc/config/baremetal/arm/entrypoints.txt
+++ b/libc/config/baremetal/arm/entrypoints.txt
@@ -412,6 +412,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.expm1f
libc.src.math.fabs
libc.src.math.fabsf
+ libc.src.math.fabsf128
libc.src.math.fabsl
libc.src.math.fadd
libc.src.math.faddl
@@ -767,7 +768,6 @@ if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
libc.src.math.dmulf128
libc.src.math.dsqrtf128
libc.src.math.dsubf128
- libc.src.math.fabsf128
libc.src.math.faddf128
libc.src.math.fdimf128
libc.src.math.fdivf128
diff --git a/libc/config/baremetal/riscv/entrypoints.txt b/libc/config/baremetal/riscv/entrypoints.txt
index f9f19a9c7b795..9d5bec84715d1 100644
--- a/libc/config/baremetal/riscv/entrypoints.txt
+++ b/libc/config/baremetal/riscv/entrypoints.txt
@@ -408,6 +408,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.expm1f
libc.src.math.fabs
libc.src.math.fabsf
+ libc.src.math.fabsf128
libc.src.math.fabsl
libc.src.math.fadd
libc.src.math.faddl
@@ -764,7 +765,6 @@ if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
libc.src.math.dmulf128
libc.src.math.dsqrtf128
libc.src.math.dsubf128
- libc.src.math.fabsf128
libc.src.math.faddf128
libc.src.math.fdimf128
libc.src.math.fdivf128
diff --git a/libc/config/darwin/aarch64/entrypoints.txt b/libc/config/darwin/aarch64/entrypoints.txt
index 7d7c35926fef3..1bb588524bf9c 100644
--- a/libc/config/darwin/aarch64/entrypoints.txt
+++ b/libc/config/darwin/aarch64/entrypoints.txt
@@ -219,6 +219,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.expm1f
libc.src.math.fabs
libc.src.math.fabsf
+ libc.src.math.fabsf128
libc.src.math.fabsl
libc.src.math.fadd
libc.src.math.faddl
@@ -576,7 +577,6 @@ if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
libc.src.math.dmulf128
libc.src.math.dsqrtf128
libc.src.math.dsubf128
- libc.src.math.fabsf128
libc.src.math.faddf128
libc.src.math.fdimf128
libc.src.math.fdivf128
diff --git a/libc/config/darwin/x86_64/entrypoints.txt b/libc/config/darwin/x86_64/entrypoints.txt
index 7827471b7b309..300819d3ea120 100644
--- a/libc/config/darwin/x86_64/entrypoints.txt
+++ b/libc/config/darwin/x86_64/entrypoints.txt
@@ -138,6 +138,7 @@ set(TARGET_LIBM_ENTRYPOINTS
#libc.src.math.expm1f
#libc.src.math.fabs
#libc.src.math.fabsf
+ #libc.src.math.fabsf128
#libc.src.math.fabsl
#libc.src.math.fdim
#libc.src.math.fdimf
diff --git a/libc/config/freebsd/x86_64/entrypoints.txt b/libc/config/freebsd/x86_64/entrypoints.txt
index 251ba60779514..055c1a11ada6a 100644
--- a/libc/config/freebsd/x86_64/entrypoints.txt
+++ b/libc/config/freebsd/x86_64/entrypoints.txt
@@ -155,6 +155,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.expm1f
libc.src.math.fabs
libc.src.math.fabsf
+ libc.src.math.fabsf128
libc.src.math.fabsl
libc.src.math.fadd
libc.src.math.faddl
@@ -515,7 +516,6 @@ if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
libc.src.math.dmulf128
libc.src.math.dsqrtf128
libc.src.math.dsubf128
- libc.src.math.fabsf128
libc.src.math.faddf128
libc.src.math.fdimf128
libc.src.math.fdivf128
diff --git a/libc/config/gpu/amdgpu/entrypoints.txt b/libc/config/gpu/amdgpu/entrypoints.txt
index 59e3e2a5e95b3..60a310b7810a1 100644
--- a/libc/config/gpu/amdgpu/entrypoints.txt
+++ b/libc/config/gpu/amdgpu/entrypoints.txt
@@ -348,6 +348,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.expm1f
libc.src.math.fabs
libc.src.math.fabsf
+ libc.src.math.fabsf128
libc.src.math.fabsl
libc.src.math.fadd
libc.src.math.faddl
diff --git a/libc/config/gpu/nvptx/entrypoints.txt b/libc/config/gpu/nvptx/entrypoints.txt
index 57e35bdabb7b0..809126007c2bf 100644
--- a/libc/config/gpu/nvptx/entrypoints.txt
+++ b/libc/config/gpu/nvptx/entrypoints.txt
@@ -344,6 +344,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.expm1f
libc.src.math.fabs
libc.src.math.fabsf
+ libc.src.math.fabsf128
libc.src.math.fabsl
libc.src.math.fadd
libc.src.math.faddl
diff --git a/libc/config/linux/aarch64/entrypoints.txt b/libc/config/linux/aarch64/entrypoints.txt
index 68ce4dd591806..cc895cf7cf52f 100644
--- a/libc/config/linux/aarch64/entrypoints.txt
+++ b/libc/config/linux/aarch64/entrypoints.txt
@@ -569,6 +569,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.expm1f
libc.src.math.fabs
libc.src.math.fabsf
+ libc.src.math.fabsf128
libc.src.math.fabsl
libc.src.math.fadd
libc.src.math.faddl
@@ -915,7 +916,6 @@ if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
libc.src.math.dmulf128
libc.src.math.dsqrtf128
libc.src.math.dsubf128
- libc.src.math.fabsf128
libc.src.math.faddf128
libc.src.math.fdimf128
libc.src.math.fdivf128
diff --git a/libc/config/linux/arm/entrypoints.txt b/libc/config/linux/arm/entrypoints.txt
index 4adc554ea36cb..c99bff1537eb4 100644
--- a/libc/config/linux/arm/entrypoints.txt
+++ b/libc/config/linux/arm/entrypoints.txt
@@ -392,6 +392,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.expm1f
libc.src.math.fabs
libc.src.math.fabsf
+ libc.src.math.fabsf128
libc.src.math.fabsl
libc.src.math.fadd
libc.src.math.faddl
diff --git a/libc/config/linux/riscv/entrypoints.txt b/libc/config/linux/riscv/entrypoints.txt
index 40fef13470322..128748f8cd2b8 100644
--- a/libc/config/linux/riscv/entrypoints.txt
+++ b/libc/config/linux/riscv/entrypoints.txt
@@ -634,6 +634,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.expm1f
libc.src.math.fabs
libc.src.math.fabsf
+ libc.src.math.fabsf128
libc.src.math.fabsl
libc.src.math.fadd
libc.src.math.faddl
@@ -1001,7 +1002,6 @@ if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
libc.src.math.dmulf128
libc.src.math.dsqrtf128
libc.src.math.dsubf128
- libc.src.math.fabsf128
libc.src.math.faddf128
libc.src.math.fdimf128
libc.src.math.fdivf128
diff --git a/libc/config/linux/x86_64/entrypoints.txt b/libc/config/linux/x86_64/entrypoints.txt
index 99020a03ff3f7..afc8ddf576320 100644
--- a/libc/config/linux/x86_64/entrypoints.txt
+++ b/libc/config/linux/x86_64/entrypoints.txt
@@ -643,6 +643,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.expm1f
libc.src.math.fabs
libc.src.math.fabsf
+ libc.src.math.fabsf128
libc.src.math.fabsl
libc.src.math.fadd
libc.src.math.faddl
@@ -1010,7 +1011,6 @@ if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
libc.src.math.dmulf128
libc.src.math.dsqrtf128
libc.src.math.dsubf128
- libc.src.math.fabsf128
libc.src.math.faddf128
libc.src.math.fdimf128
libc.src.math.fdivf128
diff --git a/libc/config/windows/entrypoints.txt b/libc/config/windows/entrypoints.txt
index 075a691fbff43..62356d0c65503 100644
--- a/libc/config/windows/entrypoints.txt
+++ b/libc/config/windows/entrypoints.txt
@@ -187,6 +187,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.expm1f
libc.src.math.fabs
libc.src.math.fabsf
+ libc.src.math.fabsf128
libc.src.math.fabsl
libc.src.math.fadd
libc.src.math.faddl
diff --git a/libc/shared/math/fabsf128.h b/libc/shared/math/fabsf128.h
index 88e4d03686832..037553bcb97ee 100644
--- a/libc/shared/math/fabsf128.h
+++ b/libc/shared/math/fabsf128.h
@@ -9,10 +9,6 @@
#ifndef LLVM_LIBC_SHARED_MATH_FABSF128_H
#define LLVM_LIBC_SHARED_MATH_FABSF128_H
-#include "include/llvm-libc-types/float128.h"
-
-#ifdef LIBC_TYPES_HAS_NATIVE_FLOAT128
-
#include "shared/libc_common.h"
#include "src/__support/math/fabsf128.h"
@@ -24,6 +20,4 @@ using math::fabsf128;
} // namespace shared
} // namespace LIBC_NAMESPACE_DECL
-#endif // LIBC_TYPES_HAS_NATIVE_FLOAT128
-
#endif // LLVM_LIBC_SHARED_MATH_FABSF128_H
diff --git a/libc/src/__support/math/CMakeLists.txt b/libc/src/__support/math/CMakeLists.txt
index 2b63cc6ee4cba..cac5151ba1949 100644
--- a/libc/src/__support/math/CMakeLists.txt
+++ b/libc/src/__support/math/CMakeLists.txt
@@ -3246,7 +3246,7 @@ add_header_library(
HDRS
fabsf128.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/fabsf128.h b/libc/src/__support/math/fabsf128.h
index 242c91ff8e332..78c68e58ad81d 100644
--- a/libc/src/__support/math/fabsf128.h
+++ b/libc/src/__support/math/fabsf128.h
@@ -9,21 +9,18 @@
#ifndef LLVM_LIBC_SRC___SUPPORT_MATH_FABSF128_H
#define LLVM_LIBC_SRC___SUPPORT_MATH_FABSF128_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 fabsf128(float128 x) { return fputil::abs(x); }
+using LIBC_NAMESPACE::fputil::Float128;
+
+LIBC_INLINE constexpr Float128 fabsf128(Float128 x) { return fputil::abs(x); }
} // namespace math
} // namespace LIBC_NAMESPACE_DECL
-#endif // LIBC_TYPES_HAS_NATIVE_FLOAT128
-
#endif // LLVM_LIBC_SRC___SUPPORT_MATH_FABSF128_H
diff --git a/libc/src/math/fabsf128.h b/libc/src/math/fabsf128.h
index 4507e57c3cdc4..b196ef37b3f52 100644
--- a/libc/src/math/fabsf128.h
+++ b/libc/src/math/fabsf128.h
@@ -9,11 +9,16 @@
#ifndef LLVM_LIBC_SRC_MATH_FABSF128_H
#define LLVM_LIBC_SRC_MATH_FABSF128_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 fabsf128(float128 x);
} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/CMakeLists.txt b/libc/src/math/generic/CMakeLists.txt
index e80741e20d397..955639d2703ce 100644
--- a/libc/src/math/generic/CMakeLists.txt
+++ b/libc/src/math/generic/CMakeLists.txt
@@ -515,6 +515,7 @@ add_entrypoint_object(
HDRS
../fabsf128.h
DEPENDS
+ libc.src.__support.CPP.bit
libc.src.__support.math.fabsf128
)
diff --git a/libc/src/math/generic/fabsf128.cpp b/libc/src/math/generic/fabsf128.cpp
index 1f54d141600f5..0045bcd49d02f 100644
--- a/libc/src/math/generic/fabsf128.cpp
+++ b/libc/src/math/generic/fabsf128.cpp
@@ -7,12 +7,15 @@
//===----------------------------------------------------------------------===//
#include "src/math/fabsf128.h"
+#include "src/__support/CPP/bit.h"
#include "src/__support/math/fabsf128.h"
namespace LIBC_NAMESPACE_DECL {
+using LIBC_NAMESPACE::fputil::Float128;
+
LLVM_LIBC_FUNCTION(float128, fabsf128, (float128 x)) {
- return math::fabsf128(x);
+ return cpp::bit_cast<float128>(math::fabsf128(cpp::bit_cast<Float128>(x)));
}
} // 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 c04f1a361395a..ca7d21cd64d7c 100644
--- a/libc/test/shared/shared_math_constexpr_test.cpp
+++ b/libc/test/shared/shared_math_constexpr_test.cpp
@@ -381,6 +381,8 @@ static_assert(0 == LIBC_NAMESPACE::shared::isnanl(0.0L));
//===----------------------------------------------------------------------===//
static_assert(Float128(0.0) == LIBC_NAMESPACE::shared::ceilf128(Float128(0.0)));
+static_assert(Float128(1.0) ==
+ LIBC_NAMESPACE::shared::fabsf128(Float128(-1.0)));
static_assert(Float128(0.0) ==
LIBC_NAMESPACE::shared::floorf128(Float128(0.0)));
static_assert(Float128(0.0) ==
@@ -415,8 +417,6 @@ static_assert(0 == [] {
float128 x = float128(0.0);
return LIBC_NAMESPACE::shared::canonicalizef128(&cx, &x);
}());
-static_assert(float128(1.0) ==
- LIBC_NAMESPACE::shared::fabsf128(float128(-1.0)));
static_assert(float128(0.0) ==
LIBC_NAMESPACE::shared::copysignf128(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 737efdb09d8c5..5d6f435a1e347 100644
--- a/libc/test/shared/shared_math_test.cpp
+++ b/libc/test/shared/shared_math_test.cpp
@@ -584,6 +584,7 @@ TEST(LlvmLibcSharedMathTest, AllEmuFloat128) {
EXPECT_FP_EQ(Float128(0.0),
LIBC_NAMESPACE::shared::atan2f128(Float128(0.0), Float128(0.0)));
EXPECT_FP_EQ(Float128(0.0), LIBC_NAMESPACE::shared::ceilf128(Float128(0.0)));
+ EXPECT_FP_EQ(Float128(0.0), LIBC_NAMESPACE::shared::fabsf128(Float128(0.0)));
EXPECT_FP_EQ(Float128(0.0), LIBC_NAMESPACE::shared::floorf128(Float128(0.0)));
EXPECT_FP_EQ(Float128(0.0),
LIBC_NAMESPACE::shared::fmaxf128(Float128(0.0), Float128(0.0)));
@@ -658,7 +659,6 @@ TEST(LlvmLibcSharedMathTest, AllFloat128) {
LIBC_NAMESPACE::shared::dmulf128(float128(0.0), float128(0.0)));
EXPECT_FP_EQ(0.0,
LIBC_NAMESPACE::shared::dsubf128(float128(0.0), float128(0.0)));
- EXPECT_FP_EQ(float128(0.0), LIBC_NAMESPACE::shared::fabsf128(float128(0.0)));
EXPECT_FP_EQ(float128(0.0),
LIBC_NAMESPACE::shared::faddf128(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 e03598440971d..91d48ea4481b3 100644
--- a/libc/test/src/math/smoke/CMakeLists.txt
+++ b/libc/test/src/math/smoke/CMakeLists.txt
@@ -240,6 +240,7 @@ add_fp_unittest(
HDRS
FAbsTest.h
DEPENDS
+ libc.src.__support.FPUtil.float128
libc.src.math.fabsf128
libc.src.__support.FPUtil.fp_bits
)
diff --git a/libc/test/src/math/smoke/fabsf128_test.cpp b/libc/test/src/math/smoke/fabsf128_test.cpp
index 9807179efa990..cb18c0da532dc 100644
--- a/libc/test/src/math/smoke/fabsf128_test.cpp
+++ b/libc/test/src/math/smoke/fabsf128_test.cpp
@@ -7,7 +7,12 @@
//===----------------------------------------------------------------------===//
#include "FAbsTest.h"
+#include "src/__support/FPUtil/float128.h"
#include "src/math/fabsf128.h"
+#ifndef LIBC_TYPES_HAS_NATIVE_FLOAT128
+using float128 = LIBC_NAMESPACE::fputil::Float128;
+#endif // LIBC_TYPES_HAS_NATIVE_FLOAT128
+
LIST_FABS_TESTS(float128, LIBC_NAMESPACE::fabsf128)
diff --git a/utils/bazel/llvm-project-overlay/libc/BUILD.bazel b/utils/bazel/llvm-project-overlay/libc/BUILD.bazel
index b423273402676..2799a70c1a461 100644
--- a/utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+++ b/utils/bazel/llvm-project-overlay/libc/BUILD.bazel
@@ -7786,8 +7786,8 @@ libc_support_library(
hdrs = ["src/__support/math/fabsf128.h"],
deps = [
":__support_fputil_basic_operations",
+ ":__support_fputil_float128",
":__support_macros_config",
- ":llvm_libc_types_float128",
],
)
@@ -11636,6 +11636,8 @@ libc_math_function(
libc_math_function(
name = "fabsf128",
additional_deps = [
+ ":__support_cpp_bit",
+ ":__support_fputil_float128",
":__support_math_fabsf128",
],
)
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 f84e7ec8cb990..056634a0108e6 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
@@ -402,6 +402,9 @@ math_test(
math_test(
name = "fabsf128",
hdrs = ["FAbsTest.h"],
+ deps = [
+ "//libc:__support_fputil_float128",
+ ],
)
math_test(
>From 0745b86e7ca6412519d7280cd6e451f1875a5be1 Mon Sep 17 00:00:00 2001
From: Sukumarsawant <sawantsukumar at gmail.com>
Date: Wed, 19 Aug 2026 21:59:13 +0530
Subject: [PATCH 2/3] copysignf128
---
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/copysignf128.h | 6 ------
libc/src/__support/math/CMakeLists.txt | 2 +-
libc/src/__support/math/copysignf128.h | 11 ++++-------
libc/src/math/copysignf128.h | 5 +++++
libc/src/math/generic/CMakeLists.txt | 1 +
libc/src/math/generic/copysignf128.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/copysignf128_test.cpp | 5 +++++
utils/bazel/llvm-project-overlay/libc/BUILD.bazel | 4 +++-
.../libc/test/src/math/smoke/BUILD.bazel | 3 +++
25 files changed, 46 insertions(+), 29 deletions(-)
diff --git a/libc/config/baremetal/aarch64/entrypoints.txt b/libc/config/baremetal/aarch64/entrypoints.txt
index df59fbbadddd8..26d01d0e2c95d 100644
--- a/libc/config/baremetal/aarch64/entrypoints.txt
+++ b/libc/config/baremetal/aarch64/entrypoints.txt
@@ -376,6 +376,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.ceill
libc.src.math.copysign
libc.src.math.copysignf
+ libc.src.math.copysignf128
libc.src.math.copysignl
libc.src.math.cos
libc.src.math.cosf
@@ -750,7 +751,6 @@ if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
list(APPEND TARGET_LIBM_ENTRYPOINTS
# math.h C23 _Float128 entrypoints
libc.src.math.canonicalizef128
- libc.src.math.copysignf128
libc.src.math.daddf128
libc.src.math.ddivf128
libc.src.math.dfmaf128
diff --git a/libc/config/baremetal/arm/entrypoints.txt b/libc/config/baremetal/arm/entrypoints.txt
index cd05d3fe56b65..a93736660c3e5 100644
--- a/libc/config/baremetal/arm/entrypoints.txt
+++ b/libc/config/baremetal/arm/entrypoints.txt
@@ -388,6 +388,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.ceill
libc.src.math.copysign
libc.src.math.copysignf
+ libc.src.math.copysignf128
libc.src.math.copysignl
libc.src.math.cos
libc.src.math.cosf
@@ -761,7 +762,6 @@ if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
list(APPEND TARGET_LIBM_ENTRYPOINTS
# math.h C23 _Float128 entrypoints
libc.src.math.canonicalizef128
- libc.src.math.copysignf128
libc.src.math.daddf128
libc.src.math.ddivf128
libc.src.math.dfmaf128
diff --git a/libc/config/baremetal/riscv/entrypoints.txt b/libc/config/baremetal/riscv/entrypoints.txt
index 9d5bec84715d1..2aae0cd412333 100644
--- a/libc/config/baremetal/riscv/entrypoints.txt
+++ b/libc/config/baremetal/riscv/entrypoints.txt
@@ -384,6 +384,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.ceill
libc.src.math.copysign
libc.src.math.copysignf
+ libc.src.math.copysignf128
libc.src.math.copysignl
libc.src.math.cos
libc.src.math.cosf
@@ -758,7 +759,6 @@ if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
list(APPEND TARGET_LIBM_ENTRYPOINTS
# math.h C23 _Float128 entrypoints
libc.src.math.canonicalizef128
- libc.src.math.copysignf128
libc.src.math.daddf128
libc.src.math.ddivf128
libc.src.math.dfmaf128
diff --git a/libc/config/darwin/aarch64/entrypoints.txt b/libc/config/darwin/aarch64/entrypoints.txt
index 1bb588524bf9c..6d024d80be2d5 100644
--- a/libc/config/darwin/aarch64/entrypoints.txt
+++ b/libc/config/darwin/aarch64/entrypoints.txt
@@ -195,6 +195,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.ceill
libc.src.math.copysign
libc.src.math.copysignf
+ libc.src.math.copysignf128
libc.src.math.copysignl
libc.src.math.cos
libc.src.math.cosf
@@ -570,7 +571,6 @@ if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
list(APPEND TARGET_LIBM_ENTRYPOINTS
# math.h C23 _Float128 entrypoints
libc.src.math.canonicalizef128
- libc.src.math.copysignf128
libc.src.math.daddf128
libc.src.math.ddivf128
libc.src.math.dfmaf128
diff --git a/libc/config/darwin/x86_64/entrypoints.txt b/libc/config/darwin/x86_64/entrypoints.txt
index 300819d3ea120..bbb9bb990eee3 100644
--- a/libc/config/darwin/x86_64/entrypoints.txt
+++ b/libc/config/darwin/x86_64/entrypoints.txt
@@ -121,6 +121,7 @@ set(TARGET_LIBM_ENTRYPOINTS
#libc.src.math.atan2f128
#libc.src.math.copysign
#libc.src.math.copysignf
+ #libc.src.math.copysignf128
#libc.src.math.copysignl
#libc.src.math.ceil
#libc.src.math.ceilf
diff --git a/libc/config/freebsd/x86_64/entrypoints.txt b/libc/config/freebsd/x86_64/entrypoints.txt
index 055c1a11ada6a..17b71e9c148d1 100644
--- a/libc/config/freebsd/x86_64/entrypoints.txt
+++ b/libc/config/freebsd/x86_64/entrypoints.txt
@@ -132,6 +132,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.cbrtf
libc.src.math.copysign
libc.src.math.copysignf
+ libc.src.math.copysignf128
libc.src.math.copysignl
libc.src.math.ceil
libc.src.math.ceilf
@@ -509,7 +510,6 @@ if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
list(APPEND TARGET_LIBM_ENTRYPOINTS
libc.src.math.atan2l
libc.src.math.canonicalizef128
- libc.src.math.copysignf128
libc.src.math.daddf128
libc.src.math.ddivf128
libc.src.math.dfmaf128
diff --git a/libc/config/gpu/amdgpu/entrypoints.txt b/libc/config/gpu/amdgpu/entrypoints.txt
index 60a310b7810a1..8220952c46cd9 100644
--- a/libc/config/gpu/amdgpu/entrypoints.txt
+++ b/libc/config/gpu/amdgpu/entrypoints.txt
@@ -327,6 +327,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.ceill
libc.src.math.copysign
libc.src.math.copysignf
+ libc.src.math.copysignf128
libc.src.math.copysignl
libc.src.math.cos
libc.src.math.cosf
diff --git a/libc/config/gpu/nvptx/entrypoints.txt b/libc/config/gpu/nvptx/entrypoints.txt
index 809126007c2bf..18678d3e9982c 100644
--- a/libc/config/gpu/nvptx/entrypoints.txt
+++ b/libc/config/gpu/nvptx/entrypoints.txt
@@ -323,6 +323,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.ceill
libc.src.math.copysign
libc.src.math.copysignf
+ libc.src.math.copysignf128
libc.src.math.copysignl
libc.src.math.cos
libc.src.math.cosf
diff --git a/libc/config/linux/aarch64/entrypoints.txt b/libc/config/linux/aarch64/entrypoints.txt
index cc895cf7cf52f..9f67ae6f9f0aa 100644
--- a/libc/config/linux/aarch64/entrypoints.txt
+++ b/libc/config/linux/aarch64/entrypoints.txt
@@ -545,6 +545,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.ceill
libc.src.math.copysign
libc.src.math.copysignf
+ libc.src.math.copysignf128
libc.src.math.copysignl
libc.src.math.cos
libc.src.math.cosf
@@ -909,7 +910,6 @@ if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
list(APPEND TARGET_LIBM_ENTRYPOINTS
# math.h C23 _Float128 entrypoints
libc.src.math.canonicalizef128
- libc.src.math.copysignf128
libc.src.math.daddf128
libc.src.math.ddivf128
libc.src.math.dfmaf128
diff --git a/libc/config/linux/arm/entrypoints.txt b/libc/config/linux/arm/entrypoints.txt
index c99bff1537eb4..10aaadbb1ee39 100644
--- a/libc/config/linux/arm/entrypoints.txt
+++ b/libc/config/linux/arm/entrypoints.txt
@@ -375,6 +375,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.ceill
libc.src.math.copysign
libc.src.math.copysignf
+ libc.src.math.copysignf128
libc.src.math.copysignl
libc.src.math.cos
libc.src.math.cosf
diff --git a/libc/config/linux/riscv/entrypoints.txt b/libc/config/linux/riscv/entrypoints.txt
index 128748f8cd2b8..7281f35243c2d 100644
--- a/libc/config/linux/riscv/entrypoints.txt
+++ b/libc/config/linux/riscv/entrypoints.txt
@@ -610,6 +610,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.ceill
libc.src.math.copysign
libc.src.math.copysignf
+ libc.src.math.copysignf128
libc.src.math.copysignl
libc.src.math.cos
libc.src.math.cosf
@@ -995,7 +996,6 @@ if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
# math.h C23 _Float128 entrypoints
libc.src.math.atan2l
libc.src.math.canonicalizef128
- libc.src.math.copysignf128
libc.src.math.daddf128
libc.src.math.ddivf128
libc.src.math.dfmaf128
diff --git a/libc/config/linux/x86_64/entrypoints.txt b/libc/config/linux/x86_64/entrypoints.txt
index afc8ddf576320..8ea21c979f603 100644
--- a/libc/config/linux/x86_64/entrypoints.txt
+++ b/libc/config/linux/x86_64/entrypoints.txt
@@ -619,6 +619,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.ceill
libc.src.math.copysign
libc.src.math.copysignf
+ libc.src.math.copysignf128
libc.src.math.copysignl
libc.src.math.cos
libc.src.math.cosf
@@ -1004,7 +1005,6 @@ if(LIBC_TYPES_HAS_NATIVE_FLOAT128)
# math.h C23 _Float128 entrypoints
libc.src.math.atan2l
libc.src.math.canonicalizef128
- libc.src.math.copysignf128
libc.src.math.daddf128
libc.src.math.ddivf128
libc.src.math.dfmaf128
diff --git a/libc/config/windows/entrypoints.txt b/libc/config/windows/entrypoints.txt
index 62356d0c65503..26b65e2d090b7 100644
--- a/libc/config/windows/entrypoints.txt
+++ b/libc/config/windows/entrypoints.txt
@@ -164,6 +164,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.cbrtbf16
libc.src.math.copysign
libc.src.math.copysignf
+ libc.src.math.copysignf128
libc.src.math.copysignl
libc.src.math.ceil
libc.src.math.ceilf
diff --git a/libc/shared/math/copysignf128.h b/libc/shared/math/copysignf128.h
index 1b23f61f910fd..b6e156b96afd6 100644
--- a/libc/shared/math/copysignf128.h
+++ b/libc/shared/math/copysignf128.h
@@ -9,10 +9,6 @@
#ifndef LLVM_LIBC_SHARED_MATH_COPYSIGNF128_H
#define LLVM_LIBC_SHARED_MATH_COPYSIGNF128_H
-#include "include/llvm-libc-types/float128.h"
-
-#ifdef LIBC_TYPES_HAS_NATIVE_FLOAT128
-
#include "shared/libc_common.h"
#include "src/__support/math/copysignf128.h"
@@ -24,6 +20,4 @@ using math::copysignf128;
} // namespace shared
} // namespace LIBC_NAMESPACE_DECL
-#endif // LIBC_TYPES_HAS_NATIVE_FLOAT128
-
#endif // LLVM_LIBC_SHARED_MATH_COPYSIGNF128_H
diff --git a/libc/src/__support/math/CMakeLists.txt b/libc/src/__support/math/CMakeLists.txt
index cac5151ba1949..e1c3506bb5e75 100644
--- a/libc/src/__support/math/CMakeLists.txt
+++ b/libc/src/__support/math/CMakeLists.txt
@@ -2765,7 +2765,7 @@ add_header_library(
HDRS
copysignf128.h
DEPENDS
- libc.include.llvm-libc-types.float128
+ libc.src.__support.FPUtil.float128
libc.src.__support.FPUtil.manipulation_functions
libc.src.__support.macros.config
)
diff --git a/libc/src/__support/math/copysignf128.h b/libc/src/__support/math/copysignf128.h
index 55b0c4caee205..5c77c95050e32 100644
--- a/libc/src/__support/math/copysignf128.h
+++ b/libc/src/__support/math/copysignf128.h
@@ -9,23 +9,20 @@
#ifndef LLVM_LIBC_SRC___SUPPORT_MATH_COPYSIGNF128_H
#define LLVM_LIBC_SRC___SUPPORT_MATH_COPYSIGNF128_H
-#include "include/llvm-libc-types/float128.h"
-
-#ifdef LIBC_TYPES_HAS_NATIVE_FLOAT128
-
#include "src/__support/FPUtil/ManipulationFunctions.h"
+#include "src/__support/FPUtil/float128.h"
#include "src/__support/macros/config.h"
namespace LIBC_NAMESPACE_DECL {
namespace math {
-LIBC_INLINE constexpr float128 copysignf128(float128 x, float128 y) {
+using LIBC_NAMESPACE::fputil::Float128;
+
+LIBC_INLINE constexpr Float128 copysignf128(Float128 x, Float128 y) {
return fputil::copysign(x, y);
}
} // namespace math
} // namespace LIBC_NAMESPACE_DECL
-#endif // LIBC_TYPES_HAS_NATIVE_FLOAT128
-
#endif // LLVM_LIBC_SRC___SUPPORT_MATH_COPYSIGNF128_H
diff --git a/libc/src/math/copysignf128.h b/libc/src/math/copysignf128.h
index b001b8e61b258..bd98ccd8de3dd 100644
--- a/libc/src/math/copysignf128.h
+++ b/libc/src/math/copysignf128.h
@@ -9,11 +9,16 @@
#ifndef LLVM_LIBC_SRC_MATH_COPYSIGNF128_H
#define LLVM_LIBC_SRC_MATH_COPYSIGNF128_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 copysignf128(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 955639d2703ce..bf7bbf3f6116b 100644
--- a/libc/src/math/generic/CMakeLists.txt
+++ b/libc/src/math/generic/CMakeLists.txt
@@ -1466,6 +1466,7 @@ add_entrypoint_object(
HDRS
../copysignf128.h
DEPENDS
+ libc.src.__support.CPP.bit
libc.src.__support.math.copysignf128
)
diff --git a/libc/src/math/generic/copysignf128.cpp b/libc/src/math/generic/copysignf128.cpp
index 9af98f0d10723..1b0e14790549f 100644
--- a/libc/src/math/generic/copysignf128.cpp
+++ b/libc/src/math/generic/copysignf128.cpp
@@ -7,12 +7,16 @@
//===----------------------------------------------------------------------===//
#include "src/math/copysignf128.h"
+#include "src/__support/CPP/bit.h"
#include "src/__support/math/copysignf128.h"
namespace LIBC_NAMESPACE_DECL {
+using LIBC_NAMESPACE::fputil::Float128;
+
LLVM_LIBC_FUNCTION(float128, copysignf128, (float128 x, float128 y)) {
- return math::copysignf128(x, y);
+ return cpp::bit_cast<float128>(math::copysignf128(
+ 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 ca7d21cd64d7c..0e6ef3676ccfd 100644
--- a/libc/test/shared/shared_math_constexpr_test.cpp
+++ b/libc/test/shared/shared_math_constexpr_test.cpp
@@ -381,6 +381,9 @@ static_assert(0 == LIBC_NAMESPACE::shared::isnanl(0.0L));
//===----------------------------------------------------------------------===//
static_assert(Float128(0.0) == LIBC_NAMESPACE::shared::ceilf128(Float128(0.0)));
+static_assert(Float128(0.0) ==
+ LIBC_NAMESPACE::shared::copysignf128(Float128(0.0),
+ Float128(0.0)));
static_assert(Float128(1.0) ==
LIBC_NAMESPACE::shared::fabsf128(Float128(-1.0)));
static_assert(Float128(0.0) ==
@@ -417,9 +420,6 @@ static_assert(0 == [] {
float128 x = float128(0.0);
return LIBC_NAMESPACE::shared::canonicalizef128(&cx, &x);
}());
-static_assert(float128(0.0) ==
- LIBC_NAMESPACE::shared::copysignf128(float128(0.0),
- float128(0.0)));
static_assert(0.0 ==
LIBC_NAMESPACE::shared::ddivf128(float128(0.0), float128(1.0)));
static_assert(0.0 ==
diff --git a/libc/test/shared/shared_math_test.cpp b/libc/test/shared/shared_math_test.cpp
index 5d6f435a1e347..b713aa9a376d3 100644
--- a/libc/test/shared/shared_math_test.cpp
+++ b/libc/test/shared/shared_math_test.cpp
@@ -584,6 +584,8 @@ TEST(LlvmLibcSharedMathTest, AllEmuFloat128) {
EXPECT_FP_EQ(Float128(0.0),
LIBC_NAMESPACE::shared::atan2f128(Float128(0.0), Float128(0.0)));
EXPECT_FP_EQ(Float128(0.0), LIBC_NAMESPACE::shared::ceilf128(Float128(0.0)));
+ EXPECT_FP_EQ(Float128(0.0), LIBC_NAMESPACE::shared::copysignf128(
+ Float128(0.0), Float128(0.0)));
EXPECT_FP_EQ(Float128(0.0), LIBC_NAMESPACE::shared::fabsf128(Float128(0.0)));
EXPECT_FP_EQ(Float128(0.0), LIBC_NAMESPACE::shared::floorf128(Float128(0.0)));
EXPECT_FP_EQ(Float128(0.0),
@@ -649,8 +651,6 @@ TEST(LlvmLibcSharedMathTest, AllFloat128) {
float128(0.0), float128(0.0)));
EXPECT_FP_EQ(bfloat16(2.0), LIBC_NAMESPACE::shared::bf16divf128(
float128(4.0), float128(2.0)));
- EXPECT_FP_EQ(float128(0.0), LIBC_NAMESPACE::shared::copysignf128(
- float128(0.0), float128(0.0)));
EXPECT_FP_EQ(float128(0.0),
LIBC_NAMESPACE::shared::daddf128(float128(0.0), float128(0.0)));
EXPECT_FP_EQ(1.0,
diff --git a/libc/test/src/math/smoke/CMakeLists.txt b/libc/test/src/math/smoke/CMakeLists.txt
index 91d48ea4481b3..569746d6568e2 100644
--- a/libc/test/src/math/smoke/CMakeLists.txt
+++ b/libc/test/src/math/smoke/CMakeLists.txt
@@ -1656,6 +1656,7 @@ add_fp_unittest(
HDRS
CopySignTest.h
DEPENDS
+ libc.src.__support.FPUtil.float128
libc.src.math.copysignf128
libc.src.__support.CPP.algorithm
libc.src.__support.FPUtil.fp_bits
diff --git a/libc/test/src/math/smoke/copysignf128_test.cpp b/libc/test/src/math/smoke/copysignf128_test.cpp
index 48b41deb71d53..2ee660c509036 100644
--- a/libc/test/src/math/smoke/copysignf128_test.cpp
+++ b/libc/test/src/math/smoke/copysignf128_test.cpp
@@ -7,7 +7,12 @@
//===----------------------------------------------------------------------===//
#include "CopySignTest.h"
+#include "src/__support/FPUtil/float128.h"
#include "src/math/copysignf128.h"
+#ifndef LIBC_TYPES_HAS_NATIVE_FLOAT128
+using float128 = LIBC_NAMESPACE::fputil::Float128;
+#endif // LIBC_TYPES_HAS_NATIVE_FLOAT128
+
LIST_COPYSIGN_TESTS(float128, LIBC_NAMESPACE::copysignf128)
diff --git a/utils/bazel/llvm-project-overlay/libc/BUILD.bazel b/utils/bazel/llvm-project-overlay/libc/BUILD.bazel
index 2799a70c1a461..fed7c367da78c 100644
--- a/utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+++ b/utils/bazel/llvm-project-overlay/libc/BUILD.bazel
@@ -5370,9 +5370,9 @@ libc_support_library(
name = "__support_math_copysignf128",
hdrs = ["src/__support/math/copysignf128.h"],
deps = [
+ ":__support_fputil_float128",
":__support_fputil_manipulation_functions",
":__support_macros_config",
- ":llvm_libc_types_float128",
],
)
@@ -11174,6 +11174,8 @@ libc_math_function(
libc_math_function(
name = "copysignf128",
additional_deps = [
+ ":__support_cpp_bit",
+ ":__support_fputil_float128",
":__support_math_copysignf128",
],
)
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 056634a0108e6..90cc4e35bf507 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
@@ -150,6 +150,9 @@ math_test(
math_test(
name = "copysignf128",
hdrs = ["CopySignTest.h"],
+ deps = [
+ "//libc:__support_fputil_float128",
+ ],
)
math_test(
>From 0b0f86d29c2eacedfc51af0c0c8f38651967018e Mon Sep 17 00:00:00 2001
From: Sukumarsawant <sawantsukumar at gmail.com>
Date: Mon, 31 Aug 2026 17:06:22 +0530
Subject: [PATCH 3/3] nits
---
libc/test/src/math/smoke/CMakeLists.txt | 4 ++--
libc/test/src/math/smoke/copysignf128_test.cpp | 2 +-
libc/test/src/math/smoke/fabsf128_test.cpp | 2 +-
3 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/libc/test/src/math/smoke/CMakeLists.txt b/libc/test/src/math/smoke/CMakeLists.txt
index 569746d6568e2..74e4c24655e3f 100644
--- a/libc/test/src/math/smoke/CMakeLists.txt
+++ b/libc/test/src/math/smoke/CMakeLists.txt
@@ -240,8 +240,8 @@ add_fp_unittest(
HDRS
FAbsTest.h
DEPENDS
- libc.src.__support.FPUtil.float128
libc.src.math.fabsf128
+ libc.src.__support.FPUtil.float128
libc.src.__support.FPUtil.fp_bits
)
@@ -1656,9 +1656,9 @@ add_fp_unittest(
HDRS
CopySignTest.h
DEPENDS
- libc.src.__support.FPUtil.float128
libc.src.math.copysignf128
libc.src.__support.CPP.algorithm
+ libc.src.__support.FPUtil.float128
libc.src.__support.FPUtil.fp_bits
)
diff --git a/libc/test/src/math/smoke/copysignf128_test.cpp b/libc/test/src/math/smoke/copysignf128_test.cpp
index 2ee660c509036..33a04ff65c7c6 100644
--- a/libc/test/src/math/smoke/copysignf128_test.cpp
+++ b/libc/test/src/math/smoke/copysignf128_test.cpp
@@ -7,8 +7,8 @@
//===----------------------------------------------------------------------===//
#include "CopySignTest.h"
-#include "src/__support/FPUtil/float128.h"
+#include "src/__support/FPUtil/float128.h"
#include "src/math/copysignf128.h"
#ifndef LIBC_TYPES_HAS_NATIVE_FLOAT128
diff --git a/libc/test/src/math/smoke/fabsf128_test.cpp b/libc/test/src/math/smoke/fabsf128_test.cpp
index cb18c0da532dc..06bc10a4eb3e2 100644
--- a/libc/test/src/math/smoke/fabsf128_test.cpp
+++ b/libc/test/src/math/smoke/fabsf128_test.cpp
@@ -7,8 +7,8 @@
//===----------------------------------------------------------------------===//
#include "FAbsTest.h"
-#include "src/__support/FPUtil/float128.h"
+#include "src/__support/FPUtil/float128.h"
#include "src/math/fabsf128.h"
#ifndef LIBC_TYPES_HAS_NATIVE_FLOAT128
More information about the libc-commits
mailing list