[libc-commits] [libc] [libc][math] Add float128 rounding functions (ceilf128, floorf128, roundf128, truncf128). (PR #80634)
via libc-commits
libc-commits at lists.llvm.org
Sun Feb 4 22:06:28 PST 2024
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-libc
Author: None (lntue)
<details>
<summary>Changes</summary>
---
Patch is 23.47 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/80634.diff
18 Files Affected:
- (modified) libc/config/linux/x86_64/entrypoints.txt (+5-1)
- (modified) libc/docs/math/index.rst (+8)
- (modified) libc/spec/stdc.td (+4)
- (modified) libc/src/math/CMakeLists.txt (+4)
- (added) libc/src/math/ceilf128.h (+20)
- (added) libc/src/math/floorf128.h (+20)
- (modified) libc/src/math/generic/CMakeLists.txt (+68-20)
- (added) libc/src/math/generic/ceilf128.cpp (+17)
- (added) libc/src/math/generic/floorf128.cpp (+19)
- (added) libc/src/math/generic/roundf128.cpp (+19)
- (added) libc/src/math/generic/truncf128.cpp (+19)
- (added) libc/src/math/roundf128.h (+20)
- (added) libc/src/math/truncf128.h (+20)
- (modified) libc/test/src/math/smoke/CMakeLists.txt (+64)
- (added) libc/test/src/math/smoke/ceilf128_test.cpp (+13)
- (added) libc/test/src/math/smoke/floorf128_test.cpp (+13)
- (added) libc/test/src/math/smoke/roundf128_test.cpp (+13)
- (added) libc/test/src/math/smoke/truncf128_test.cpp (+13)
``````````diff
diff --git a/libc/config/linux/x86_64/entrypoints.txt b/libc/config/linux/x86_64/entrypoints.txt
index 9946b93c346ce..e3ed5db29a9a9 100644
--- a/libc/config/linux/x86_64/entrypoints.txt
+++ b/libc/config/linux/x86_64/entrypoints.txt
@@ -397,11 +397,15 @@ set(TARGET_LIBM_ENTRYPOINTS
if(LIBC_COMPILER_HAS_FLOAT128)
list(APPEND TARGET_LIBM_ENTRYPOINTS
# math.h C23 _Float128 entrypoints
+ libc.src.math.ceilf128
libc.src.math.copysignf128
libc.src.math.fabsf128
- libc.src.math.sqrtf128
+ libc.src.math.floorf128
libc.src.math.fmaxf128
libc.src.math.fminf128
+ libc.src.math.roundf128
+ libc.src.math.sqrtf128
+ libc.src.math.truncf128
)
endif()
diff --git a/libc/docs/math/index.rst b/libc/docs/math/index.rst
index 748247bb85d79..bf58f559c4514 100644
--- a/libc/docs/math/index.rst
+++ b/libc/docs/math/index.rst
@@ -114,6 +114,8 @@ Basic Operations
+--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+
| ceill | |check| | |check| | |check| | |check| | |check| | | | |check| | |check| | |check| | | |
+--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+
+| ceilf128 | |check| | | | | | | | | | | | |
++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+
| copysign | |check| | |check| | |check| | |check| | |check| | | | |check| | |check| | |check| | | |
+--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+
| copysignf | |check| | |check| | |check| | |check| | |check| | | | |check| | |check| | |check| | | |
@@ -142,6 +144,8 @@ Basic Operations
+--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+
| floorl | |check| | |check| | |check| | |check| | |check| | | | |check| | |check| | |check| | | |
+--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+
+| floorf128 | |check| | | | | | | | | | | | |
++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+
| fmax | |check| | |check| | |check| | |check| | |check| | | | |check| | |check| | |check| | | |
+--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+
| fmaxf | |check| | |check| | |check| | |check| | |check| | | | |check| | |check| | |check| | | |
@@ -266,6 +270,8 @@ Basic Operations
+--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+
| roundl | |check| | |check| | |check| | |check| | |check| | | | |check| | |check| | |check| | | |
+--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+
+| roundf128 | |check| | | | | | | | | | | | |
++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+
| scalbn | |check| | |check| | |check| | |check| | |check| | | | |check| | |check| | |check| | | |
+--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+
| scalbnf | |check| | |check| | |check| | |check| | |check| | | | |check| | |check| | |check| | | |
@@ -278,6 +284,8 @@ Basic Operations
+--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+
| truncl | |check| | |check| | |check| | |check| | |check| | | | |check| | |check| | |check| | | |
+--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+
+| truncf128 | |check| | | | | | | | | | | | |
++--------------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+
Higher Math Functions
diff --git a/libc/spec/stdc.td b/libc/spec/stdc.td
index 6ff2c7c613696..2723a2d39203b 100644
--- a/libc/spec/stdc.td
+++ b/libc/spec/stdc.td
@@ -363,6 +363,7 @@ def StdC : StandardSpec<"stdc"> {
FunctionSpec<"ceil", RetValSpec<DoubleType>, [ArgSpec<DoubleType>]>,
FunctionSpec<"ceilf", RetValSpec<FloatType>, [ArgSpec<FloatType>]>,
FunctionSpec<"ceill", RetValSpec<LongDoubleType>, [ArgSpec<LongDoubleType>]>,
+ FunctionSpec<"ceilf128", RetValSpec<Float128Type>, [ArgSpec<Float128Type>]>,
FunctionSpec<"fabs", RetValSpec<DoubleType>, [ArgSpec<DoubleType>]>,
FunctionSpec<"fabsf", RetValSpec<FloatType>, [ArgSpec<FloatType>]>,
@@ -376,6 +377,7 @@ def StdC : StandardSpec<"stdc"> {
FunctionSpec<"floor", RetValSpec<DoubleType>, [ArgSpec<DoubleType>]>,
FunctionSpec<"floorf", RetValSpec<FloatType>, [ArgSpec<FloatType>]>,
FunctionSpec<"floorl", RetValSpec<LongDoubleType>, [ArgSpec<LongDoubleType>]>,
+ FunctionSpec<"floorf128", RetValSpec<Float128Type>, [ArgSpec<Float128Type>]>,
FunctionSpec<"fmin", RetValSpec<DoubleType>, [ArgSpec<DoubleType>, ArgSpec<DoubleType>]>,
FunctionSpec<"fminf", RetValSpec<FloatType>, [ArgSpec<FloatType>, ArgSpec<FloatType>]>,
@@ -458,6 +460,7 @@ def StdC : StandardSpec<"stdc"> {
FunctionSpec<"round", RetValSpec<DoubleType>, [ArgSpec<DoubleType>]>,
FunctionSpec<"roundf", RetValSpec<FloatType>, [ArgSpec<FloatType>]>,
FunctionSpec<"roundl", RetValSpec<LongDoubleType>, [ArgSpec<LongDoubleType>]>,
+ FunctionSpec<"roundf128", RetValSpec<Float128Type>, [ArgSpec<Float128Type>]>,
FunctionSpec<"lround", RetValSpec<LongType>, [ArgSpec<DoubleType>]>,
FunctionSpec<"lroundf", RetValSpec<LongType>, [ArgSpec<FloatType>]>,
@@ -487,6 +490,7 @@ def StdC : StandardSpec<"stdc"> {
FunctionSpec<"trunc", RetValSpec<DoubleType>, [ArgSpec<DoubleType>]>,
FunctionSpec<"truncf", RetValSpec<FloatType>, [ArgSpec<FloatType>]>,
FunctionSpec<"truncl", RetValSpec<LongDoubleType>, [ArgSpec<LongDoubleType>]>,
+ FunctionSpec<"truncf128", RetValSpec<Float128Type>, [ArgSpec<Float128Type>]>,
FunctionSpec<"nearbyint", RetValSpec<DoubleType>, [ArgSpec<DoubleType>]>,
FunctionSpec<"nearbyintf", RetValSpec<FloatType>, [ArgSpec<FloatType>]>,
diff --git a/libc/src/math/CMakeLists.txt b/libc/src/math/CMakeLists.txt
index 2b7eb3a05396b..d4dbeebb7b219 100644
--- a/libc/src/math/CMakeLists.txt
+++ b/libc/src/math/CMakeLists.txt
@@ -76,6 +76,7 @@ add_math_entrypoint_object(atanhf)
add_math_entrypoint_object(ceil)
add_math_entrypoint_object(ceilf)
add_math_entrypoint_object(ceill)
+add_math_entrypoint_object(ceilf128)
add_math_entrypoint_object(copysign)
add_math_entrypoint_object(copysignf)
@@ -114,6 +115,7 @@ add_math_entrypoint_object(fdiml)
add_math_entrypoint_object(floor)
add_math_entrypoint_object(floorf)
add_math_entrypoint_object(floorl)
+add_math_entrypoint_object(floorf128)
add_math_entrypoint_object(fma)
add_math_entrypoint_object(fmaf)
@@ -216,6 +218,7 @@ add_math_entrypoint_object(rintl)
add_math_entrypoint_object(round)
add_math_entrypoint_object(roundf)
add_math_entrypoint_object(roundl)
+add_math_entrypoint_object(roundf128)
add_math_entrypoint_object(scalbn)
add_math_entrypoint_object(scalbnf)
@@ -247,3 +250,4 @@ add_math_entrypoint_object(tgammaf)
add_math_entrypoint_object(trunc)
add_math_entrypoint_object(truncf)
add_math_entrypoint_object(truncl)
+add_math_entrypoint_object(truncf128)
diff --git a/libc/src/math/ceilf128.h b/libc/src/math/ceilf128.h
new file mode 100644
index 0000000000000..db8feffc87ba2
--- /dev/null
+++ b/libc/src/math/ceilf128.h
@@ -0,0 +1,20 @@
+//===-- Implementation header for ceilf128 ----------------------*- C++ -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_LIBC_SRC_MATH_CEILF128_H
+#define LLVM_LIBC_SRC_MATH_CEILF128_H
+
+#include "src/__support/macros/properties/float.h"
+
+namespace LIBC_NAMESPACE {
+
+float128 ceilf128(float128 x);
+
+} // namespace LIBC_NAMESPACE
+
+#endif // LLVM_LIBC_SRC_MATH_CEILF128_H
diff --git a/libc/src/math/floorf128.h b/libc/src/math/floorf128.h
new file mode 100644
index 0000000000000..86b9a8e9265e1
--- /dev/null
+++ b/libc/src/math/floorf128.h
@@ -0,0 +1,20 @@
+//===-- Implementation header for floorf128 ---------------------*- C++ -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_LIBC_SRC_MATH_FLOORF128_H
+#define LLVM_LIBC_SRC_MATH_FLOORF128_H
+
+#include "src/__support/macros/properties/float.h"
+
+namespace LIBC_NAMESPACE {
+
+float128 floorf128(float128 x);
+
+} // namespace LIBC_NAMESPACE
+
+#endif // LLVM_LIBC_SRC_MATH_FLOORF128_H
diff --git a/libc/src/math/generic/CMakeLists.txt b/libc/src/math/generic/CMakeLists.txt
index 2521435bffb4e..05b70be7b7b9f 100644
--- a/libc/src/math/generic/CMakeLists.txt
+++ b/libc/src/math/generic/CMakeLists.txt
@@ -4,10 +4,10 @@ add_entrypoint_object(
ceil.cpp
HDRS
../ceil.h
+ COMPILE_OPTIONS
+ -O3
DEPENDS
libc.src.__support.FPUtil.nearest_integer_operations
- COMPILE_OPTIONS
- -O2
)
add_entrypoint_object(
@@ -16,10 +16,10 @@ add_entrypoint_object(
ceilf.cpp
HDRS
../ceilf.h
+ COMPILE_OPTIONS
+ -O3
DEPENDS
libc.src.__support.FPUtil.nearest_integer_operations
- COMPILE_OPTIONS
- -O2
)
add_entrypoint_object(
@@ -28,10 +28,22 @@ add_entrypoint_object(
ceill.cpp
HDRS
../ceill.h
+ COMPILE_OPTIONS
+ -O3
DEPENDS
libc.src.__support.FPUtil.nearest_integer_operations
+)
+
+add_entrypoint_object(
+ ceilf128
+ SRCS
+ ceilf128.cpp
+ HDRS
+ ../ceilf128.h
COMPILE_OPTIONS
- -O2
+ -O3
+ DEPENDS
+ libc.src.__support.FPUtil.nearest_integer_operations
)
add_object_library(
@@ -214,10 +226,10 @@ add_entrypoint_object(
trunc.cpp
HDRS
../trunc.h
+ COMPILE_OPTIONS
+ -O3
DEPENDS
libc.src.__support.FPUtil.nearest_integer_operations
- COMPILE_OPTIONS
- -O2
)
add_entrypoint_object(
@@ -226,10 +238,10 @@ add_entrypoint_object(
truncf.cpp
HDRS
../truncf.h
+ COMPILE_OPTIONS
+ -O3
DEPENDS
libc.src.__support.FPUtil.nearest_integer_operations
- COMPILE_OPTIONS
- -O2
)
add_entrypoint_object(
@@ -238,10 +250,22 @@ add_entrypoint_object(
truncl.cpp
HDRS
../truncl.h
+ COMPILE_OPTIONS
+ -O3
DEPENDS
libc.src.__support.FPUtil.nearest_integer_operations
+)
+
+add_entrypoint_object(
+ truncf128
+ SRCS
+ truncf128.cpp
+ HDRS
+ ../truncf128.h
COMPILE_OPTIONS
- -O2
+ -O3
+ DEPENDS
+ libc.src.__support.FPUtil.nearest_integer_operations
)
add_entrypoint_object(
@@ -250,10 +274,10 @@ add_entrypoint_object(
floor.cpp
HDRS
../floor.h
+ COMPILE_OPTIONS
+ -O3
DEPENDS
libc.src.__support.FPUtil.nearest_integer_operations
- COMPILE_OPTIONS
- -O2
)
add_entrypoint_object(
@@ -262,10 +286,10 @@ add_entrypoint_object(
floorf.cpp
HDRS
../floorf.h
+ COMPILE_OPTIONS
+ -O3
DEPENDS
libc.src.__support.FPUtil.nearest_integer_operations
- COMPILE_OPTIONS
- -O2
)
add_entrypoint_object(
@@ -274,10 +298,22 @@ add_entrypoint_object(
floorl.cpp
HDRS
../floorl.h
+ COMPILE_OPTIONS
+ -O3
DEPENDS
libc.src.__support.FPUtil.nearest_integer_operations
+)
+
+add_entrypoint_object(
+ floorf128
+ SRCS
+ floorf128.cpp
+ HDRS
+ ../floorf128.h
COMPILE_OPTIONS
- -O2
+ -O3
+ DEPENDS
+ libc.src.__support.FPUtil.nearest_integer_operations
)
add_entrypoint_object(
@@ -286,10 +322,10 @@ add_entrypoint_object(
round.cpp
HDRS
../round.h
+ COMPILE_OPTIONS
+ -O3
DEPENDS
libc.src.__support.FPUtil.nearest_integer_operations
- COMPILE_OPTIONS
- -O2
)
add_entrypoint_object(
@@ -298,10 +334,10 @@ add_entrypoint_object(
roundf.cpp
HDRS
../roundf.h
+ COMPILE_OPTIONS
+ -O3
DEPENDS
libc.src.__support.FPUtil.nearest_integer_operations
- COMPILE_OPTIONS
- -O2
)
add_entrypoint_object(
@@ -310,10 +346,22 @@ add_entrypoint_object(
roundl.cpp
HDRS
../roundl.h
+ COMPILE_OPTIONS
+ -O3
DEPENDS
libc.src.__support.FPUtil.nearest_integer_operations
+)
+
+add_entrypoint_object(
+ roundf128
+ SRCS
+ roundf128.cpp
+ HDRS
+ ../roundf128.h
COMPILE_OPTIONS
- -O2
+ -O3
+ DEPENDS
+ libc.src.__support.FPUtil.nearest_integer_operations
)
add_entrypoint_object(
diff --git a/libc/src/math/generic/ceilf128.cpp b/libc/src/math/generic/ceilf128.cpp
new file mode 100644
index 0000000000000..af980429f87d8
--- /dev/null
+++ b/libc/src/math/generic/ceilf128.cpp
@@ -0,0 +1,17 @@
+//===-- Implementation of ceilf128 function -------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#include "src/math/ceilf128.h"
+#include "src/__support/FPUtil/NearestIntegerOperations.h"
+#include "src/__support/common.h"
+
+namespace LIBC_NAMESPACE {
+
+LLVM_LIBC_FUNCTION(float128, ceilf128, (float128 x)) { return fputil::ceil(x); }
+
+} // namespace LIBC_NAMESPACE
diff --git a/libc/src/math/generic/floorf128.cpp b/libc/src/math/generic/floorf128.cpp
new file mode 100644
index 0000000000000..22a8eacb45ddb
--- /dev/null
+++ b/libc/src/math/generic/floorf128.cpp
@@ -0,0 +1,19 @@
+//===-- Implementation of floorf128 function ------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#include "src/math/floorf128.h"
+#include "src/__support/FPUtil/NearestIntegerOperations.h"
+#include "src/__support/common.h"
+
+namespace LIBC_NAMESPACE {
+
+LLVM_LIBC_FUNCTION(float128, floorf128, (float128 x)) {
+ return fputil::floor(x);
+}
+
+} // namespace LIBC_NAMESPACE
diff --git a/libc/src/math/generic/roundf128.cpp b/libc/src/math/generic/roundf128.cpp
new file mode 100644
index 0000000000000..5b35d746d4407
--- /dev/null
+++ b/libc/src/math/generic/roundf128.cpp
@@ -0,0 +1,19 @@
+//===-- Implementation of roundf128 function ------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#include "src/math/roundf128.h"
+#include "src/__support/FPUtil/NearestIntegerOperations.h"
+#include "src/__support/common.h"
+
+namespace LIBC_NAMESPACE {
+
+LLVM_LIBC_FUNCTION(float128, roundf128, (float128 x)) {
+ return fputil::round(x);
+}
+
+} // namespace LIBC_NAMESPACE
diff --git a/libc/src/math/generic/truncf128.cpp b/libc/src/math/generic/truncf128.cpp
new file mode 100644
index 0000000000000..ecf05fa73b35c
--- /dev/null
+++ b/libc/src/math/generic/truncf128.cpp
@@ -0,0 +1,19 @@
+//===-- Implementation of truncf128 function ------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#include "src/math/truncf128.h"
+#include "src/__support/FPUtil/NearestIntegerOperations.h"
+#include "src/__support/common.h"
+
+namespace LIBC_NAMESPACE {
+
+LLVM_LIBC_FUNCTION(float128, truncf128, (float128 x)) {
+ return fputil::trunc(x);
+}
+
+} // namespace LIBC_NAMESPACE
diff --git a/libc/src/math/roundf128.h b/libc/src/math/roundf128.h
new file mode 100644
index 0000000000000..c67c946cc5e8b
--- /dev/null
+++ b/libc/src/math/roundf128.h
@@ -0,0 +1,20 @@
+//===-- Implementation header for roundf128 ---------------------*- C++ -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_LIBC_SRC_MATH_ROUNDF128_H
+#define LLVM_LIBC_SRC_MATH_ROUNDF128_H
+
+#include "src/__support/macros/properties/float.h"
+
+namespace LIBC_NAMESPACE {
+
+float128 roundf128(float128 x);
+
+} // namespace LIBC_NAMESPACE
+
+#endif // LLVM_LIBC_SRC_MATH_ROUNDF128_H
diff --git a/libc/src/math/truncf128.h b/libc/src/math/truncf128.h
new file mode 100644
index 0000000000000..c92c8202d4eef
--- /dev/null
+++ b/libc/src/math/truncf128.h
@@ -0,0 +1,20 @@
+//===-- Implementation header for truncf128 ---------------------*- C++ -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_LIBC_SRC_MATH_TRUNCF128_H
+#define LLVM_LIBC_SRC_MATH_TRUNCF128_H
+
+#include "src/__support/macros/properties/float.h"
+
+namespace LIBC_NAMESPACE {
+
+float128 truncf128(float128 x);
+
+} // namespace LIBC_NAMESPACE
+
+#endif // LLVM_LIBC_SRC_MATH_TRUNCF128_H
diff --git a/libc/test/src/math/smoke/CMakeLists.txt b/libc/test/src/math/smoke/CMakeLists.txt
index eff97e9f1a34b..4ee81ec1cccf6 100644
--- a/libc/test/src/math/smoke/CMakeLists.txt
+++ b/libc/test/src/math/smoke/CMakeLists.txt
@@ -165,6 +165,22 @@ add_fp_unittest(
UNIT_TEST_ONLY
)
+add_fp_unittest(
+ truncf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ truncf128_test.cpp
+ HDRS
+ TruncTest.h
+ DEPENDS
+ libc.include.math
+ libc.src.math.truncf128
+ libc.src.__support.FPUtil.fp_bits
+ # FIXME: Currently fails on the GPU build.
+ UNIT_TEST_ONLY
+)
+
add_fp_unittest(
ceil_test
SUITE
@@ -213,6 +229,22 @@ add_fp_unittest(
UNIT_TEST_ONLY
)
+add_fp_unittest(
+ ceilf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ ceilf128_test.cpp
+ HDRS
+ CeilTest.h
+ DEPENDS
+ libc.include.math
+ libc.src.math.ceilf128
+ libc.src.__support.FPUtil.fp_bits
+ # FIXME: Currently fails on the GPU build.
+ UNIT_TEST_ONLY
+)
+
add_fp_unittest(
floor_test
SUITE
@@ -261,6 +293,22 @@ add_fp_unittest(
UNIT_TEST_ONLY
)
+add_fp_unittest(
+ floorf128_test
+ SUITE
+ libc-math-smoke-tests
+ SRCS
+ floorf128_test.cpp
+ HDRS
+ Floor...
[truncated]
``````````
</details>
https://github.com/llvm/llvm-project/pull/80634
More information about the libc-commits
mailing list