2005-05-10 Adrian Straetling <straetling@de.ibm.com>
authoruweigand <uweigand@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 10 May 2005 19:22:05 +0000 (19:22 +0000)
committeruweigand <uweigand@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 10 May 2005 19:22:05 +0000 (19:22 +0000)
* config/s390/s390.md: ("anddi3","andsi3","andhi3","andqi3"): Merge.
("iordi3", "iorsi3", "iorhi3", "iorqi3"): Merge.
("xordi3", "xorsi3", "xorhi3", "xorqi3"): Merge.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@99537 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/s390/s390.md

index f6825db..981eda9 100644 (file)
@@ -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
index 7c6e821..a74bd63 100644 (file)
 ;;- 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).
 ;
      (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).
      (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).
 ;
      (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).
 ;
    #"
   [(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.
 ;
 ;;- 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).
 ;
      (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).
 ;
      (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).
 ;
      (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).
 ;
    #"
   [(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.
 ;
 ;;- 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).
 ;
      (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).
 ;
      (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).
 ;
      (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).
 ;
    #"
   [(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.
 ;