From: Matthew Gretton-Dann Date: Thu, 12 Jan 2012 14:45:00 +0000 (+0000) Subject: backport: arm.md (mov_notscc): Use MVN for false condition. X-Git-Tag: releases/gcc-4.6.3~181 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4adb04a26ec83a50f30590a556b45dbef381a5e4;p=thirdparty%2Fgcc.git backport: arm.md (mov_notscc): Use MVN for false condition. Backport from mainline 2012-01-11 Matthew Gretton-Dann * gcc/config/arm/arm.md (mov_notscc): Use MVN for false condition. * gcc/testsuite/testsuite/gcc.c-torture/execute/20120110-1.c: New testcase. From-SVN: r183127 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d18fb9dfb6ca..f31e6753ef35 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2012-01-12 Matthew Gretton-Dann + + Backport from mainline + 2012-01-11 Matthew Gretton-Dann + + * config/arm/arm.md (mov_notscc): Use MVN for false condition. + 2012-01-12 Uros Bizjak * config/i386/i386.md (*zero_extendsidi2_rex64): Correct movl template. diff --git a/gcc/config/arm/arm.md b/gcc/config/arm/arm.md index 794b865438c8..ddc7d12b89b0 100644 --- a/gcc/config/arm/arm.md +++ b/gcc/config/arm/arm.md @@ -7346,7 +7346,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 ef596d40b788..ad17dc25c5d6 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,10 @@ +2012-01-12 Matthew Gretton-Dann + + Backport from mainline: + 2012-01-11 Matthew Gretton-Dann + + * testsuite/gcc.c-torture/execute/20120110-1.c: New testcase. + 2012-01-10 Joseph Myers * 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 index 000000000000..eac086e3b51b --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/execute/20120111-1.c @@ -0,0 +1,18 @@ +#include +#include + +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; +}