aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2005-01-18 03:08:33 -0800
committerRichard Henderson <rth@gcc.gnu.org>2005-01-18 03:08:33 -0800
commit51d7bae6e0a26d07cb4875e6c1350f718dfc2d51 (patch)
tree9f08e2aec04b758080bfbacfc0936b90f1a3e1b1 /gcc
parentf5975bd51bcdd12433883f4b39506140b74941e6 (diff)
downloadgcc-51d7bae6e0a26d07cb4875e6c1350f718dfc2d51.zip
gcc-51d7bae6e0a26d07cb4875e6c1350f718dfc2d51.tar.gz
gcc-51d7bae6e0a26d07cb4875e6c1350f718dfc2d51.tar.bz2
re PR target/19496 (ICE in gcc.c-torture/execute/ieee/fp-cmp-8.c for x86_64 and i686 with -msse2 -mfpmath=sse)
PR target/19496 * config/i386/i386.c (ix86_expand_fp_movcc): Fail for LTGT and UNEQ. From-SVN: r93826
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/i386/i386.c6
2 files changed, 11 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 4dc927c..cf9dd40 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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.
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index c3aff8e..b6cfde3 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -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. */