aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMatthew Gretton-Dann <matthew.gretton-dann@arm.com>2012-01-11 16:14:14 +0000
committerMatthew Gretton-Dann <mgretton@gcc.gnu.org>2012-01-11 16:14:14 +0000
commit9150e331a8fe179755e4e11fd7562058dece6d64 (patch)
treead9813c696f32bd924d14a4950c0158435506be8 /gcc
parent4dec0a42c32ae918ed6c727e6c9ea4399676e7aa (diff)
downloadgcc-9150e331a8fe179755e4e11fd7562058dece6d64.zip
gcc-9150e331a8fe179755e4e11fd7562058dece6d64.tar.gz
gcc-9150e331a8fe179755e4e11fd7562058dece6d64.tar.bz2
arm.md (mov_notscc): Use MVN for false condition.
* 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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/config/arm/arm.md2
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/20120111-1.c18
4 files changed, 27 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 5406337..5df5bcc 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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.
diff --git a/gcc/config/arm/arm.md b/gcc/config/arm/arm.md
index 0e4bc3e..5620d7d 100644
--- a/gcc/config/arm/arm.md
+++ b/gcc/config/arm/arm.md
@@ -7726,7 +7726,7 @@
(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")]
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index f41975c..4fafc8a 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -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
index 0000000..eac086e
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/20120111-1.c
@@ -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;
+}