]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
arm: select CCFPEmode for LTGT [PR91323]
authorRichard Earnshaw <rearnsha@arm.com>
Mon, 31 Mar 2025 17:06:54 +0000 (18:06 +0100)
committerRichard Earnshaw <rearnsha@arm.com>
Wed, 7 May 2025 16:49:02 +0000 (17:49 +0100)
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.

gcc/config/arm/arm.cc

index fccddb0e7bc5d2dd796bcb0d5027228478bd61f1..6bdb68aa788140aa66ee8eb9f2f53e67aa566629 100644 (file)
@@ -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);