r252123 - in /branches/range-gen2/gcc: ChangeLo...
aldyh@gcc.gnu.org
aldyh@gcc.gnu.org
Wed Sep 13 15:53:00 GMT 2017
Author: aldyh
Date: Wed Sep 13 15:53:36 2017
New Revision: 252123
URL: https://gcc.gnu.org/viewcvs?rev=252123&root=gcc&view=rev
Log:
[PATCH][AArch64] Fix missing optimization for CMP+AND
During combine GCC tries to merge CMP (with zero) and AND into a TST. However,
in cases where an ANDS operand is not compatible, this was being missed. Adding
a define_split where this operand was moved to a register seems to help out.
Committed on behalf of Sudi Das
---
gcc/
2017-07-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
Sudakshina Das <sudi.das@arm.com>
* config/aarch64/aarch64.md
(define_split for and<mode>3nr_compare): Move
non aarch64_logical_operand to a register.
(define_split for and_<SHIFT:optab><mode>3nr_compare0): Move non
register immediate operand to a register.
* config/aarch64/predicates.md (aarch64_mov_imm_operand): New.
gcc/testsuite
2017-07-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
Sudakshina Das <sudi.das@arm.com>
* gcc.target/aarch64/tst_imm_split_1.c: New Test.
Added:
branches/range-gen2/gcc/testsuite/gcc.target/aarch64/tst_imm_split_1.c
Modified:
branches/range-gen2/gcc/ChangeLog
branches/range-gen2/gcc/config/aarch64/aarch64.md
branches/range-gen2/gcc/config/aarch64/predicates.md
branches/range-gen2/gcc/testsuite/ChangeLog
More information about the Gcc-cvs
mailing list