]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR middle-end/52140 (Libdfp testcase encounters ICE when compiled with soft-dfp...
authorPeter Bergner <bergner@vnet.ibm.com>
Thu, 9 Feb 2012 14:46:02 +0000 (08:46 -0600)
committerPeter Bergner <bergner@gcc.gnu.org>
Thu, 9 Feb 2012 14:46:02 +0000 (08:46 -0600)
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

gcc/ChangeLog
gcc/dojump.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/dfp/pr52140.c [new file with mode: 0644]

index 07ae1a8a31b177d0b428241eac7491748c1e9cf5..f3b735476f9ed2fdec04cf477a73525c1918ff26 100644 (file)
@@ -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
index 093d3ef2d6d16078cb7cbc27b9d48678c5bc3818..91bebee1400b823edb160a2ff6f5b70a960f1b1a 100644 (file)
@@ -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.  */
index 5ec0695b021ce7b34a26c7ee7295bbbe76f9ff50..7ccb66b126227e90648be09436228ad239a5e4fc 100644 (file)
@@ -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 (file)
index 0000000..ca878f2
--- /dev/null
@@ -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);
+}