This is an updated version of the shift count rework in the S/390 backend. I think I've addressed most of the feedback from Ulrich and Bernd (gensupport patch).
https://gcc.gnu.org/ml/gcc-patches/2016-01/msg00940.html Andreas Krebbel (9): gensupport: Fix define_subst operand renumbering. S/390: Use enabled attribute overrides to disable alternatives. S/390: Get rid of Y constraint in rotate patterns. S/390: Get rid of Y constraint in left and logical right shift patterns. S/390: Get rid of Y constraint in arithmetic right shift patterns. S/390: Get rid of Y constraint in tabort. S/390: Get rid of Y constraint in vector.md. S/390: Use define_subst for the setmem patterns. S/390: Disallow SImode in s390_decompose_address gcc/config/s390/predicates.md | 10 + gcc/config/s390/s390.c | 31 ++- gcc/config/s390/s390.md | 553 +++++++++++++++--------------------------- gcc/config/s390/subst.md | 154 ++++++++++++ gcc/config/s390/vector.md | 138 ++++++----- gcc/gensupport.c | 45 ++-- 6 files changed, 478 insertions(+), 453 deletions(-) create mode 100644 gcc/config/s390/subst.md -- 1.9.1