From: Richard Earnshaw Date: Mon, 31 Mar 2025 17:06:54 +0000 (+0100) Subject: arm: select CCFPEmode for LTGT [PR91323] X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=fe10ca6e3cf583640155812b230a0153ce4dc7b7;p=thirdparty%2Fgcc.git 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. --- diff --git a/gcc/config/arm/arm.cc b/gcc/config/arm/arm.cc index fccddb0e7bc..6bdb68aa788 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);