aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Bergner <bergner@vnet.ibm.com>2012-02-09 08:46:02 -0600
committerPeter Bergner <bergner@gcc.gnu.org>2012-02-09 08:46:02 -0600
commit16e0be9b8e67554b4c43b7bbd57978fb6e9f4611 (patch)
tree45e7ac905893bbbb095d8c1c1ed439710e5aaece
parent732b7729a74932d0fbc2bcad4e7b7f2cff6f53ed (diff)
downloadgcc-16e0be9b8e67554b4c43b7bbd57978fb6e9f4611.zip
gcc-16e0be9b8e67554b4c43b7bbd57978fb6e9f4611.tar.gz
gcc-16e0be9b8e67554b4c43b7bbd57978fb6e9f4611.tar.bz2
re PR middle-end/52140 (Libdfp testcase encounters ICE when compiled with soft-dfp (no -mcpu).)
gcc/ PR middle-end/52140 * dojump.c (do_compare_rtx_and_jump): Use SCALAR_FLOAT_MODE_P. gcc/testsuite/ PR middle-end/52140 * gcc.dg/dfp/pr52140.c: New test. From-SVN: r184045
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/dojump.c4
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.dg/dfp/pr52140.c10
4 files changed, 22 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 07ae1a8..f3b7354 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2012-02-09 Peter Bergner <bergner@vnet.ibm.com>
+
+ PR middle-end/52140
+ * dojump.c (do_compare_rtx_and_jump): Use SCALAR_FLOAT_MODE_P.
+
2012-02-09 Jakub Jelinek <jakub@redhat.com>
PR debug/52165
diff --git a/gcc/dojump.c b/gcc/dojump.c
index 093d3ef..91bebee 100644
--- a/gcc/dojump.c
+++ b/gcc/dojump.c
@@ -1049,7 +1049,7 @@ do_compare_rtx_and_jump (rtx op0, rtx op1, enum rtx_code code, int unsignedp,
}
else
{
- if (GET_MODE_CLASS (mode) == MODE_FLOAT
+ if (SCALAR_FLOAT_MODE_P (mode)
&& ! can_compare_p (code, mode, ccp_jump)
&& can_compare_p (swap_condition (code), mode, ccp_jump))
{
@@ -1060,7 +1060,7 @@ do_compare_rtx_and_jump (rtx op0, rtx op1, enum rtx_code code, int unsignedp,
op1 = tmp;
}
- else if (GET_MODE_CLASS (mode) == MODE_FLOAT
+ else if (SCALAR_FLOAT_MODE_P (mode)
&& ! can_compare_p (code, mode, ccp_jump)
/* Never split ORDERED and UNORDERED. These must be implemented. */
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 5ec0695..7ccb66b 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2012-02-09 Peter Bergner <bergner@vnet.ibm.com>
+
+ PR middle-end/52140
+ * gcc.dg/dfp/pr52140.c: New test.
+
2012-02-09 Jakub Jelinek <jakub@redhat.com>
PR fortran/32380
diff --git a/gcc/testsuite/gcc.dg/dfp/pr52140.c b/gcc/testsuite/gcc.dg/dfp/pr52140.c
new file mode 100644
index 0000000..ca878f2
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/dfp/pr52140.c
@@ -0,0 +1,10 @@
+/* { dg-do compile } */
+/* { dg-options "-O1" } */
+
+/* This used to result in an ICE. */
+
+int
+foo (_Decimal64 x, _Decimal64 y)
+{
+ return (x < y) || (x > y);
+}