aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/s390/constraints.md
diff options
context:
space:
mode:
authorAndreas Krebbel <krebbel@linux.vnet.ibm.com>2016-03-01 09:21:23 +0000
committerAndreas Krebbel <krebbel@gcc.gnu.org>2016-03-01 09:21:23 +0000
commit191eb16d3adfc397f63d63c2bafa9be187f9f054 (patch)
tree7e280c310a8ce6431854ec7979908ba61c019e32 /gcc/config/s390/constraints.md
parent62d3f2615c6b22bf424ad17675d47b146d0dcfaa (diff)
downloadgcc-191eb16d3adfc397f63d63c2bafa9be187f9f054.zip
gcc-191eb16d3adfc397f63d63c2bafa9be187f9f054.tar.gz
gcc-191eb16d3adfc397f63d63c2bafa9be187f9f054.tar.bz2
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
Diffstat (limited to 'gcc/config/s390/constraints.md')
-rw-r--r--gcc/config/s390/constraints.md4
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/config/s390/constraints.md b/gcc/config/s390/constraints.md
index c1d2c8e..60a7edf 100644
--- a/gcc/config/s390/constraints.md
+++ b/gcc/config/s390/constraints.md
@@ -36,6 +36,7 @@
;; jyy: constant consisting of byte chunks being either 0 or 0xff
;; jKK: constant vector with all elements having the same value and
;; matching K constraint
+;; jm6: An integer operand with the lowest order 6 bits all ones.
;; t -- Access registers 36 and 37.
;; v -- Vector registers v0-v31.
;; C -- A signed 8-bit constant (-128..127)
@@ -415,6 +416,9 @@
(match_test "const_vec_duplicate_p (op)"))
(match_test "satisfies_constraint_K (XVECEXP (op, 0, 0))")))
+(define_constraint "jm6"
+ "@internal An integer operand with the lowest order 6 bits all ones."
+ (match_operand 0 "const_int_6bitset_operand"))
;;
;; Memory constraints follow.