]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
backport: arm.md (mov_notscc): Use MVN for false condition.
authorMatthew Gretton-Dann <matthew.gretton-dann@arm.com>
Thu, 12 Jan 2012 15:18:24 +0000 (15:18 +0000)
committerMatthew Gretton-Dann <mgretton@gcc.gnu.org>
Thu, 12 Jan 2012 15:18:24 +0000 (15:18 +0000)
Backport from mainline:
2012-01-11  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>

* 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: r183128

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 bb6cb416454663cc998592ab0fca9186189c0630..4c52caf14455552bcef713f839f4e308b7c9a06d 100644 (file)
@@ -1,3 +1,10 @@
+2012-01-12  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
+
+       Backport from mainline:
+       2012-01-11  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
+
+       * config/arm/arm.md (mov_notscc): Use MVN for false condition.
+
 2012-01-10  Joseph Myers  <joseph@codesourcery.com>
 
        Revert:
index 032af3036edf96dd30869cdfbdf0a40731b886f7..522e9848ab4fa36e14a31cf1c60f3b8c97ba2c2d 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 "length" "8")]
 )
index 9cf5911482ec288e2906a73844cbfebb368fa57a..9fb2ffadf735dfca77cc45a73dfbebbc672b3e33 100644 (file)
@@ -1,3 +1,10 @@
+2012-01-12  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
+
+       Backport from mainline:
+       2011-01-11  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
+
+       * gcc.c-torture/execute/20120110-1.c: New testcase.
+
 2012-01-10  Joseph Myers  <joseph@codesourcery.com>
 
        * gcc.c-torture/execute/doloop-1.c,
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;
+}