aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Earnshaw <rearnsha@arm.com>2025-03-31 18:06:54 +0100
committerRichard Earnshaw <rearnsha@arm.com>2025-05-07 17:49:02 +0100
commitfe10ca6e3cf583640155812b230a0153ce4dc7b7 (patch)
treed358019a873ffa909cbf4a00a3ba9e8deda9c353
parent0a339746e7646bacf2c8aa5512268d23660f26f9 (diff)
downloadgcc-fe10ca6e3cf583640155812b230a0153ce4dc7b7.zip
gcc-fe10ca6e3cf583640155812b230a0153ce4dc7b7.tar.gz
gcc-fe10ca6e3cf583640155812b230a0153ce4dc7b7.tar.bz2
arm: select CCFPEmode for LTGT [PR91323]
Besides Arm, there are three other ports that define both CCFPmode and CCFPEmode. AArch64 and Sparc return CCFPEmode for LTGT; the other, Visium, doesn't support LTGT at all. AArch64 was changed in r8-5286-g8332c5ee8c5f3b, and Sparc with r10-2926-g000a5f8d23c04c. I suspect this issue is latent on Arm because cbranch?f4 and cstore?f4 reject LTGT and UNEQ and we fall back to a generic expansion which happens to work. Nevertheless, this patch updates the relevant bits of the Arm port to match the specification introduced in r10-2926-g000a5f8d23c04c. gcc/ChangeLog: PR target/91323 * config/arm/arm.cc (arm_select_cc_mode): Use CCFPEmode for LTGT.
-rw-r--r--gcc/config/arm/arm.cc2
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/config/arm/arm.cc b/gcc/config/arm/arm.cc
index fccddb0..6bdb68a 100644
--- a/gcc/config/arm/arm.cc
+++ b/gcc/config/arm/arm.cc
@@ -16211,13 +16211,13 @@ arm_select_cc_mode (enum rtx_code op, rtx x, rtx y)
case UNGT:
case UNGE:
case UNEQ:
- case LTGT:
return CCFPmode;
case LT:
case LE:
case GT:
case GE:
+ case LTGT:
return (flag_finite_math_only
? CCFPmode
: CCFPEmode);