arm.md (mov_notscc): Use MVN for false condition.
authorMatthew Gretton-Dann <matthew.gretton-dann@arm.com>
Wed, 11 Jan 2012 16:14:14 +0000 (16:14 +0000)
committerMatthew Gretton-Dann <mgretton@gcc.gnu.org>
Wed, 11 Jan 2012 16:14:14 +0000 (16:14 +0000)
* gcc/config/arm/arm.md (mov_notscc): Use MVN for false condition.
* gcc/testsuite/gcc.c-torture/execute/20120110-1.c: New testcase.

From-SVN: r183095

gcc/ChangeLog
gcc/config/arm/arm.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.c-torture/execute/20120111-1.c [new file with mode: 0644]

index 54063373aecb6d46d97b8951e674043215a8be58..5df5bccdb8150452bac287c26fafbc4e727928ee 100644 (file)
@@ -1,3 +1,7 @@
+2012-01-11  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
+
+       * config/arm/arm.md (mov_notscc): Use MVN for false condition.
+
 2012-01-11  Nick Clifton  <nickc@redhat.com>
 
        * config/rx/rx.md (return): Define pattern.
index 0e4bc3e50a1733ae27947c32809f2ebf770cb353..5620d7da34f6a771fb657fa0cc435510ee8da835 100644 (file)
        (not:SI (match_operator:SI 1 "arm_comparison_operator"
                 [(match_operand 2 "cc_register" "") (const_int 0)])))]
   "TARGET_ARM"
-  "mov%D1\\t%0, #0\;mvn%d1\\t%0, #1"
+  "mvn%D1\\t%0, #0\;mvn%d1\\t%0, #1"
   [(set_attr "conds" "use")
    (set_attr "insn" "mov")
    (set_attr "length" "8")]
index f41975cfa2e9b0177732f0fc5a65f1397a7bba9c..4fafc8a458569c3253d8483754cfb82bff73ca6b 100644 (file)
@@ -1,3 +1,7 @@
+2012-01-11  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
+
+       * gcc.c-torture/execute/20120110-1.c: New testcase.
+
 2012-01-10  Jason Merrill  <jason@redhat.com>
 
        PR c++/51614
diff --git a/gcc/testsuite/gcc.c-torture/execute/20120111-1.c b/gcc/testsuite/gcc.c-torture/execute/20120111-1.c
new file mode 100644 (file)
index 0000000..eac086e
--- /dev/null
@@ -0,0 +1,18 @@
+#include <stdlib.h>
+#include <stdint.h>
+
+uint32_t f0a (uint64_t arg2) __attribute__((noinline));
+
+uint32_t
+f0a (uint64_t arg)
+{
+  return ~(arg > -3);
+}
+
+int main() {
+  uint32_t r1;
+  r1 = f0a (12094370573988097329ULL);
+  if (r1 != ~0U)
+    abort ();
+  return 0;
+}