[libc-commits] [libc] [llvm] [libc][math] Refactor fmul-fsub-frexp family to header-only (PR #195431)
LLVM Continuous Integration via libc-commits
libc-commits at lists.llvm.org
Sat May 2 02:58:39 PDT 2026
llvm-ci wrote:
LLVM Buildbot has detected a new failure on builder `libc-x86_64-debian-gcc-fullbuild-dbg` running on `libc-x86_64-debian-fullbuild` while building `libc,utils` at step 4 "annotate".
Full details are available at: https://lab.llvm.org/buildbot/#/builders/131/builds/45910
<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)
...
[76/1796] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.frexpl.__NO_FMA_OPT.dir/frexpl.cpp.o
[77/1796] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.pow.__NO_FMA_OPT.dir/pow.cpp.o
[78/1796] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.frexp.__NO_FMA_OPT.__internal__.dir/frexp.cpp.o
[79/1796] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.pow.__NO_FMA_OPT.__NO_ROUND_OPT.dir/pow.cpp.o
[80/1796] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.frexpbf16.__internal__.dir/frexpbf16.cpp.o
[81/1796] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.frexp.__NO_FMA_OPT.dir/frexp.cpp.o
[82/1796] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.frexpbf16.__NO_FMA_OPT.__internal__.dir/frexpbf16.cpp.o
[83/1796] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.frexpbf16.dir/frexpbf16.cpp.o
[84/1796] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.frexpbf16.__NO_FMA_OPT.dir/frexpbf16.cpp.o
[85/1796] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.fmul.__internal__.dir/fmul.cpp.o
FAILED: libc/src/math/generic/CMakeFiles/libc.src.math.generic.fmul.__internal__.dir/fmul.cpp.o
/usr/bin/g++ -DLIBC_NAMESPACE=__llvm_libc_20_0_0_git -D_DEBUG -I/home/llvm-libc-buildbot/buildbot-worker/libc-x86_64-debian-fullbuild/libc-x86_64-debian-gcc-fullbuild-dbg/llvm-project/libc -isystem /home/llvm-libc-buildbot/buildbot-worker/libc-x86_64-debian-fullbuild/libc-x86_64-debian-gcc-fullbuild-dbg/build/libc/include -fvisibility-inlines-hidden -Werror=date-time -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -Wimplicit-fallthrough -Wno-nonnull -Wno-class-memaccess -Wno-redundant-move -Wno-pessimizing-move -Wno-array-bounds -Wno-stringop-overread -Wno-dangling-pointer -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment -Wno-misleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -g -mavx2 -mfma -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 -ffreestanding -DLIBC_FULL_BUILD -isystem/usr/lib/gcc/x86_64-linux-gnu/12//include -nostdinc -idirafter/usr/include -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 -mno-omit-leaf-frame-pointer -fstack-protector-strong -Wall -Wextra -Werror -Wconversion -Wno-sign-conversion -Wdeprecated -fext-numeric-literals -Wno-pedantic -Wimplicit-fallthrough -Wwrite-strings -Wextra-semi -std=gnu++17 -MD -MT libc/src/math/generic/CMakeFiles/libc.src.math.generic.fmul.__internal__.dir/fmul.cpp.o -MF libc/src/math/generic/CMakeFiles/libc.src.math.generic.fmul.__internal__.dir/fmul.cpp.o.d -o libc/src/math/generic/CMakeFiles/libc.src.math.generic.fmul.__internal__.dir/fmul.cpp.o -c /home/llvm-libc-buildbot/buildbot-worker/libc-x86_64-debian-fullbuild/libc-x86_64-debian-gcc-fullbuild-dbg/llvm-project/libc/src/math/generic/fmul.cpp
In file included from /home/llvm-libc-buildbot/buildbot-worker/libc-x86_64-debian-fullbuild/libc-x86_64-debian-gcc-fullbuild-dbg/llvm-project/libc/src/math/generic/fmul.cpp:10:
/home/llvm-libc-buildbot/buildbot-worker/libc-x86_64-debian-fullbuild/libc-x86_64-debian-gcc-fullbuild-dbg/llvm-project/libc/src/__support/math/fmul.h: In function ‘constexpr float __llvm_libc_20_0_0_git::math::fmul(double, double)’:
/home/llvm-libc-buildbot/buildbot-worker/libc-x86_64-debian-fullbuild/libc-x86_64-debian-gcc-fullbuild-dbg/llvm-project/libc/src/__support/math/fmul.h:30:49: error: call to non-‘constexpr’ function ‘__llvm_libc_20_0_0_git::NumberPair<T> __llvm_libc_20_0_0_git::fputil::exact_mult(T, T) [with T = double; long unsigned int SPLIT_B = 27]’
30 | fputil::DoubleDouble prod = fputil::exact_mult(x, y);
| ~~~~~~~~~~~~~~~~~~^~~~~~
In file included from /home/llvm-libc-buildbot/buildbot-worker/libc-x86_64-debian-fullbuild/libc-x86_64-debian-gcc-fullbuild-dbg/llvm-project/libc/src/__support/math/fmul.h:14:
/home/llvm-libc-buildbot/buildbot-worker/libc-x86_64-debian-fullbuild/libc-x86_64-debian-gcc-fullbuild-dbg/llvm-project/libc/src/__support/FPUtil/double_double.h:132:42: note: ‘__llvm_libc_20_0_0_git::NumberPair<T> __llvm_libc_20_0_0_git::fputil::exact_mult(T, T) [with T = double; long unsigned int SPLIT_B = 27]’ declared here
132 | LIBC_INLINE LIBC_CONSTEXPR NumberPair<T> exact_mult(T a, T b) {
| ^~~~~~~~~~
[86/1796] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.fmul.dir/fmul.cpp.o
FAILED: libc/src/math/generic/CMakeFiles/libc.src.math.generic.fmul.dir/fmul.cpp.o
/usr/bin/g++ -DLIBC_NAMESPACE=__llvm_libc_20_0_0_git -D_DEBUG -I/home/llvm-libc-buildbot/buildbot-worker/libc-x86_64-debian-fullbuild/libc-x86_64-debian-gcc-fullbuild-dbg/llvm-project/libc -isystem /home/llvm-libc-buildbot/buildbot-worker/libc-x86_64-debian-fullbuild/libc-x86_64-debian-gcc-fullbuild-dbg/build/libc/include -fvisibility-inlines-hidden -Werror=date-time -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -Wimplicit-fallthrough -Wno-nonnull -Wno-class-memaccess -Wno-redundant-move -Wno-pessimizing-move -Wno-array-bounds -Wno-stringop-overread -Wno-dangling-pointer -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment -Wno-misleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -g -mavx2 -mfma -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 -ffreestanding -DLIBC_FULL_BUILD -isystem/usr/lib/gcc/x86_64-linux-gnu/12//include -nostdinc -idirafter/usr/include -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 -mno-omit-leaf-frame-pointer -fstack-protector-strong -Wall -Wextra -Werror -Wconversion -Wno-sign-conversion -Wdeprecated -fext-numeric-literals -Wno-pedantic -Wimplicit-fallthrough -Wwrite-strings -Wextra-semi -DLIBC_COPT_PUBLIC_PACKAGING -std=gnu++17 -MD -MT libc/src/math/generic/CMakeFiles/libc.src.math.generic.fmul.dir/fmul.cpp.o -MF libc/src/math/generic/CMakeFiles/libc.src.math.generic.fmul.dir/fmul.cpp.o.d -o libc/src/math/generic/CMakeFiles/libc.src.math.generic.fmul.dir/fmul.cpp.o -c /home/llvm-libc-buildbot/buildbot-worker/libc-x86_64-debian-fullbuild/libc-x86_64-debian-gcc-fullbuild-dbg/llvm-project/libc/src/math/generic/fmul.cpp
In file included from /home/llvm-libc-buildbot/buildbot-worker/libc-x86_64-debian-fullbuild/libc-x86_64-debian-gcc-fullbuild-dbg/llvm-project/libc/src/math/generic/fmul.cpp:10:
/home/llvm-libc-buildbot/buildbot-worker/libc-x86_64-debian-fullbuild/libc-x86_64-debian-gcc-fullbuild-dbg/llvm-project/libc/src/__support/math/fmul.h: In function ‘constexpr float __llvm_libc_20_0_0_git::math::fmul(double, double)’:
/home/llvm-libc-buildbot/buildbot-worker/libc-x86_64-debian-fullbuild/libc-x86_64-debian-gcc-fullbuild-dbg/llvm-project/libc/src/__support/math/fmul.h:30:49: error: call to non-‘constexpr’ function ‘__llvm_libc_20_0_0_git::NumberPair<T> __llvm_libc_20_0_0_git::fputil::exact_mult(T, T) [with T = double; long unsigned int SPLIT_B = 27]’
30 | fputil::DoubleDouble prod = fputil::exact_mult(x, y);
| ~~~~~~~~~~~~~~~~~~^~~~~~
In file included from /home/llvm-libc-buildbot/buildbot-worker/libc-x86_64-debian-fullbuild/libc-x86_64-debian-gcc-fullbuild-dbg/llvm-project/libc/src/__support/math/fmul.h:14:
/home/llvm-libc-buildbot/buildbot-worker/libc-x86_64-debian-fullbuild/libc-x86_64-debian-gcc-fullbuild-dbg/llvm-project/libc/src/__support/FPUtil/double_double.h:132:42: note: ‘__llvm_libc_20_0_0_git::NumberPair<T> __llvm_libc_20_0_0_git::fputil::exact_mult(T, T) [with T = double; long unsigned int SPLIT_B = 27]’ declared here
132 | LIBC_INLINE LIBC_CONSTEXPR NumberPair<T> exact_mult(T a, T b) {
| ^~~~~~~~~~
[87/1796] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.log1p.dir/log1p.cpp.o
[88/1796] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.log1p.__NO_FMA_OPT.dir/log1p.cpp.o
[89/1796] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.log1p.__NO_FMA_OPT.__internal__.dir/log1p.cpp.o
[90/1796] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.fmull.dir/fmull.cpp.o
[91/1796] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.fmul.__NO_FMA_OPT.dir/fmul.cpp.o
[92/1796] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.fmul.__NO_FMA_OPT.__internal__.dir/fmul.cpp.o
[93/1796] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.log1p.__internal__.dir/log1p.cpp.o
[94/1796] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.fmull.__NO_FMA_OPT.__internal__.dir/fmull.cpp.o
[95/1796] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.fmull.__internal__.dir/fmull.cpp.o
[96/1796] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.log10.__internal__.dir/log10.cpp.o
[97/1796] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.log10.dir/log10.cpp.o
[98/1796] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.fsub.__internal__.dir/fsub.cpp.o
[99/1796] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.fsub.dir/fsub.cpp.o
[100/1796] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.fsubl.__internal__.dir/fsubl.cpp.o
[101/1796] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.fmull.__NO_FMA_OPT.dir/fmull.cpp.o
[102/1796] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.fsub.__NO_FMA_OPT.__internal__.dir/fsub.cpp.o
Step 8 (libc-unit-tests) failure: libc-unit-tests (failure)
...
[76/1796] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.frexpl.__NO_FMA_OPT.dir/frexpl.cpp.o
[77/1796] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.pow.__NO_FMA_OPT.dir/pow.cpp.o
[78/1796] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.frexp.__NO_FMA_OPT.__internal__.dir/frexp.cpp.o
[79/1796] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.pow.__NO_FMA_OPT.__NO_ROUND_OPT.dir/pow.cpp.o
[80/1796] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.frexpbf16.__internal__.dir/frexpbf16.cpp.o
[81/1796] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.frexp.__NO_FMA_OPT.dir/frexp.cpp.o
[82/1796] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.frexpbf16.__NO_FMA_OPT.__internal__.dir/frexpbf16.cpp.o
[83/1796] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.frexpbf16.dir/frexpbf16.cpp.o
[84/1796] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.frexpbf16.__NO_FMA_OPT.dir/frexpbf16.cpp.o
[85/1796] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.fmul.__internal__.dir/fmul.cpp.o
FAILED: libc/src/math/generic/CMakeFiles/libc.src.math.generic.fmul.__internal__.dir/fmul.cpp.o
/usr/bin/g++ -DLIBC_NAMESPACE=__llvm_libc_20_0_0_git -D_DEBUG -I/home/llvm-libc-buildbot/buildbot-worker/libc-x86_64-debian-fullbuild/libc-x86_64-debian-gcc-fullbuild-dbg/llvm-project/libc -isystem /home/llvm-libc-buildbot/buildbot-worker/libc-x86_64-debian-fullbuild/libc-x86_64-debian-gcc-fullbuild-dbg/build/libc/include -fvisibility-inlines-hidden -Werror=date-time -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -Wimplicit-fallthrough -Wno-nonnull -Wno-class-memaccess -Wno-redundant-move -Wno-pessimizing-move -Wno-array-bounds -Wno-stringop-overread -Wno-dangling-pointer -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment -Wno-misleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -g -mavx2 -mfma -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 -ffreestanding -DLIBC_FULL_BUILD -isystem/usr/lib/gcc/x86_64-linux-gnu/12//include -nostdinc -idirafter/usr/include -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 -mno-omit-leaf-frame-pointer -fstack-protector-strong -Wall -Wextra -Werror -Wconversion -Wno-sign-conversion -Wdeprecated -fext-numeric-literals -Wno-pedantic -Wimplicit-fallthrough -Wwrite-strings -Wextra-semi -std=gnu++17 -MD -MT libc/src/math/generic/CMakeFiles/libc.src.math.generic.fmul.__internal__.dir/fmul.cpp.o -MF libc/src/math/generic/CMakeFiles/libc.src.math.generic.fmul.__internal__.dir/fmul.cpp.o.d -o libc/src/math/generic/CMakeFiles/libc.src.math.generic.fmul.__internal__.dir/fmul.cpp.o -c /home/llvm-libc-buildbot/buildbot-worker/libc-x86_64-debian-fullbuild/libc-x86_64-debian-gcc-fullbuild-dbg/llvm-project/libc/src/math/generic/fmul.cpp
In file included from /home/llvm-libc-buildbot/buildbot-worker/libc-x86_64-debian-fullbuild/libc-x86_64-debian-gcc-fullbuild-dbg/llvm-project/libc/src/math/generic/fmul.cpp:10:
/home/llvm-libc-buildbot/buildbot-worker/libc-x86_64-debian-fullbuild/libc-x86_64-debian-gcc-fullbuild-dbg/llvm-project/libc/src/__support/math/fmul.h: In function ‘constexpr float __llvm_libc_20_0_0_git::math::fmul(double, double)’:
/home/llvm-libc-buildbot/buildbot-worker/libc-x86_64-debian-fullbuild/libc-x86_64-debian-gcc-fullbuild-dbg/llvm-project/libc/src/__support/math/fmul.h:30:49: error: call to non-‘constexpr’ function ‘__llvm_libc_20_0_0_git::NumberPair<T> __llvm_libc_20_0_0_git::fputil::exact_mult(T, T) [with T = double; long unsigned int SPLIT_B = 27]’
30 | fputil::DoubleDouble prod = fputil::exact_mult(x, y);
| ~~~~~~~~~~~~~~~~~~^~~~~~
In file included from /home/llvm-libc-buildbot/buildbot-worker/libc-x86_64-debian-fullbuild/libc-x86_64-debian-gcc-fullbuild-dbg/llvm-project/libc/src/__support/math/fmul.h:14:
/home/llvm-libc-buildbot/buildbot-worker/libc-x86_64-debian-fullbuild/libc-x86_64-debian-gcc-fullbuild-dbg/llvm-project/libc/src/__support/FPUtil/double_double.h:132:42: note: ‘__llvm_libc_20_0_0_git::NumberPair<T> __llvm_libc_20_0_0_git::fputil::exact_mult(T, T) [with T = double; long unsigned int SPLIT_B = 27]’ declared here
132 | LIBC_INLINE LIBC_CONSTEXPR NumberPair<T> exact_mult(T a, T b) {
| ^~~~~~~~~~
[86/1796] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.fmul.dir/fmul.cpp.o
FAILED: libc/src/math/generic/CMakeFiles/libc.src.math.generic.fmul.dir/fmul.cpp.o
/usr/bin/g++ -DLIBC_NAMESPACE=__llvm_libc_20_0_0_git -D_DEBUG -I/home/llvm-libc-buildbot/buildbot-worker/libc-x86_64-debian-fullbuild/libc-x86_64-debian-gcc-fullbuild-dbg/llvm-project/libc -isystem /home/llvm-libc-buildbot/buildbot-worker/libc-x86_64-debian-fullbuild/libc-x86_64-debian-gcc-fullbuild-dbg/build/libc/include -fvisibility-inlines-hidden -Werror=date-time -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -Wimplicit-fallthrough -Wno-nonnull -Wno-class-memaccess -Wno-redundant-move -Wno-pessimizing-move -Wno-array-bounds -Wno-stringop-overread -Wno-dangling-pointer -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment -Wno-misleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -g -mavx2 -mfma -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 -ffreestanding -DLIBC_FULL_BUILD -isystem/usr/lib/gcc/x86_64-linux-gnu/12//include -nostdinc -idirafter/usr/include -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 -mno-omit-leaf-frame-pointer -fstack-protector-strong -Wall -Wextra -Werror -Wconversion -Wno-sign-conversion -Wdeprecated -fext-numeric-literals -Wno-pedantic -Wimplicit-fallthrough -Wwrite-strings -Wextra-semi -DLIBC_COPT_PUBLIC_PACKAGING -std=gnu++17 -MD -MT libc/src/math/generic/CMakeFiles/libc.src.math.generic.fmul.dir/fmul.cpp.o -MF libc/src/math/generic/CMakeFiles/libc.src.math.generic.fmul.dir/fmul.cpp.o.d -o libc/src/math/generic/CMakeFiles/libc.src.math.generic.fmul.dir/fmul.cpp.o -c /home/llvm-libc-buildbot/buildbot-worker/libc-x86_64-debian-fullbuild/libc-x86_64-debian-gcc-fullbuild-dbg/llvm-project/libc/src/math/generic/fmul.cpp
In file included from /home/llvm-libc-buildbot/buildbot-worker/libc-x86_64-debian-fullbuild/libc-x86_64-debian-gcc-fullbuild-dbg/llvm-project/libc/src/math/generic/fmul.cpp:10:
/home/llvm-libc-buildbot/buildbot-worker/libc-x86_64-debian-fullbuild/libc-x86_64-debian-gcc-fullbuild-dbg/llvm-project/libc/src/__support/math/fmul.h: In function ‘constexpr float __llvm_libc_20_0_0_git::math::fmul(double, double)’:
/home/llvm-libc-buildbot/buildbot-worker/libc-x86_64-debian-fullbuild/libc-x86_64-debian-gcc-fullbuild-dbg/llvm-project/libc/src/__support/math/fmul.h:30:49: error: call to non-‘constexpr’ function ‘__llvm_libc_20_0_0_git::NumberPair<T> __llvm_libc_20_0_0_git::fputil::exact_mult(T, T) [with T = double; long unsigned int SPLIT_B = 27]’
30 | fputil::DoubleDouble prod = fputil::exact_mult(x, y);
| ~~~~~~~~~~~~~~~~~~^~~~~~
In file included from /home/llvm-libc-buildbot/buildbot-worker/libc-x86_64-debian-fullbuild/libc-x86_64-debian-gcc-fullbuild-dbg/llvm-project/libc/src/__support/math/fmul.h:14:
/home/llvm-libc-buildbot/buildbot-worker/libc-x86_64-debian-fullbuild/libc-x86_64-debian-gcc-fullbuild-dbg/llvm-project/libc/src/__support/FPUtil/double_double.h:132:42: note: ‘__llvm_libc_20_0_0_git::NumberPair<T> __llvm_libc_20_0_0_git::fputil::exact_mult(T, T) [with T = double; long unsigned int SPLIT_B = 27]’ declared here
132 | LIBC_INLINE LIBC_CONSTEXPR NumberPair<T> exact_mult(T a, T b) {
| ^~~~~~~~~~
[87/1796] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.log1p.dir/log1p.cpp.o
[88/1796] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.log1p.__NO_FMA_OPT.dir/log1p.cpp.o
[89/1796] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.log1p.__NO_FMA_OPT.__internal__.dir/log1p.cpp.o
[90/1796] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.fmull.dir/fmull.cpp.o
[91/1796] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.fmul.__NO_FMA_OPT.dir/fmul.cpp.o
[92/1796] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.fmul.__NO_FMA_OPT.__internal__.dir/fmul.cpp.o
[93/1796] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.log1p.__internal__.dir/log1p.cpp.o
[94/1796] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.fmull.__NO_FMA_OPT.__internal__.dir/fmull.cpp.o
[95/1796] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.fmull.__internal__.dir/fmull.cpp.o
[96/1796] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.log10.__internal__.dir/log10.cpp.o
[97/1796] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.log10.dir/log10.cpp.o
[98/1796] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.fsub.__internal__.dir/fsub.cpp.o
[99/1796] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.fsub.dir/fsub.cpp.o
[100/1796] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.fsubl.__internal__.dir/fsubl.cpp.o
[101/1796] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.fmull.__NO_FMA_OPT.dir/fmull.cpp.o
[102/1796] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.fsub.__NO_FMA_OPT.__internal__.dir/fsub.cpp.o
```
</details>
https://github.com/llvm/llvm-project/pull/195431
More information about the libc-commits
mailing list