re PR target/63947 (Wrong fcmov suffix)
authorUros Bizjak <uros@gcc.gnu.org>
Wed, 19 Nov 2014 20:38:59 +0000 (21:38 +0100)
committerUros Bizjak <uros@gcc.gnu.org>
Wed, 19 Nov 2014 20:38:59 +0000 (21:38 +0100)
PR target/63947
* config/i386/i386.c (put_condition_code) <case LTU, case GEU>:
Output "b" and "nb" suffix for FP mode.

testsuite/ChangeLog:

PR target/63947
* gcc.target/i386/pr63947.c: New test.

From-SVN: r217810

gcc/ChangeLog
gcc/config/i386/i386.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/pr63947.c [new file with mode: 0644]

index 6c888f6c7cbef9da32e9f5de0d63262c72980754..c8e18f64167db9d0ab097b8dc9386f660c0baf65 100644 (file)
@@ -1,3 +1,9 @@
+2014-11-19  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR target/63947
+       * config/i386/i386.c (put_condition_code) <case LTU, case GEU>:
+       Output "b" and "nb" suffix for FP mode.
+
 2014-11-19  Jan Hubicka  <hubicka@ucw.cz>
 
        PR bootstrap/63963
 
 2014-11-19  Renlin Li  <Renlin.Li@arm.com>
 
-    PR target/63424
+       PR target/63424
        * config/aarch64/aarch64-simd.md (<su><maxmin>v2di3): New.
 
 2014-11-19  Renlin Li  <Renlin.Li@arm.com>
 
-    PR middle-end/63762
+       PR middle-end/63762
        * ira.c (ira): Update preferred class.
 
 2014-11-19  Jakub Jelinek  <jakub@redhat.com>
index 7f4e2cc0697ce305f56fe5717135f8a076db14d6..fffddfc7311fe5034920a19f3e96dd882cf58173 100644 (file)
@@ -14953,7 +14953,7 @@ put_condition_code (enum rtx_code code, machine_mode mode, bool reverse,
       if (mode == CCmode)
        suffix = "b";
       else if (mode == CCCmode)
-       suffix = "c";
+       suffix = fp ? "b" : "c";
       else
        gcc_unreachable ();
       break;
@@ -14976,9 +14976,9 @@ put_condition_code (enum rtx_code code, machine_mode mode, bool reverse,
       break;
     case GEU:
       if (mode == CCmode)
-       suffix = fp ? "nb" : "ae";
+       suffix = "nb";
       else if (mode == CCCmode)
-       suffix = "nc";
+       suffix = fp ? "nb" : "nc";
       else
        gcc_unreachable ();
       break;
index 3a2dbf7c86a5c4213feccd812e20d9e4fe948916..bc1435584fc56cc9dd364dfd84b1bbc5312804f1 100644 (file)
@@ -1,7 +1,12 @@
+2014-11-19  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR target/63947
+       * gcc.target/i386/pr63947.c: New test.
+
 2014-11-19  Paolo Carlini  <paolo.carlini@oracle.com>
 
        PR c++/55425
-       * g++.dg/cpp0x/constexpr-__func__.C
+       * g++.dg/cpp0x/constexpr-__func__.C: New.
 
 2014-11-19  Renlin Li  <Renlin.Li@arm.com>
 
diff --git a/gcc/testsuite/gcc.target/i386/pr63947.c b/gcc/testsuite/gcc.target/i386/pr63947.c
new file mode 100644 (file)
index 0000000..3c0a67a
--- /dev/null
@@ -0,0 +1,9 @@
+/* PR target/63947 */
+/* { dg-do assemble } */
+/* { dg-options "-Os" } */
+/* { dg-additional-options "-march=i686" { target ia32 } } */
+
+long double foo (unsigned a, unsigned b)
+{
+  return a + b < a;
+}