rs6000.md (move_from_CR_gt_bit): Enable for TARGET_HARD_FLOAT && !TARGET_FPRS, not...
authorJoseph Myers <joseph@codesourcery.com>
Fri, 5 Dec 2008 16:09:12 +0000 (16:09 +0000)
committerJoseph Myers <jsm28@gcc.gnu.org>
Fri, 5 Dec 2008 16:09:12 +0000 (16:09 +0000)
* 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.

From-SVN: r142477

gcc/ChangeLog
gcc/config/rs6000/rs6000.md
gcc/config/rs6000/spe.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/powerpc/20081204-1.c [new file with mode: 0644]

index 60d4455..e42d80e 100644 (file)
@@ -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
index 4fa690d..b1df32a 100644 (file)
 (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")])
index 96be255..50736f1 100644 (file)
        (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")])
 
index 143eb23..d342035 100644 (file)
@@ -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 (file)
index 0000000..ba4df8f
--- /dev/null
@@ -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);
+}