[Bug target/110796] builtin_iseqsig fails some tests in armv8l-linux-gnueabihf
cvs-commit at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Mon Dec 1 10:06:54 GMT 2025
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110796
--- Comment #16 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-15 branch has been updated by Richard Earnshaw
<rearnsha@gcc.gnu.org>:
https://gcc.gnu.org/g:746e09b32b5dde185aef06a405b5c643e5a595e7
commit r15-10565-g746e09b32b5dde185aef06a405b5c643e5a595e7
Author: Richard Earnshaw <rearnsha@arm.com>
Date: Fri Mar 28 12:59:03 2025 +0000
arm: Only reverse FP inequalities when -ffinite-math-only [PR110796...]
On Arm we have been failing to fully implement support for IEEE NaNs
in inequality comparisons because we have allowed reversing of
inequalities in a way that allows SELECT_CC_MODE to produce different
answers. For example, the reverse of GT is UNLE, but if we pass these
two RTL codes to SELECT_CC_MODE, the former will return CCFPEmode,
while the latter CCFPmode.
It would be possible to allow fully reversible FPmodes, but to do so
would involve adding yet more RTL codes, something like NOT_GT and
NOT_UNLE, for the cases we cannot currently reverse. NOT_GT would
then have the same condition code generation as UNLT, but the same
mode selection as GT.
In the mean time, we need to restrict REVERSIBLE_CC_MODE to
non-floating modes unless we are compiling with -ffinite-math-only. In
that case we can continue to reverse the comparisons, but now we want
to always select CCFPmode as there's no need to consider the exception
raising cases.
PR target/110796
PR target/118446
gcc/ChangeLog:
* config/arm/arm.h (REVERSIBLE_CC_MODE): FP modes are only
reversible if flag_finite_math_only.
* config/arm/arm.cc (arm_select_cc_mode): Return CCFPmode for all
FP comparisons if flag_finite_math_only.
gcc/testsuite/ChangeLog:
* gcc.target/arm/armv8_2-fp16-arith-1.c: Adjust due to no-longer
emitting VCMPE when -ffast-math..
(cherry picked from commit 0a339746e7646bacf2c8aa5512268d23660f26f9)
More information about the Gcc-bugs
mailing list