S/390: Get rid of Y constraint in left and logical right
authorAndreas Krebbel <krebbel@linux.vnet.ibm.com>
Tue, 1 Mar 2016 09:22:20 +0000 (09:22 +0000)
committerAndreas Krebbel <krebbel@gcc.gnu.org>
Tue, 1 Mar 2016 09:22:20 +0000 (09:22 +0000)
commitadf22b3f5a9b826192c4582c897e9b8c8b4ff37a
tree0eca7195ce47363e0394da08d683d4094333c799
parent191eb16d3adfc397f63d63c2bafa9be187f9f054
S/390: Get rid of Y constraint in left and logical right
 shift patterns.

With this patch the substitution patterns added earlier are used for
the logical right shift and all the left shift patterns.

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

* config/s390/s390.md ("<shift><mode>3"): Change predicate of
op2 to nonmemory_operand.
("*<shift>di3_31", "*<shift>di3_31_and"):
Merge into single pattern definition ...
("*<shift>di3_31<addr_style_op><masked_op>"): New pattern.
("*<shift><mode>3", "*<shift><mode>3_and"): Merge into single
pattern definition ...
("*<shift><mode>3<addr_style_op><masked_op>"): New pattern.
* config/s390/subst.md: Add ashift and lshiftrt to SUBST
iterator.

From-SVN: r233844
gcc/ChangeLog
gcc/config/s390/s390.md
gcc/config/s390/subst.md