diff options
author | Wilco Dijkstra <wdijkstr@arm.com> | 2019-09-18 19:52:09 +0000 |
---|---|---|
committer | Wilco Dijkstra <wilco@gcc.gnu.org> | 2019-09-18 19:52:09 +0000 |
commit | 1ea956609a5a4ac12841ef86353995bd434fa1ef (patch) | |
tree | 04a0a7e9b8668596a3050d3f99b2ce21094b21d6 /gcc/tree-parloops.c | |
parent | 7706f2f312a87b0c8509cccc986d6372dcd2fbcf (diff) | |
download | gcc-1ea956609a5a4ac12841ef86353995bd434fa1ef.zip gcc-1ea956609a5a4ac12841ef86353995bd434fa1ef.tar.gz gcc-1ea956609a5a4ac12841ef86353995bd434fa1ef.tar.bz2 |
[ARM] Add logical DImode expanders
We currently use default mid-end expanders for logical DImode operations.
These split operations without first splitting off complex immediates or
memory operands. The resulting expansions are non-optimal and allow for
fewer LDRD/STRD opportunities. So add back explicit expanders which ensure
memory operands and immediates are handled more efficiently.
gcc/
PR target/91738
* config/arm/arm.md (<logical_op>di3): Expand explicitly.
(one_cmpldi2): Likewise.
* config/arm/arm.c (const_ok_for_dimode_op): Return true if one
of the constant parts is simple.
* config/arm/iterators.md (LOGICAL): Add new code iterator.
(logical_op): Add new code attribute.
(logical_OP): Likewise.
* config/arm/predicates.md (arm_anddi_operand): Add predicate.
(arm_iordi_operand): Add predicate.
(arm_xordi_operand): Add predicate.
From-SVN: r275907
Diffstat (limited to 'gcc/tree-parloops.c')
0 files changed, 0 insertions, 0 deletions