aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdrian Straetling <straetling@de.ibm.com>2005-05-10 19:22:05 +0000
committerUlrich Weigand <uweigand@gcc.gnu.org>2005-05-10 19:22:05 +0000
commit047d35ed58e1d41b2b2f9850fbcc16601fd2e50e (patch)
tree2d9c827d637ab3a483ee5c21c85b126f4159fd26
parent5fefbc7977471f39a91cc1d6a6146a5c0efd273d (diff)
downloadgcc-047d35ed58e1d41b2b2f9850fbcc16601fd2e50e.zip
gcc-047d35ed58e1d41b2b2f9850fbcc16601fd2e50e.tar.gz
gcc-047d35ed58e1d41b2b2f9850fbcc16601fd2e50e.tar.bz2
s390.md: ("anddi3","andsi3","andhi3","andqi3"): Merge.
2005-05-10 Adrian Straetling <straetling@de.ibm.com> * config/s390/s390.md: ("anddi3","andsi3","andhi3","andqi3"): Merge. ("iordi3", "iorsi3", "iorhi3", "iorqi3"): Merge. ("xordi3", "xorsi3", "xorhi3", "xorqi3"): Merge. From-SVN: r99537
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/s390/s390.md119
2 files changed, 30 insertions, 95 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index f6825db..981eda9 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2005-05-10 Adrian Straetling <straetling@de.ibm.com>
+
+ * config/s390/s390.md: ("anddi3","andsi3","andhi3","andqi3"): Merge.
+ ("iordi3", "iorsi3", "iorhi3", "iorqi3"): Merge.
+ ("xordi3", "xorsi3", "xorhi3", "xorqi3"): Merge.
+
2005-05-10 Jeff Law <law@redhat.com>
* tree-ssa-dom.c (dom_opt_finalize_block): Do not call
diff --git a/gcc/config/s390/s390.md b/gcc/config/s390/s390.md
index 7c6e821..a74bd63 100644
--- a/gcc/config/s390/s390.md
+++ b/gcc/config/s390/s390.md
@@ -4572,6 +4572,14 @@
;;- And instructions.
;;
+(define_expand "and<mode>3"
+ [(set (match_operand:INT 0 "nonimmediate_operand" "")
+ (and:INT (match_operand:INT 1 "nonimmediate_operand" "")
+ (match_operand:INT 2 "general_operand" "")))
+ (clobber (reg:CC CC_REGNUM))]
+ ""
+ "s390_expand_logical_operator (AND, <MODE>mode, operands); DONE;")
+
;
; anddi3 instruction pattern(s).
;
@@ -4634,13 +4642,6 @@
(clobber (reg:CC CC_REGNUM))])]
"s390_narrow_logical_operator (AND, &operands[0], &operands[1]);")
-(define_expand "anddi3"
- [(set (match_operand:DI 0 "nonimmediate_operand" "")
- (and:DI (match_operand:DI 1 "nonimmediate_operand" "")
- (match_operand:DI 2 "general_operand" "")))
- (clobber (reg:CC CC_REGNUM))]
- "TARGET_64BIT"
- "s390_expand_logical_operator (AND, DImode, operands); DONE;")
;
; andsi3 instruction pattern(s).
@@ -4718,14 +4719,6 @@
(clobber (reg:CC CC_REGNUM))])]
"s390_narrow_logical_operator (AND, &operands[0], &operands[1]);")
-(define_expand "andsi3"
- [(set (match_operand:SI 0 "nonimmediate_operand" "")
- (and:SI (match_operand:SI 1 "nonimmediate_operand" "")
- (match_operand:SI 2 "general_operand" "")))
- (clobber (reg:CC CC_REGNUM))]
- ""
- "s390_expand_logical_operator (AND, SImode, operands); DONE;")
-
;
; andhi3 instruction pattern(s).
;
@@ -4765,14 +4758,6 @@
(clobber (reg:CC CC_REGNUM))])]
"s390_narrow_logical_operator (AND, &operands[0], &operands[1]);")
-(define_expand "andhi3"
- [(set (match_operand:HI 0 "nonimmediate_operand" "")
- (and:HI (match_operand:HI 1 "nonimmediate_operand" "")
- (match_operand:HI 2 "general_operand" "")))
- (clobber (reg:CC CC_REGNUM))]
- ""
- "s390_expand_logical_operator (AND, HImode, operands); DONE;")
-
;
; andqi3 instruction pattern(s).
;
@@ -4803,14 +4788,6 @@
#"
[(set_attr "op_type" "RR,SI,SS")])
-(define_expand "andqi3"
- [(set (match_operand:QI 0 "nonimmediate_operand" "")
- (and:QI (match_operand:QI 1 "nonimmediate_operand" "")
- (match_operand:QI 2 "general_operand" "")))
- (clobber (reg:CC CC_REGNUM))]
- ""
- "s390_expand_logical_operator (AND, QImode, operands); DONE;")
-
;
; Block and (NC) patterns.
;
@@ -4872,6 +4849,14 @@
;;- Bit set (inclusive or) instructions.
;;
+(define_expand "ior<mode>3"
+ [(set (match_operand:INT 0 "nonimmediate_operand" "")
+ (ior:INT (match_operand:INT 1 "nonimmediate_operand" "")
+ (match_operand:INT 2 "general_operand" "")))
+ (clobber (reg:CC CC_REGNUM))]
+ ""
+ "s390_expand_logical_operator (IOR, <MODE>mode, operands); DONE;")
+
;
; iordi3 instruction pattern(s).
;
@@ -4929,14 +4914,6 @@
(clobber (reg:CC CC_REGNUM))])]
"s390_narrow_logical_operator (IOR, &operands[0], &operands[1]);")
-(define_expand "iordi3"
- [(set (match_operand:DI 0 "nonimmediate_operand" "")
- (ior:DI (match_operand:DI 1 "nonimmediate_operand" "")
- (match_operand:DI 2 "general_operand" "")))
- (clobber (reg:CC CC_REGNUM))]
- "TARGET_64BIT"
- "s390_expand_logical_operator (IOR, DImode, operands); DONE;")
-
;
; iorsi3 instruction pattern(s).
;
@@ -5007,14 +4984,6 @@
(clobber (reg:CC CC_REGNUM))])]
"s390_narrow_logical_operator (IOR, &operands[0], &operands[1]);")
-(define_expand "iorsi3"
- [(set (match_operand:SI 0 "nonimmediate_operand" "")
- (ior:SI (match_operand:SI 1 "nonimmediate_operand" "")
- (match_operand:SI 2 "general_operand" "")))
- (clobber (reg:CC CC_REGNUM))]
- ""
- "s390_expand_logical_operator (IOR, SImode, operands); DONE;")
-
;
; iorhi3 instruction pattern(s).
;
@@ -5054,14 +5023,6 @@
(clobber (reg:CC CC_REGNUM))])]
"s390_narrow_logical_operator (IOR, &operands[0], &operands[1]);")
-(define_expand "iorhi3"
- [(set (match_operand:HI 0 "nonimmediate_operand" "")
- (ior:HI (match_operand:HI 1 "nonimmediate_operand" "")
- (match_operand:HI 2 "general_operand" "")))
- (clobber (reg:CC CC_REGNUM))]
- ""
- "s390_expand_logical_operator (IOR, HImode, operands); DONE;")
-
;
; iorqi3 instruction pattern(s).
;
@@ -5092,14 +5053,6 @@
#"
[(set_attr "op_type" "RR,SI,SS")])
-(define_expand "iorqi3"
- [(set (match_operand:QI 0 "nonimmediate_operand" "")
- (ior:QI (match_operand:QI 1 "nonimmediate_operand" "")
- (match_operand:QI 2 "general_operand" "")))
- (clobber (reg:CC CC_REGNUM))]
- ""
- "s390_expand_logical_operator (IOR, QImode, operands); DONE;")
-
;
; Block inclusive or (OC) patterns.
;
@@ -5161,6 +5114,14 @@
;;- Xor instructions.
;;
+(define_expand "xor<mode>3"
+ [(set (match_operand:INT 0 "nonimmediate_operand" "")
+ (xor:INT (match_operand:INT 1 "nonimmediate_operand" "")
+ (match_operand:INT 2 "general_operand" "")))
+ (clobber (reg:CC CC_REGNUM))]
+ ""
+ "s390_expand_logical_operator (XOR, <MODE>mode, operands); DONE;")
+
;
; xordi3 instruction pattern(s).
;
@@ -5213,14 +5174,6 @@
(clobber (reg:CC CC_REGNUM))])]
"s390_narrow_logical_operator (XOR, &operands[0], &operands[1]);")
-(define_expand "xordi3"
- [(set (match_operand:DI 0 "nonimmediate_operand" "")
- (xor:DI (match_operand:DI 1 "nonimmediate_operand" "")
- (match_operand:DI 2 "general_operand" "")))
- (clobber (reg:CC CC_REGNUM))]
- "TARGET_64BIT"
- "s390_expand_logical_operator (XOR, DImode, operands); DONE;")
-
;
; xorsi3 instruction pattern(s).
;
@@ -5276,14 +5229,6 @@
(clobber (reg:CC CC_REGNUM))])]
"s390_narrow_logical_operator (XOR, &operands[0], &operands[1]);")
-(define_expand "xorsi3"
- [(set (match_operand:SI 0 "nonimmediate_operand" "")
- (xor:SI (match_operand:SI 1 "nonimmediate_operand" "")
- (match_operand:SI 2 "general_operand" "")))
- (clobber (reg:CC CC_REGNUM))]
- ""
- "s390_expand_logical_operator (XOR, SImode, operands); DONE;")
-
;
; xorhi3 instruction pattern(s).
;
@@ -5310,14 +5255,6 @@
(clobber (reg:CC CC_REGNUM))])]
"s390_narrow_logical_operator (XOR, &operands[0], &operands[1]);")
-(define_expand "xorhi3"
- [(set (match_operand:HI 0 "nonimmediate_operand" "")
- (xor:HI (match_operand:HI 1 "nonimmediate_operand" "")
- (match_operand:HI 2 "general_operand" "")))
- (clobber (reg:CC CC_REGNUM))]
- ""
- "s390_expand_logical_operator (XOR, HImode, operands); DONE;")
-
;
; xorqi3 instruction pattern(s).
;
@@ -5335,14 +5272,6 @@
#"
[(set_attr "op_type" "RR,SI,SIY,SS")])
-(define_expand "xorqi3"
- [(set (match_operand:QI 0 "nonimmediate_operand" "")
- (xor:QI (match_operand:QI 1 "nonimmediate_operand" "")
- (match_operand:QI 2 "general_operand" "")))
- (clobber (reg:CC CC_REGNUM))]
- ""
- "s390_expand_logical_operator (XOR, QImode, operands); DONE;")
-
;
; Block exclusive or (XC) patterns.
;