[libc-commits] [libc] [libc] Make `ceilf128` use the emulated float128 type (PR #206450)

via libc-commits libc-commits at lists.llvm.org
Mon Jun 29 04:18:44 PDT 2026


github-actions[bot] wrote:

<!--PREMERGE ADVISOR COMMENT: Windows-->
# :window: Windows x64 Test Results

The build failed before running any tests. Click on a failure below to see the details.

<details>
<summary>[code=1] lib/Support/CMakeFiles/LLVMSupport.dir/APFloat.cpp.obj</summary>

```
FAILED: [code=1] lib/Support/CMakeFiles/LLVMSupport.dir/APFloat.cpp.obj
sccache C:\clang\clang-msvc\bin\clang-cl.exe  /nologo -TP -DUNICODE -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS -D_GLIBCXX_ASSERTIONS -D_HAS_EXCEPTIONS=0 -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_EXTENSIVE -D_SCL_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_WARNINGS -D_UNICODE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -IC:\_work\llvm-project\llvm-project\build\lib\Support -IC:\_work\llvm-project\llvm-project\llvm\lib\Support -IC:\_work\llvm-project\llvm-project\build\include -IC:\_work\llvm-project\llvm-project\llvm\include -IC:\_work\llvm-project\llvm-project\llvm\..\third-party\siphash\include -IC:\_work\llvm-project\llvm-project\llvm\..\libc /DWIN32 /D_WINDOWS   /Zc:inline /Zc:__cplusplus /Oi /Brepro /bigobj /permissive- -Werror=unguarded-availability-new /W4  -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wno-pass-failed -Wmisleading-indentation -Wctad-maybe-unsupported /Gw  /O2 /Ob2  -std:c++17 -MD -UNDEBUG /EHs-c- /GR- /showIncludes /Folib\Support\CMakeFiles\LLVMSupport.dir\APFloat.cpp.obj /Fdlib\Support\CMakeFiles\LLVMSupport.dir\LLVMSupport.pdb -c -- C:\_work\llvm-project\llvm-project\llvm\lib\Support\APFloat.cpp
In file included from C:\_work\llvm-project\llvm-project\llvm\lib\Support\APFloat.cpp:43:
In file included from C:\_work\llvm-project\llvm-project\llvm\..\libc\shared/math.h:75:
In file included from C:\_work\llvm-project\llvm-project\llvm\..\libc\shared\math/ceilf128.h:13:
C:\_work\llvm-project\llvm-project\llvm\..\libc\src/__support/math/ceilf128.h(18,23): error: unknown type name 'Float128'; did you mean 'cbrt_internal::Float128'?
18 | LIBC_INLINE constexpr Float128 ceilf128(Float128 x) { return fputil::ceil(x); }
|                       ^~~~~~~~
|                       cbrt_internal::Float128
C:\_work\llvm-project\llvm-project\llvm\..\libc\src/__support/macros/properties/types.h(65,8): note: 'cbrt_internal::Float128' declared here
65 | struct Float128;
|        ^
In file included from C:\_work\llvm-project\llvm-project\llvm\lib\Support\APFloat.cpp:43:
In file included from C:\_work\llvm-project\llvm-project\llvm\..\libc\shared/math.h:75:
In file included from C:\_work\llvm-project\llvm-project\llvm\..\libc\shared\math/ceilf128.h:13:
C:\_work\llvm-project\llvm-project\llvm\..\libc\src/__support/math/ceilf128.h(18,41): error: unknown type name 'Float128'; did you mean 'cbrt_internal::Float128'?
18 | LIBC_INLINE constexpr Float128 ceilf128(Float128 x) { return fputil::ceil(x); }
|                                         ^~~~~~~~
|                                         cbrt_internal::Float128
C:\_work\llvm-project\llvm-project\llvm\..\libc\src/__support/macros/properties/types.h(65,8): note: 'cbrt_internal::Float128' declared here
65 | struct Float128;
|        ^
In file included from C:\_work\llvm-project\llvm-project\llvm\lib\Support\APFloat.cpp:43:
In file included from C:\_work\llvm-project\llvm-project\llvm\..\libc\shared/math.h:75:
In file included from C:\_work\llvm-project\llvm-project\llvm\..\libc\shared\math/ceilf128.h:13:
C:\_work\llvm-project\llvm-project\llvm\..\libc\src/__support/math/ceilf128.h(18,32): error: incomplete result type 'cbrt_internal::Float128' in function definition
18 | LIBC_INLINE constexpr Float128 ceilf128(Float128 x) { return fputil::ceil(x); }
|                                ^
C:\_work\llvm-project\llvm-project\llvm\..\libc\src/__support/macros/properties/types.h(65,8): note: forward declaration of '__llvm_libc_apfloat::fputil::Float128'
65 | struct Float128;
|        ^
In file included from C:\_work\llvm-project\llvm-project\llvm\lib\Support\APFloat.cpp:43:
In file included from C:\_work\llvm-project\llvm-project\llvm\..\libc\shared/math.h:75:
In file included from C:\_work\llvm-project\llvm-project\llvm\..\libc\shared\math/ceilf128.h:13:
C:\_work\llvm-project\llvm-project\llvm\..\libc\src/__support/math/ceilf128.h(18,50): error: variable has incomplete type 'cbrt_internal::Float128'
18 | LIBC_INLINE constexpr Float128 ceilf128(Float128 x) { return fputil::ceil(x); }
|                                                  ^
C:\_work\llvm-project\llvm-project\llvm\..\libc\src/__support/macros/properties/types.h(65,8): note: forward declaration of '__llvm_libc_apfloat::fputil::Float128'
65 | struct Float128;
|        ^
In file included from C:\_work\llvm-project\llvm-project\llvm\lib\Support\APFloat.cpp:43:
In file included from C:\_work\llvm-project\llvm-project\llvm\..\libc\shared/math.h:14:
In file included from C:\_work\llvm-project\llvm-project\llvm\..\libc\shared\math/acos.h:13:
In file included from C:\_work\llvm-project\llvm-project\llvm\..\libc\src/__support/math/acos.h:18:
In file included from C:\_work\llvm-project\llvm-project\llvm\..\libc\src/__support/FPUtil/sqrt.h:15:
In file included from C:\_work\llvm-project\llvm-project\llvm\..\libc\src/__support/FPUtil/generic/sqrt.h:16:
C:\_work\llvm-project\llvm-project\llvm\..\libc\src/__support/FPUtil/cast.h(57,18): warning: shift count is negative [-Wshift-count-negative]
57 |           x_mant >>= InFPBits::FRACTION_LEN - OutFPBits::FRACTION_LEN;
|                  ^   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:\_work\llvm-project\llvm-project\llvm\..\libc\src/__support/FPUtil/float128.h(58,22): note: in instantiation of function template specialization '__llvm_libc_apfloat::fputil::cast<__llvm_libc_apfloat::fputil::Float128, float>' requested here
58 |       bits = fputil::cast<Float128>(static_cast<float>(value)).bits;
|                      ^
In file included from C:\_work\llvm-project\llvm-project\llvm\lib\Support\APFloat.cpp:43:
In file included from C:\_work\llvm-project\llvm-project\llvm\..\libc\shared/math.h:14:
In file included from C:\_work\llvm-project\llvm-project\llvm\..\libc\shared\math/acos.h:13:
In file included from C:\_work\llvm-project\llvm-project\llvm\..\libc\src/__support/math/acos.h:18:
In file included from C:\_work\llvm-project\llvm-project\llvm\..\libc\src/__support/FPUtil/sqrt.h:15:
In file included from C:\_work\llvm-project\llvm-project\llvm\..\libc\src/__support/FPUtil/generic/sqrt.h:16:
C:\_work\llvm-project\llvm-project\llvm\..\libc\src/__support/FPUtil/cast.h(57,18): warning: shift count is negative [-Wshift-count-negative]
57 |           x_mant >>= InFPBits::FRACTION_LEN - OutFPBits::FRACTION_LEN;
|                  ^   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:\_work\llvm-project\llvm-project\llvm\..\libc\src/__support/FPUtil/ManipulationFunctions.h(229,7): note: in instantiation of function template specialization '__llvm_libc_apfloat::fputil::cast<long double, __llvm_libc_apfloat::fputil::BFloat16>' requested here
229 |   if (cast<U>(from) == to)
|       ^
C:\_work\llvm-project\llvm-project\llvm\..\libc\src/__support/math/nexttowardbf16.h(22,18): note: in instantiation of function template specialization '__llvm_libc_apfloat::fputil::nextafter<__llvm_libc_apfloat::fputil::BFloat16, long double, 0>' requested here
22 |   return fputil::nextafter(x, y);
|                  ^
2 warnings and 4 errors generated.
```
</details>

If these failures are unrelated to your changes (for example tests are broken or flaky at HEAD), please open an issue at https://github.com/llvm/llvm-project/issues and add the `infrastructure` label.

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


More information about the libc-commits mailing list