Hello!

Inverted condition is generated with =@ccae.

2015-10-25  Uros Bizjak  <ubiz...@gmail.com>

    PR target/68084
    * config/i386/i386.c (ix86_md_asm_adjust) [case 'a']: Use NE code
    for =@ccae.

testsuite/ChangeLog:

2015-10-25  Uros Bizjak  <ubiz...@gmail.com>

    PR target/68084
    * gcc.target/i386/pr68084.c: New test.

Bootstrapped and regression tested on x86_64-linux {,-m32}, committed
to mainline SVN.

Uros.
Index: config/i386/i386.c
===================================================================
--- config/i386/i386.c  (revision 229293)
+++ config/i386/i386.c  (working copy)
@@ -46934,7 +46934,7 @@ ix86_md_asm_adjust (vec<rtx> &outputs, vec<rtx> &/
          if (con[1] == 0)
            mode = CCAmode, code = EQ;
          else if (con[1] == 'e' && con[2] == 0)
-           mode = CCCmode, code = EQ;
+           mode = CCCmode, code = NE;
          break;
        case 'b':
          if (con[1] == 0)
Index: testsuite/gcc.target/i386/pr68084.c
===================================================================
--- testsuite/gcc.target/i386/pr68084.c (revision 0)
+++ testsuite/gcc.target/i386/pr68084.c (working copy)
@@ -0,0 +1,16 @@
+/* { dg-do compile } */
+/* { dg-options "-O" } */
+
+int x;
+
+void foo (void)
+{
+  char r;
+
+  asm ("" : "=@ccae"(r));
+
+  if (!r)
+    x = 0;
+}
+
+/* { dg-final { scan-assembler "jnc" } } */

Reply via email to