[libc-commits] [libc] [llvm] [libc][math] Refactor fmaximum_mag_num family to header-only (PR #182169)

LLVM Continuous Integration via libc-commits libc-commits at lists.llvm.org
Sat Apr 25 15:10:50 PDT 2026


llvm-ci wrote:

LLVM Buildbot has detected a new failure on builder `libc-aarch64-ubuntu-dbg` running on `libc-aarch64-ubuntu` while building `libc,utils` at step 4 "annotate".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/104/builds/46763

<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)
...
[25/194] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.totalordermagbf16.dir/totalordermagbf16.cpp.o
[26/194] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.bf16addf128.dir/bf16addf128.cpp.o
[27/194] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.totalorder.dir/totalorder.cpp.o
[28/194] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.scalbnbf16.dir/scalbnbf16.cpp.o
[29/194] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.totalorderf128.dir/totalorderf128.cpp.o
[30/194] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.bf16fmal.dir/bf16fmal.cpp.o
[31/194] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.fma.dir/fma.cpp.o
[32/194] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.scalblnbf16.dir/scalblnbf16.cpp.o
[33/194] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.bf16divl.dir/bf16divl.cpp.o
[34/194] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.fmaximumf.dir/fmaximumf.cpp.o
FAILED: libc/src/math/generic/CMakeFiles/libc.src.math.generic.fmaximumf.dir/fmaximumf.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 -Wno-pass-failed -fdiagnostics-color -g -D__LIBC_MISC_MATH_BASIC_OPS_OPT -D__LIBC_USE_BUILTIN_FMAX_FMIN -D__LIBC_USE_BUILTIN_FMAXF16_FMINF16 -Xclang -target-feature -Xclang +fullfp16 -DLIBC_QSORT_IMPL=LIBC_QSORT_QUICK_SORT -DLIBC_COPT_STRING_LENGTH_IMPL=clang_vector -DLIBC_COPT_FIND_FIRST_CHARACTER_IMPL=word -DLIBC_ADD_NULL_CHECKS -DLIBC_ERRNO_MODE=LIBC_ERRNO_MODE_DEFAULT -DLIBC_THREAD_MODE=LIBC_THREAD_MODE_PLATFORM -DLIBC_COPT_TIMEOUT_ENSURE_MONOTONICITY -DLIBC_CONF_WCTYPE_MODE=LIBC_WCTYPE_MODE_ASCII -DLIBC_COPT_RAW_MUTEX_DEFAULT_SPIN_COUNT=100 -fpie -fno-builtin -fno-exceptions -fno-lax-vector-conversions -fno-unwind-tables -fno-asynchronous-unwind-tables -fno-rtti -ftrivial-auto-var-init=pattern -fno-omit-frame-pointer -fstack-protector-strong -Wall -Wextra -Werror -Wconversion -Wno-sign-conversion -Wdeprecated -Wno-c99-extensions -Wno-gnu-imaginary-constant -Wno-pedantic -Wimplicit-fallthrough -Wwrite-strings -Wextra-semi -Wnewline-eof -Wnonportable-system-include-path -Wstrict-prototypes -Wthread-safety -Wglobal-constructors -DLIBC_COPT_PUBLIC_PACKAGING -std=gnu++17 -MD -MT libc/src/math/generic/CMakeFiles/libc.src.math.generic.fmaximumf.dir/fmaximumf.cpp.o -MF libc/src/math/generic/CMakeFiles/libc.src.math.generic.fmaximumf.dir/fmaximumf.cpp.o.d -o libc/src/math/generic/CMakeFiles/libc.src.math.generic.fmaximumf.dir/fmaximumf.cpp.o -c /home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu/llvm-project/libc/src/math/generic/fmaximumf.cpp
In file included from /home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu/llvm-project/libc/src/math/generic/fmaximumf.cpp:10:
/home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu/llvm-project/libc/src/__support/FPUtil/BasicOperations.h:71:41: error: constexpr function never produces a constant expression [-Winvalid-constexpr]
template <> LIBC_INLINE constexpr float max(float x, float y) {
                                        ^
/home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu/llvm-project/libc/src/__support/FPUtil/BasicOperations.h:72:10: note: subexpression not valid in a constant expression
  return __builtin_fmaxf(x, y);
         ^
/home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu/llvm-project/libc/src/__support/FPUtil/BasicOperations.h:75:42: error: constexpr function never produces a constant expression [-Winvalid-constexpr]
template <> LIBC_INLINE constexpr double max(double x, double y) {
                                         ^
/home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu/llvm-project/libc/src/__support/FPUtil/BasicOperations.h:76:10: note: subexpression not valid in a constant expression
  return __builtin_fmax(x, y);
         ^
2 errors generated.
[35/194] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.fdiml.dir/fdiml.cpp.o
[36/194] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.bf16addf.dir/bf16addf.cpp.o
[37/194] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.canonicalizef.dir/canonicalizef.cpp.o
[38/194] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.nextafterbf16.dir/nextafterbf16.cpp.o
[39/194] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.setpayloadbf16.dir/setpayloadbf16.cpp.o
[40/194] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.bf16divf.dir/bf16divf.cpp.o
[41/194] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.nearbyintbf16.dir/nearbyintbf16.cpp.o
[42/194] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.llrintbf16.dir/llrintbf16.cpp.o
[43/194] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.fminbf16.dir/fminbf16.cpp.o
FAILED: libc/src/math/generic/CMakeFiles/libc.src.math.generic.fminbf16.dir/fminbf16.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 -Wno-pass-failed -fdiagnostics-color -g -D__LIBC_MISC_MATH_BASIC_OPS_OPT -D__LIBC_USE_BUILTIN_FMAX_FMIN -D__LIBC_USE_BUILTIN_FMAXF16_FMINF16 -Xclang -target-feature -Xclang +fullfp16 -DLIBC_QSORT_IMPL=LIBC_QSORT_QUICK_SORT -DLIBC_COPT_STRING_LENGTH_IMPL=clang_vector -DLIBC_COPT_FIND_FIRST_CHARACTER_IMPL=word -DLIBC_ADD_NULL_CHECKS -DLIBC_ERRNO_MODE=LIBC_ERRNO_MODE_DEFAULT -DLIBC_THREAD_MODE=LIBC_THREAD_MODE_PLATFORM -DLIBC_COPT_TIMEOUT_ENSURE_MONOTONICITY -DLIBC_CONF_WCTYPE_MODE=LIBC_WCTYPE_MODE_ASCII -DLIBC_COPT_RAW_MUTEX_DEFAULT_SPIN_COUNT=100 -fpie -fno-builtin -fno-exceptions -fno-lax-vector-conversions -fno-unwind-tables -fno-asynchronous-unwind-tables -fno-rtti -ftrivial-auto-var-init=pattern -fno-omit-frame-pointer -fstack-protector-strong -Wall -Wextra -Werror -Wconversion -Wno-sign-conversion -Wdeprecated -Wno-c99-extensions -Wno-gnu-imaginary-constant -Wno-pedantic -Wimplicit-fallthrough -Wwrite-strings -Wextra-semi -Wnewline-eof -Wnonportable-system-include-path -Wstrict-prototypes -Wthread-safety -Wglobal-constructors -DLIBC_COPT_PUBLIC_PACKAGING -std=gnu++17 -MD -MT libc/src/math/generic/CMakeFiles/libc.src.math.generic.fminbf16.dir/fminbf16.cpp.o -MF libc/src/math/generic/CMakeFiles/libc.src.math.generic.fminbf16.dir/fminbf16.cpp.o.d -o libc/src/math/generic/CMakeFiles/libc.src.math.generic.fminbf16.dir/fminbf16.cpp.o -c /home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu/llvm-project/libc/src/math/generic/fminbf16.cpp
In file included from /home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu/llvm-project/libc/src/math/generic/fminbf16.cpp:10:
/home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu/llvm-project/libc/src/__support/FPUtil/BasicOperations.h:71:41: error: constexpr function never produces a constant expression [-Winvalid-constexpr]
template <> LIBC_INLINE constexpr float max(float x, float y) {
                                        ^
/home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu/llvm-project/libc/src/__support/FPUtil/BasicOperations.h:72:10: note: subexpression not valid in a constant expression
  return __builtin_fmaxf(x, y);
         ^
/home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu/llvm-project/libc/src/__support/FPUtil/BasicOperations.h:75:42: error: constexpr function never produces a constant expression [-Winvalid-constexpr]
template <> LIBC_INLINE constexpr double max(double x, double y) {
                                         ^
/home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu/llvm-project/libc/src/__support/FPUtil/BasicOperations.h:76:10: note: subexpression not valid in a constant expression
  return __builtin_fmax(x, y);

```

</details>

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


More information about the libc-commits mailing list