summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4>2008-12-05 16:09:12 +0000
committerjsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4>2008-12-05 16:09:12 +0000
commit4b546660693a9bb1a0d0c2d49a13dda2b0d5f82d (patch)
tree79005340846756f46525469bd20161e9929f7582
parenta368a029efe682f2f51d23c146bf6f9fc9fb6bfc (diff)
downloadppe42-gcc-4b546660693a9bb1a0d0c2d49a13dda2b0d5f82d.tar.gz
ppe42-gcc-4b546660693a9bb1a0d0c2d49a13dda2b0d5f82d.zip
* config/rs6000/rs6000.md (move_from_CR_gt_bit): Enable for
TARGET_HARD_FLOAT && !TARGET_FPRS, not TARGET_E500. * config/rs6000/spe.md (e500_cr_ior_compare): Likewise. testsuite: * gcc.target/powerpc/20081204-1.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@142477 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/rs6000/rs6000.md2
-rw-r--r--gcc/config/rs6000/spe.md2
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/gcc.target/powerpc/20081204-1.c7
5 files changed, 19 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 60d44550512..e42d80e9ecc 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2008-12-05 Joseph Myers <joseph@codesourcery.com>
+
+ * config/rs6000/rs6000.md (move_from_CR_gt_bit): Enable for
+ TARGET_HARD_FLOAT && !TARGET_FPRS, not TARGET_E500.
+ * config/rs6000/spe.md (e500_cr_ior_compare): Likewise.
+
2008-12-05 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/37716
diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md
index 4fa690d8097..b1df32aa17c 100644
--- a/gcc/config/rs6000/rs6000.md
+++ b/gcc/config/rs6000/rs6000.md
@@ -12215,7 +12215,7 @@
(define_insn "move_from_CR_gt_bit"
[(set (match_operand:SI 0 "gpc_reg_operand" "=r")
(unspec:SI [(match_operand 1 "cc_reg_operand" "y")] UNSPEC_MV_CR_GT))]
- "TARGET_E500"
+ "TARGET_HARD_FLOAT && !TARGET_FPRS"
"mfcr %0\;{rlinm|rlwinm} %0,%0,%D1,31,31"
[(set_attr "type" "mfcr")
(set_attr "length" "8")])
diff --git a/gcc/config/rs6000/spe.md b/gcc/config/rs6000/spe.md
index 96be255895b..50736f1a6ba 100644
--- a/gcc/config/rs6000/spe.md
+++ b/gcc/config/rs6000/spe.md
@@ -3135,7 +3135,7 @@
(unspec:CCFP [(match_operand 1 "cc_reg_operand" "y")
(match_operand 2 "cc_reg_operand" "y")]
E500_CR_IOR_COMPARE))]
- "TARGET_E500"
+ "TARGET_HARD_FLOAT && !TARGET_FPRS"
"cror 4*%0+gt,4*%1+gt,4*%2+gt"
[(set_attr "type" "cr_logical")])
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 143eb235e0f..d342035cc99 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2008-12-05 Joseph Myers <joseph@codesourcery.com>
+
+ * gcc.target/powerpc/20081204-1.c: New test.
+
2008-12-05 Richard Guenther <rguenther@suse.de>
PR testsuite/38406
diff --git a/gcc/testsuite/gcc.target/powerpc/20081204-1.c b/gcc/testsuite/gcc.target/powerpc/20081204-1.c
new file mode 100644
index 00000000000..ba4df8f3e29
--- /dev/null
+++ b/gcc/testsuite/gcc.target/powerpc/20081204-1.c
@@ -0,0 +1,7 @@
+/* Test for ICE arising from inconsistent use of TARGET_E500 versus
+ TARGET_HARD_FLOAT && !TARGET_FPRS. */
+/* { dg-do compile } */
+/* { dg-options "-mcpu=750 -mfloat-gprs=single" } */
+static int comp(const void *a,const void *b){
+ return (*(float *)a<*(float *)b)-(*(float *)a>*(float *)b);
+}
OpenPOWER on IntegriCloud