From: Peter Bergner Date: Thu, 9 Feb 2012 14:59:46 +0000 (-0600) Subject: backport: re PR middle-end/52140 (Libdfp testcase encounters ICE when compiled with... X-Git-Tag: releases/gcc-4.5.4~233 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=87ccdf08a40b32fef24ccf8f052a555c2a35fe49;p=thirdparty%2Fgcc.git backport: re PR middle-end/52140 (Libdfp testcase encounters ICE when compiled with soft-dfp (no -mcpu).) Backport from mainline 2012-02-09 Peter Bergner 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: r184047 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c6e8d9fb03ea..71004dbb61dc 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2012-02-09 Peter Bergner + + Backport from mainline + 2012-02-09 Peter Bergner + + PR middle-end/52140 + * dojump.c (do_compare_rtx_and_jump): Use SCALAR_FLOAT_MODE_P. + 2012-02-09 Andrey Belevantsev Backport from mainline diff --git a/gcc/dojump.c b/gcc/dojump.c index c2ee427d7ac6..28e894bb9277 100644 --- a/gcc/dojump.c +++ b/gcc/dojump.c @@ -1022,7 +1022,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)) { @@ -1033,7 +1033,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 b3fea1f8050f..067b36a951b8 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,11 @@ +2012-02-09 Peter Bergner + + Backport from mainline + 2012-02-09 Peter Bergner + + PR middle-end/52140 + * gcc.dg/dfp/pr52140.c: New test. + 2012-02-09 Andrey Belevantsev Backport from mainline diff --git a/gcc/testsuite/gcc.dg/dfp/pr52140.c b/gcc/testsuite/gcc.dg/dfp/pr52140.c new file mode 100644 index 000000000000..ca878f2d87da --- /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); +}