S/390: Get rid of Y constraint in rotate patterns.
commit6191f2a0a9178047100b5b3977a473d62ea9f845
authorkrebbel <krebbel@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 1 Mar 2016 09:21:23 +0000 (1 09:21 +0000)
committerkrebbel <krebbel@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 1 Mar 2016 09:21:23 +0000 (1 09:21 +0000)
tree7e280c310a8ce6431854ec7979908ba61c019e32
parente84de992c1616aa1fb534ce3b9931e9313eb19d5
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@233843 138bc75d-0d04-0410-961f-82ee72b054a4
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]