[libc-commits] [libc] [llvm] [libc] Extend fputil::sqrt to use floating point instructions for arm32. (PR #134499)
LLVM Continuous Integration via libc-commits
libc-commits at lists.llvm.org
Tue Apr 8 19:48:20 PDT 2025
llvm-ci wrote:
LLVM Buildbot has detected a new failure on builder `libc-arm32-debian-dbg` running on `libc-arm32-debian` while building `libc,utils` at step 4 "annotate".
Full details are available at: https://lab.llvm.org/buildbot/#/builders/182/builds/9788
<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)
...
[80/364] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.erff.dir/erff.cpp.o
[81/364] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.exp.dir/exp.cpp.o
[82/364] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.expf.dir/expf.cpp.o
[83/364] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.exp2f.dir/exp2f.cpp.o
[84/364] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.exp2.dir/exp2.cpp.o
[85/364] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.exp10f.dir/exp10f.cpp.o
[86/364] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.exp10.dir/exp10.cpp.o
[87/364] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.expm1f.dir/expm1f.cpp.o
[88/364] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.expm1.dir/expm1.cpp.o
[89/364] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.powf.dir/powf.cpp.o
FAILED: libc/src/math/generic/CMakeFiles/libc.src.math.generic.powf.dir/powf.cpp.o
/llvm/llvm-install/bin/clang++ -DLIBC_NAMESPACE=__llvm_libc_20_0_0_git -D_DEBUG -I/llvm/libc_worker/worker/libc-arm32-debian/libc-arm32-debian-dbg/llvm-project/libc -isystem /llvm/libc_worker/worker/libc-arm32-debian/libc-arm32-debian-dbg/build/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 -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 -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.powf.dir/powf.cpp.o -MF libc/src/math/generic/CMakeFiles/libc.src.math.generic.powf.dir/powf.cpp.o.d -o libc/src/math/generic/CMakeFiles/libc.src.math.generic.powf.dir/powf.cpp.o -c /llvm/libc_worker/worker/libc-arm32-debian/libc-arm32-debian-dbg/llvm-project/libc/src/math/generic/powf.cpp
In file included from /llvm/libc_worker/worker/libc-arm32-debian/libc-arm32-debian-dbg/llvm-project/libc/src/math/generic/powf.cpp:20:
In file included from /llvm/libc_worker/worker/libc-arm32-debian/libc-arm32-debian-dbg/llvm-project/libc/src/__support/FPUtil/sqrt.h:46:
/llvm/libc_worker/worker/libc-arm32-debian/libc-arm32-debian-dbg/llvm-project/libc/src/__support/FPUtil/arm/sqrt.h:27:7: error: invalid operand in inline asm: 'fsqrt ${0:s}, ${1:s} '
asm("fsqrt %s0, %s1\n\t" : "=w"(y) : "w"(x));
^
/llvm/libc_worker/worker/libc-arm32-debian/libc-arm32-debian-dbg/llvm-project/libc/src/__support/FPUtil/arm/sqrt.h:27:7: error: invalid operand in inline asm: 'fsqrt ${0:s}, ${1:s} '
/llvm/libc_worker/worker/libc-arm32-debian/libc-arm32-debian-dbg/llvm-project/libc/src/__support/FPUtil/arm/sqrt.h:27:7: error: unexpected token in operand
<inline asm>:1:8: note: instantiated into assembly here
fsqrt ,
^
3 errors generated.
[90/364] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.pow.dir/pow.cpp.o
FAILED: libc/src/math/generic/CMakeFiles/libc.src.math.generic.pow.dir/pow.cpp.o
/llvm/llvm-install/bin/clang++ -DLIBC_NAMESPACE=__llvm_libc_20_0_0_git -D_DEBUG -I/llvm/libc_worker/worker/libc-arm32-debian/libc-arm32-debian-dbg/llvm-project/libc -isystem /llvm/libc_worker/worker/libc-arm32-debian/libc-arm32-debian-dbg/build/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 -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 -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.pow.dir/pow.cpp.o -MF libc/src/math/generic/CMakeFiles/libc.src.math.generic.pow.dir/pow.cpp.o.d -o libc/src/math/generic/CMakeFiles/libc.src.math.generic.pow.dir/pow.cpp.o -c /llvm/libc_worker/worker/libc-arm32-debian/libc-arm32-debian-dbg/llvm-project/libc/src/math/generic/pow.cpp
In file included from /llvm/libc_worker/worker/libc-arm32-debian/libc-arm32-debian-dbg/llvm-project/libc/src/math/generic/pow.cpp:20:
In file included from /llvm/libc_worker/worker/libc-arm32-debian/libc-arm32-debian-dbg/llvm-project/libc/src/__support/FPUtil/sqrt.h:46:
/llvm/libc_worker/worker/libc-arm32-debian/libc-arm32-debian-dbg/llvm-project/libc/src/__support/FPUtil/arm/sqrt.h:35:7: error: invalid operand in inline asm: 'fsqrt ${0:d}, ${1:d} '
asm("fsqrt %d0, %d1\n\t" : "=w"(y) : "w"(x));
^
/llvm/libc_worker/worker/libc-arm32-debian/libc-arm32-debian-dbg/llvm-project/libc/src/__support/FPUtil/arm/sqrt.h:35:7: error: invalid operand in inline asm: 'fsqrt ${0:d}, ${1:d} '
/llvm/libc_worker/worker/libc-arm32-debian/libc-arm32-debian-dbg/llvm-project/libc/src/__support/FPUtil/arm/sqrt.h:35:7: error: unexpected token in operand
<inline asm>:1:8: note: instantiated into assembly here
fsqrt ,
^
3 errors generated.
ninja: build stopped: subcommand failed.
['ninja', 'libc'] exited with return code 1.
The build step threw an exception...
Traceback (most recent call last):
File "/llvm/libc_worker/worker/libc-arm32-debian/libc-arm32-debian-dbg/build/../llvm-zorg/zorg/buildbot/builders/annotated/libc-linux.py", line 164, in step
yield
File "/llvm/libc_worker/worker/libc-arm32-debian/libc-arm32-debian-dbg/build/../llvm-zorg/zorg/buildbot/builders/annotated/libc-linux.py", line 126, in main
run_command(['ninja', 'libc'])
File "/llvm/libc_worker/worker/libc-arm32-debian/libc-arm32-debian-dbg/build/../llvm-zorg/zorg/buildbot/builders/annotated/libc-linux.py", line 179, in run_command
util.report_run_cmd(cmd, cwd=directory)
File "/llvm/libc_worker/worker/libc-arm32-debian/libc-arm32-debian-dbg/llvm-zorg/zorg/buildbot/builders/annotated/util.py", line 49, in report_run_cmd
subprocess.check_call(cmd, shell=shell, *args, **kwargs)
Step 6 (build libc) failure: build libc (failure)
...
[80/364] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.erff.dir/erff.cpp.o
[81/364] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.exp.dir/exp.cpp.o
[82/364] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.expf.dir/expf.cpp.o
[83/364] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.exp2f.dir/exp2f.cpp.o
[84/364] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.exp2.dir/exp2.cpp.o
[85/364] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.exp10f.dir/exp10f.cpp.o
[86/364] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.exp10.dir/exp10.cpp.o
[87/364] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.expm1f.dir/expm1f.cpp.o
[88/364] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.expm1.dir/expm1.cpp.o
[89/364] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.powf.dir/powf.cpp.o
FAILED: libc/src/math/generic/CMakeFiles/libc.src.math.generic.powf.dir/powf.cpp.o
/llvm/llvm-install/bin/clang++ -DLIBC_NAMESPACE=__llvm_libc_20_0_0_git -D_DEBUG -I/llvm/libc_worker/worker/libc-arm32-debian/libc-arm32-debian-dbg/llvm-project/libc -isystem /llvm/libc_worker/worker/libc-arm32-debian/libc-arm32-debian-dbg/build/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 -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 -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.powf.dir/powf.cpp.o -MF libc/src/math/generic/CMakeFiles/libc.src.math.generic.powf.dir/powf.cpp.o.d -o libc/src/math/generic/CMakeFiles/libc.src.math.generic.powf.dir/powf.cpp.o -c /llvm/libc_worker/worker/libc-arm32-debian/libc-arm32-debian-dbg/llvm-project/libc/src/math/generic/powf.cpp
In file included from /llvm/libc_worker/worker/libc-arm32-debian/libc-arm32-debian-dbg/llvm-project/libc/src/math/generic/powf.cpp:20:
In file included from /llvm/libc_worker/worker/libc-arm32-debian/libc-arm32-debian-dbg/llvm-project/libc/src/__support/FPUtil/sqrt.h:46:
/llvm/libc_worker/worker/libc-arm32-debian/libc-arm32-debian-dbg/llvm-project/libc/src/__support/FPUtil/arm/sqrt.h:27:7: error: invalid operand in inline asm: 'fsqrt ${0:s}, ${1:s} '
asm("fsqrt %s0, %s1\n\t" : "=w"(y) : "w"(x));
^
/llvm/libc_worker/worker/libc-arm32-debian/libc-arm32-debian-dbg/llvm-project/libc/src/__support/FPUtil/arm/sqrt.h:27:7: error: invalid operand in inline asm: 'fsqrt ${0:s}, ${1:s} '
/llvm/libc_worker/worker/libc-arm32-debian/libc-arm32-debian-dbg/llvm-project/libc/src/__support/FPUtil/arm/sqrt.h:27:7: error: unexpected token in operand
<inline asm>:1:8: note: instantiated into assembly here
fsqrt ,
^
3 errors generated.
[90/364] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.pow.dir/pow.cpp.o
FAILED: libc/src/math/generic/CMakeFiles/libc.src.math.generic.pow.dir/pow.cpp.o
/llvm/llvm-install/bin/clang++ -DLIBC_NAMESPACE=__llvm_libc_20_0_0_git -D_DEBUG -I/llvm/libc_worker/worker/libc-arm32-debian/libc-arm32-debian-dbg/llvm-project/libc -isystem /llvm/libc_worker/worker/libc-arm32-debian/libc-arm32-debian-dbg/build/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 -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 -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.pow.dir/pow.cpp.o -MF libc/src/math/generic/CMakeFiles/libc.src.math.generic.pow.dir/pow.cpp.o.d -o libc/src/math/generic/CMakeFiles/libc.src.math.generic.pow.dir/pow.cpp.o -c /llvm/libc_worker/worker/libc-arm32-debian/libc-arm32-debian-dbg/llvm-project/libc/src/math/generic/pow.cpp
In file included from /llvm/libc_worker/worker/libc-arm32-debian/libc-arm32-debian-dbg/llvm-project/libc/src/math/generic/pow.cpp:20:
In file included from /llvm/libc_worker/worker/libc-arm32-debian/libc-arm32-debian-dbg/llvm-project/libc/src/__support/FPUtil/sqrt.h:46:
/llvm/libc_worker/worker/libc-arm32-debian/libc-arm32-debian-dbg/llvm-project/libc/src/__support/FPUtil/arm/sqrt.h:35:7: error: invalid operand in inline asm: 'fsqrt ${0:d}, ${1:d} '
asm("fsqrt %d0, %d1\n\t" : "=w"(y) : "w"(x));
^
/llvm/libc_worker/worker/libc-arm32-debian/libc-arm32-debian-dbg/llvm-project/libc/src/__support/FPUtil/arm/sqrt.h:35:7: error: invalid operand in inline asm: 'fsqrt ${0:d}, ${1:d} '
/llvm/libc_worker/worker/libc-arm32-debian/libc-arm32-debian-dbg/llvm-project/libc/src/__support/FPUtil/arm/sqrt.h:35:7: error: unexpected token in operand
<inline asm>:1:8: note: instantiated into assembly here
fsqrt ,
^
3 errors generated.
ninja: build stopped: subcommand failed.
['ninja', 'libc'] exited with return code 1.
The build step threw an exception...
Traceback (most recent call last):
File "/llvm/libc_worker/worker/libc-arm32-debian/libc-arm32-debian-dbg/build/../llvm-zorg/zorg/buildbot/builders/annotated/libc-linux.py", line 164, in step
yield
File "/llvm/libc_worker/worker/libc-arm32-debian/libc-arm32-debian-dbg/build/../llvm-zorg/zorg/buildbot/builders/annotated/libc-linux.py", line 126, in main
run_command(['ninja', 'libc'])
File "/llvm/libc_worker/worker/libc-arm32-debian/libc-arm32-debian-dbg/build/../llvm-zorg/zorg/buildbot/builders/annotated/libc-linux.py", line 179, in run_command
util.report_run_cmd(cmd, cwd=directory)
File "/llvm/libc_worker/worker/libc-arm32-debian/libc-arm32-debian-dbg/llvm-zorg/zorg/buildbot/builders/annotated/util.py", line 49, in report_run_cmd
subprocess.check_call(cmd, shell=shell, *args, **kwargs)
```
</details>
https://github.com/llvm/llvm-project/pull/134499
More information about the libc-commits
mailing list