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
This commit is contained in:
Matthew Gretton-Dann 2012-01-11 16:14:14 +00:00 committed by Matthew Gretton-Dann
parent 4dec0a42c3
commit 9150e331a8
4 changed files with 27 additions and 1 deletions

View 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.

View File

@ -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")]

View 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

View File

@ -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;
}