here is an updated version of the shift count rework in the S/390 backend. Bootstrapped and regtested on s390 and s390x --with-arch=z196,zEC12,z13
Changes: - Merge the address reg and immediate alternatives as suggested in: https://gcc.gnu.org/ml/gcc-patches/2016-02/msg01744.html - Add constraints (jm6 and jm8) equivalent to the const_int_6bitset_operand and const_int_8bitset_operand predicates. 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/constraints.md | 9 + gcc/config/s390/predicates.md | 10 + gcc/config/s390/s390.c | 31 ++- gcc/config/s390/s390.md | 530 ++++++++++++++--------------------------- gcc/config/s390/subst.md | 147 ++++++++++++ gcc/config/s390/vector.md | 127 +++++----- gcc/gensupport.c | 45 ++-- 7 files changed, 453 insertions(+), 446 deletions(-) create mode 100644 gcc/config/s390/subst.md -- 1.9.1