[libc-commits] [libc] [libc][math][c++23] Implement comparison operations operator overloads for BFloat16 (PR #150087)
LLVM Continuous Integration via libc-commits
libc-commits at lists.llvm.org
Wed Jul 23 07:08:23 PDT 2025
llvm-ci wrote:
LLVM Buildbot has detected a new failure on builder `libc-aarch64-ubuntu-dbg` running on `libc-aarch64-ubuntu` while building `libc` at step 4 "annotate".
Full details are available at: https://lab.llvm.org/buildbot/#/builders/104/builds/27494
<details>
<summary>Here is the relevant piece of the build log for the reference</summary>
```
Step 4 (annotate) failure: 'python ../llvm-zorg/zorg/buildbot/builders/annotated/libc-linux.py ...' (failure)
...
[ OK ] LlvmLibcAtolTest.NotNumbers (1 us)
Ran 3 tests. PASS: 3 FAIL: 0
[686/1273] Running unit test libc.test.src.stdlib.atof_test.__unit__
[==========] Running 2 tests from 1 test suite.
[ RUN ] LlvmLibcAToFTest.SimpleTest
[ OK ] LlvmLibcAToFTest.SimpleTest (6 us)
[ RUN ] LlvmLibcAToFTest.FailedParsingTest
[ OK ] LlvmLibcAToFTest.FailedParsingTest (1 us)
Ran 2 tests. PASS: 2 FAIL: 0
[687/1273] Building CXX object libc/test/src/__support/FPUtil/CMakeFiles/libc.test.src.__support.FPUtil.bfloat16_test.__unit__.__build__.dir/bfloat16_test.cpp.o
FAILED: libc/test/src/__support/FPUtil/CMakeFiles/libc.test.src.__support.FPUtil.bfloat16_test.__unit__.__build__.dir/bfloat16_test.cpp.o
/usr/bin/clang++ -DLIBC_NAMESPACE=__llvm_libc_20_0_0_git -D_DEBUG -I/home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu/llvm-project/libc -isystem libc/include -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -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 -Wno-comment -Wstring-conversion -fdiagnostics-color -g -DLIBC_QSORT_IMPL=LIBC_QSORT_QUICK_SORT -DLIBC_ADD_NULL_CHECKS -DLIBC_ERRNO_MODE=LIBC_ERRNO_MODE_DEFAULT -fpie -Wconversion -Wno-sign-conversion -Wimplicit-fallthrough -Wwrite-strings -Wno-c99-extensions -Wno-gnu-imaginary-constant -Wno-pedantic -Wstrict-prototypes -Wextra-semi -Wnewline-eof -Wnonportable-system-include-path -Wthread-safety -DLIBC_TEST=UNIT -std=gnu++17 -MD -MT libc/test/src/__support/FPUtil/CMakeFiles/libc.test.src.__support.FPUtil.bfloat16_test.__unit__.__build__.dir/bfloat16_test.cpp.o -MF libc/test/src/__support/FPUtil/CMakeFiles/libc.test.src.__support.FPUtil.bfloat16_test.__unit__.__build__.dir/bfloat16_test.cpp.o.d -o libc/test/src/__support/FPUtil/CMakeFiles/libc.test.src.__support.FPUtil.bfloat16_test.__unit__.__build__.dir/bfloat16_test.cpp.o -c /home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu/llvm-project/libc/test/src/__support/FPUtil/bfloat16_test.cpp
In file included from /home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu/llvm-project/libc/test/src/__support/FPUtil/bfloat16_test.cpp:9:
/home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu/llvm-project/libc/src/__support/FPUtil/bfloat16.h:62:30: error: constexpr function never produces a constant expression [-Winvalid-constexpr]
LIBC_INLINE constexpr bool operator==(BFloat16 other) const {
^
/home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu/llvm-project/libc/src/__support/FPUtil/bfloat16.h:63:12: note: non-constexpr function 'equals<__llvm_libc_20_0_0_git::fputil::BFloat16>' cannot be used in a constant expression
return fputil::equals(*this, other);
^
/home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu/llvm-project/libc/src/__support/FPUtil/comparison_operations.h:29:65: note: declared here
LIBC_INLINE cpp::enable_if_t<cpp::is_floating_point_v<T>, bool> equals(T x,
^
In file included from /home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu/llvm-project/libc/test/src/__support/FPUtil/bfloat16_test.cpp:9:
/home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu/llvm-project/libc/src/__support/FPUtil/bfloat16.h:66:30: error: constexpr function never produces a constant expression [-Winvalid-constexpr]
LIBC_INLINE constexpr bool operator!=(BFloat16 other) const {
^
/home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu/llvm-project/libc/src/__support/FPUtil/bfloat16.h:67:13: note: non-constexpr function 'equals<__llvm_libc_20_0_0_git::fputil::BFloat16>' cannot be used in a constant expression
return !fputil::equals(*this, other);
^
/home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu/llvm-project/libc/src/__support/FPUtil/comparison_operations.h:29:65: note: declared here
LIBC_INLINE cpp::enable_if_t<cpp::is_floating_point_v<T>, bool> equals(T x,
^
In file included from /home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu/llvm-project/libc/test/src/__support/FPUtil/bfloat16_test.cpp:9:
/home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu/llvm-project/libc/src/__support/FPUtil/bfloat16.h:70:30: error: constexpr function never produces a constant expression [-Winvalid-constexpr]
LIBC_INLINE constexpr bool operator<(BFloat16 other) const {
^
/home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu/llvm-project/libc/src/__support/FPUtil/bfloat16.h:71:12: note: non-constexpr function 'less_than<__llvm_libc_20_0_0_git::fputil::BFloat16>' cannot be used in a constant expression
return fputil::less_than(*this, other);
^
/home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu/llvm-project/libc/src/__support/FPUtil/comparison_operations.h:55:65: note: declared here
LIBC_INLINE cpp::enable_if_t<cpp::is_floating_point_v<T>, bool> less_than(T x,
^
In file included from /home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu/llvm-project/libc/test/src/__support/FPUtil/bfloat16_test.cpp:9:
/home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu/llvm-project/libc/src/__support/FPUtil/bfloat16.h:74:30: error: constexpr function never produces a constant expression [-Winvalid-constexpr]
LIBC_INLINE constexpr bool operator<=(BFloat16 other) const {
^
/home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu/llvm-project/libc/src/__support/FPUtil/bfloat16.h:75:12: note: non-constexpr function 'less_than_or_equals<__llvm_libc_20_0_0_git::fputil::BFloat16>' cannot be used in a constant expression
return fputil::less_than_or_equals(*this, other);
^
Step 7 (libc-unit-tests) failure: libc-unit-tests (failure)
...
[ OK ] LlvmLibcAtolTest.NotNumbers (1 us)
Ran 3 tests. PASS: 3 FAIL: 0
[686/1273] Running unit test libc.test.src.stdlib.atof_test.__unit__
[==========] Running 2 tests from 1 test suite.
[ RUN ] LlvmLibcAToFTest.SimpleTest
[ OK ] LlvmLibcAToFTest.SimpleTest (6 us)
[ RUN ] LlvmLibcAToFTest.FailedParsingTest
[ OK ] LlvmLibcAToFTest.FailedParsingTest (1 us)
Ran 2 tests. PASS: 2 FAIL: 0
[687/1273] Building CXX object libc/test/src/__support/FPUtil/CMakeFiles/libc.test.src.__support.FPUtil.bfloat16_test.__unit__.__build__.dir/bfloat16_test.cpp.o
FAILED: libc/test/src/__support/FPUtil/CMakeFiles/libc.test.src.__support.FPUtil.bfloat16_test.__unit__.__build__.dir/bfloat16_test.cpp.o
/usr/bin/clang++ -DLIBC_NAMESPACE=__llvm_libc_20_0_0_git -D_DEBUG -I/home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu/llvm-project/libc -isystem libc/include -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -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 -Wno-comment -Wstring-conversion -fdiagnostics-color -g -DLIBC_QSORT_IMPL=LIBC_QSORT_QUICK_SORT -DLIBC_ADD_NULL_CHECKS -DLIBC_ERRNO_MODE=LIBC_ERRNO_MODE_DEFAULT -fpie -Wconversion -Wno-sign-conversion -Wimplicit-fallthrough -Wwrite-strings -Wno-c99-extensions -Wno-gnu-imaginary-constant -Wno-pedantic -Wstrict-prototypes -Wextra-semi -Wnewline-eof -Wnonportable-system-include-path -Wthread-safety -DLIBC_TEST=UNIT -std=gnu++17 -MD -MT libc/test/src/__support/FPUtil/CMakeFiles/libc.test.src.__support.FPUtil.bfloat16_test.__unit__.__build__.dir/bfloat16_test.cpp.o -MF libc/test/src/__support/FPUtil/CMakeFiles/libc.test.src.__support.FPUtil.bfloat16_test.__unit__.__build__.dir/bfloat16_test.cpp.o.d -o libc/test/src/__support/FPUtil/CMakeFiles/libc.test.src.__support.FPUtil.bfloat16_test.__unit__.__build__.dir/bfloat16_test.cpp.o -c /home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu/llvm-project/libc/test/src/__support/FPUtil/bfloat16_test.cpp
In file included from /home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu/llvm-project/libc/test/src/__support/FPUtil/bfloat16_test.cpp:9:
/home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu/llvm-project/libc/src/__support/FPUtil/bfloat16.h:62:30: error: constexpr function never produces a constant expression [-Winvalid-constexpr]
LIBC_INLINE constexpr bool operator==(BFloat16 other) const {
^
/home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu/llvm-project/libc/src/__support/FPUtil/bfloat16.h:63:12: note: non-constexpr function 'equals<__llvm_libc_20_0_0_git::fputil::BFloat16>' cannot be used in a constant expression
return fputil::equals(*this, other);
^
/home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu/llvm-project/libc/src/__support/FPUtil/comparison_operations.h:29:65: note: declared here
LIBC_INLINE cpp::enable_if_t<cpp::is_floating_point_v<T>, bool> equals(T x,
^
In file included from /home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu/llvm-project/libc/test/src/__support/FPUtil/bfloat16_test.cpp:9:
/home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu/llvm-project/libc/src/__support/FPUtil/bfloat16.h:66:30: error: constexpr function never produces a constant expression [-Winvalid-constexpr]
LIBC_INLINE constexpr bool operator!=(BFloat16 other) const {
^
/home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu/llvm-project/libc/src/__support/FPUtil/bfloat16.h:67:13: note: non-constexpr function 'equals<__llvm_libc_20_0_0_git::fputil::BFloat16>' cannot be used in a constant expression
return !fputil::equals(*this, other);
^
/home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu/llvm-project/libc/src/__support/FPUtil/comparison_operations.h:29:65: note: declared here
LIBC_INLINE cpp::enable_if_t<cpp::is_floating_point_v<T>, bool> equals(T x,
^
In file included from /home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu/llvm-project/libc/test/src/__support/FPUtil/bfloat16_test.cpp:9:
/home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu/llvm-project/libc/src/__support/FPUtil/bfloat16.h:70:30: error: constexpr function never produces a constant expression [-Winvalid-constexpr]
LIBC_INLINE constexpr bool operator<(BFloat16 other) const {
^
/home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu/llvm-project/libc/src/__support/FPUtil/bfloat16.h:71:12: note: non-constexpr function 'less_than<__llvm_libc_20_0_0_git::fputil::BFloat16>' cannot be used in a constant expression
return fputil::less_than(*this, other);
^
/home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu/llvm-project/libc/src/__support/FPUtil/comparison_operations.h:55:65: note: declared here
LIBC_INLINE cpp::enable_if_t<cpp::is_floating_point_v<T>, bool> less_than(T x,
^
In file included from /home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu/llvm-project/libc/test/src/__support/FPUtil/bfloat16_test.cpp:9:
/home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu/llvm-project/libc/src/__support/FPUtil/bfloat16.h:74:30: error: constexpr function never produces a constant expression [-Winvalid-constexpr]
LIBC_INLINE constexpr bool operator<=(BFloat16 other) const {
^
/home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu/llvm-project/libc/src/__support/FPUtil/bfloat16.h:75:12: note: non-constexpr function 'less_than_or_equals<__llvm_libc_20_0_0_git::fputil::BFloat16>' cannot be used in a constant expression
return fputil::less_than_or_equals(*this, other);
^
```
</details>
https://github.com/llvm/llvm-project/pull/150087
More information about the libc-commits
mailing list