diff options
author | Peter Bergner <bergner@vnet.ibm.com> | 2012-02-09 08:46:02 -0600 |
---|---|---|
committer | Peter Bergner <bergner@gcc.gnu.org> | 2012-02-09 08:46:02 -0600 |
commit | 16e0be9b8e67554b4c43b7bbd57978fb6e9f4611 (patch) | |
tree | 45e7ac905893bbbb095d8c1c1ed439710e5aaece | |
parent | 732b7729a74932d0fbc2bcad4e7b7f2cff6f53ed (diff) | |
download | gcc-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/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/dojump.c | 4 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/dfp/pr52140.c | 10 |
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); +} |