S/390: Get rid of Y constraint in rotate patterns.
authorAndreas Krebbel <krebbel@linux.vnet.ibm.com>
Tue, 1 Mar 2016 09:21:23 +0000 (09:21 +0000)
committerAndreas Krebbel <krebbel@gcc.gnu.org>
Tue, 1 Mar 2016 09:21:23 +0000 (09:21 +0000)
commit191eb16d3adfc397f63d63c2bafa9be187f9f054
tree7e280c310a8ce6431854ec7979908ba61c019e32
parent62d3f2615c6b22bf424ad17675d47b146d0dcfaa
S/390: Get rid of Y constraint in rotate patterns.

This patch introduces substitution patterns to add PLUS const_int, and
AND operands to patterns and uses this to rewrite the existing rotate
pattern.

gcc/ChangeLog:

2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* config/s390/predicates.md (const_int_6bitset_operand): New
        predicates.
* config/s390/s390.md: Include subst.md.
("rotl<mode>3"): New expander.
("rotl<mode>3", "*rotl<mode>3_and"): Merge insn definitions into
...
("*rotl<mode>3<addr_style_op><masked_op>"): New insn definition.
* config/s390/subst.md: New file.

From-SVN: r233843
gcc/ChangeLog
gcc/config/s390/constraints.md
gcc/config/s390/predicates.md
gcc/config/s390/s390.c
gcc/config/s390/s390.md
gcc/config/s390/subst.md [new file with mode: 0644]