re PR target/19496 (ICE in gcc.c-torture/execute/ieee/fp-cmp-8.c for x86_64 and i686...
authorRichard Henderson <rth@redhat.com>
Tue, 18 Jan 2005 11:08:33 +0000 (03:08 -0800)
committerRichard Henderson <rth@gcc.gnu.org>
Tue, 18 Jan 2005 11:08:33 +0000 (03:08 -0800)
        PR target/19496
        * config/i386/i386.c (ix86_expand_fp_movcc): Fail for LTGT and UNEQ.

From-SVN: r93826

gcc/ChangeLog
gcc/config/i386/i386.c

index 4dc927c9de80775f72dfffb5d6b3aaf6cc97e904..cf9dd40ee111442d4fa4a0372af741184dd971c3 100644 (file)
@@ -1,3 +1,8 @@
+2005-01-18  Richard Henderson  <rth@redhat.com>
+
+       PR target/19496
+       * config/i386/i386.c (ix86_expand_fp_movcc): Fail for LTGT and UNEQ.
+
 2005-01-18  Marc Espie  <espie@openbsd.org>
        * config/i386/openbsdelf.h: Typo.
 
index c3aff8e305ef41d9de1d9f79694bc65c96b1db38..b6cfde306e57a55c52023577dc7fda1e4accd2a7 100644 (file)
@@ -9764,6 +9764,12 @@ ix86_expand_fp_movcc (rtx operands[])
       if (cmode != mode)
        return 0;
 
+      /* We have no LTGT as an operator.  We could implement it with
+        NE & ORDERED, but this requires an extra temporary.  It's
+        not clear that it's worth it.  */
+      if (code == LTGT || code == UNEQ)
+       return 0;
+
       /* Massage condition to satisfy sse_comparison_operator.  Try
         to canonicalize the destination operand to be first in the
         comparison - this helps reload to avoid extra moves.  */