diff options
author | Matthew Gretton-Dann <matthew.gretton-dann@arm.com> | 2012-01-11 16:14:14 +0000 |
---|---|---|
committer | Matthew Gretton-Dann <mgretton@gcc.gnu.org> | 2012-01-11 16:14:14 +0000 |
commit | 9150e331a8fe179755e4e11fd7562058dece6d64 (patch) | |
tree | ad9813c696f32bd924d14a4950c0158435506be8 /gcc | |
parent | 4dec0a42c32ae918ed6c727e6c9ea4399676e7aa (diff) | |
download | gcc-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/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/config/arm/arm.md | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/gcc.c-torture/execute/20120111-1.c | 18 |
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; +} |