re PR target/53447 (missed optimization of 64bit ALU operation with small constant)
authorWei Guozhi <carrot@google.com>
Sun, 1 Jul 2012 15:14:52 +0000 (15:14 +0000)
committerWei Guozhi <carrot@gcc.gnu.org>
Sun, 1 Jul 2012 15:14:52 +0000 (15:14 +0000)
commit44cd68100302ffa5288b9c8bc7a54f8d337f4aa6
treeae6d3e858f90da47724dbd2d1e12e8356d7df9d4
parent9faeb49326953e7f0f8ec1d36d5ae76091babba9
re PR target/53447 (missed optimization of 64bit ALU operation with small constant)

PR target/53447
* config/arm/arm-protos.h (const_ok_for_dimode_op): New prototype.
* config/arm/arm.c (const_ok_for_dimode_op): New function.
* config/arm/constraints.md (Dd): New constraint.
* config/arm/predicates.md (arm_adddi_operand): New predicate.
* config/arm/arm.md (adddi3): Extend it to handle constants.
(arm_adddi3): Likewise.
(addsi3_carryin_<optab>): Extend it to handle sbc case.
(addsi3_carryin_alt2_<optab>): Likewise.
* config/arm/neon.md (adddi3_neon): Extend it to handle constants.

* gcc.target/arm/pr53447-1.c: New testcase.
* gcc.target/arm/pr53447-2.c: New testcase.
* gcc.target/arm/pr53447-3.c: New testcase.
* gcc.target/arm/pr53447-4.c: New testcase.

From-SVN: r189102
12 files changed:
gcc/ChangeLog
gcc/config/arm/arm-protos.h
gcc/config/arm/arm.c
gcc/config/arm/arm.md
gcc/config/arm/constraints.md
gcc/config/arm/neon.md
gcc/config/arm/predicates.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/arm/pr53447-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/arm/pr53447-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/arm/pr53447-3.c [new file with mode: 0644]
gcc/testsuite/gcc.target/arm/pr53447-4.c [new file with mode: 0644]