https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116007
Peter Bergner <bergner at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2024-08-02 Ever confirmed|0 |1 --- Comment #13 from Peter Bergner <bergner at gcc dot gnu.org> --- Just as an FYI, the following error on a powerpc64le-linux --without-long-double-128 build: In file included from ../../../libquadmath/math/sqrtq.c:13: ../../../libquadmath/math/../../libgcc/soft-fp/quad.h:69:1: error: unable to emulate 'TF' 69 | typedef float TFtype __attribute__ ((mode (TF))); | ^~~~~~~ ...first shows up with the following commit: commit 481ba4fb5fce8257f5dbeb994dac2748c0237fa2 (HEAD) Author: Jakub Jelinek <ja...@redhat.com> AuthorDate: Tue Apr 9 08:17:25 2024 +0200 Commit: Jakub Jelinek <ja...@redhat.com> CommitDate: Tue Apr 9 08:17:25 2024 +0200 libquadmath: Use soft-fp for sqrtq finite positive arguments [PR114623] sqrt should be 0.5ulp precise, but the current implementation is less precise than that. The following patch uses the soft-fp code (like e.g. glibc for x86) for it if possible. I didn't want to replicate the libgcc infrastructure for choosing the right sfp-machine.h, so the patch just uses a single generic implementation. As the code is used solely for the finite positive arguments, it shouldn't generate NaNs (so the exact form of canonical QNaN/SNaN is irrelevant), and sqrt for these shouldn't produce underflows/overflows either, for < 1.0 arguments it always returns larger values than the argument and for > 1.0 smaller values than the argument. 2024-04-09 Jakub Jelinek <ja...@redhat.com> PR libquadmath/114623 * sfp-machine.h: New file. * math/sqrtq.c: Include from libgcc/soft-fp also soft-fp.h and quad.h if possible. (USE_SOFT_FP): Define in that case. (sqrtq): Use soft-fp based implementation for the finite positive arguments if possible. ...which is due to the above commit code includes quad.h, and quad.h (even before the above commit) seems to require TFmode exists, which it doesn't on a --without-long-double-128 build.