]> gcc.gnu.org Git - gcc.git/commitdiff
s390.md ("*tstdi_extimm", [...]): Merge.
authorAdrian Straetling <straetling@de.ibm.com>
Wed, 14 Dec 2005 16:11:14 +0000 (16:11 +0000)
committerUlrich Weigand <uweigand@gcc.gnu.org>
Wed, 14 Dec 2005 16:11:14 +0000 (16:11 +0000)
2005-12-14  Adrian Straetling  <straetling@de.ibm.com>

* config/s390/s390.md ("*tstdi_extimm", "*tstsi_extimm"): Merge.
("*tstdi_cconly_extimm", "*tstsi_cconly_extimm"): Merge.
("*tstdi_cconly2", "*tstsi_cconly2"): Merge.
Move other tst* patterns to retain partial order.

From-SVN: r108517

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

index a50c1e325b5da44b0be0151e0a618ac45a805e9e..a86c2a27f8a05cdf8163f61b4477a555ac78a609 100644 (file)
@@ -1,3 +1,10 @@
+2005-12-14  Adrian Straetling  <straetling@de.ibm.com>
+
+       * config/s390/s390.md ("*tstdi_extimm", "*tstsi_extimm"): Merge.
+       ("*tstdi_cconly_extimm", "*tstsi_cconly_extimm"): Merge.
+       ("*tstdi_cconly2", "*tstsi_cconly2"): Merge.
+       Move other tst* patterns to retain partial order.
+
 2005-12-14  Adrian Straetling  <straetling@de.ibm.com>
 
        * config/s390/s390.md ("d0", "1"): New mode attributes.
index 274c2336edd3a5d883b56bcd300f2516c3658e9e..d4e515c50e83922955e19f7102a77eeb9812660d 100644 (file)
   [(set_attr "op_type" "RI")])
 
 
+;
 ; Load-and-Test instructions
+;
+
+; tst(di|si) intruction pattern(s).
 
 (define_insn "*tstdi_sign"
   [(set (reg CC_REGNUM)
   "ltgfr\t%2,%0"
   [(set_attr "op_type" "RRE")])
 
-(define_insn "*tstdi_extimm"
+(define_insn "*tst<mode>_extimm"
   [(set (reg CC_REGNUM)
-        (compare (match_operand:DI 0 "nonimmediate_operand" "d,m")
-                 (match_operand:DI 1 "const0_operand" "")))
-   (set (match_operand:DI 2 "register_operand" "=d,d")
+        (compare (match_operand:GPR 0 "nonimmediate_operand" "d,m")
+                 (match_operand:GPR 1 "const0_operand" "")))
+   (set (match_operand:GPR 2 "register_operand" "=d,d")
         (match_dup 0))]
-  "s390_match_ccmode(insn, CCSmode) && TARGET_64BIT && TARGET_EXTIMM"
+  "s390_match_ccmode(insn, CCSmode) && TARGET_EXTIMM"
   "@
-   ltgr\t%2,%0
-   ltg\t%2,%0"
-  [(set_attr "op_type" "RRE,RXY")])
+   lt<g>r\t%2,%0
+   lt<g>\t%2,%0"
+  [(set_attr "op_type" "RR<E>,RXY")])
 
-(define_insn "*tstdi_cconly_extimm"
+(define_insn "*tst<mode>_cconly_extimm"
   [(set (reg CC_REGNUM)
-        (compare (match_operand:DI 0 "nonimmediate_operand" "d,m")
-                 (match_operand:DI 1 "const0_operand" "")))
-   (clobber (match_scratch:DI 2 "=X,d"))]
-  "s390_match_ccmode(insn, CCSmode) && TARGET_64BIT && TARGET_EXTIMM"
+        (compare (match_operand:GPR 0 "nonimmediate_operand" "d,m")
+                 (match_operand:GPR 1 "const0_operand" "")))
+   (clobber (match_scratch:GPR 2 "=X,d"))]
+  "s390_match_ccmode(insn, CCSmode) && TARGET_EXTIMM"
   "@
-   ltgr\t%0,%0
-   ltg\t%2,%0"
-  [(set_attr "op_type" "RRE,RXY")])
+   lt<g>r\t%0,%0
+   lt<g>\t%2,%0"
+  [(set_attr "op_type" "RR<E>,RXY")])
 
 (define_insn "*tstdi"
   [(set (reg CC_REGNUM)
   "ltgr\t%2,%0"
   [(set_attr "op_type" "RRE")])
 
-(define_insn "*tstdi_cconly"
-  [(set (reg CC_REGNUM)
-        (compare (match_operand:DI 0 "register_operand" "d")
-                 (match_operand:DI 1 "const0_operand" "")))]
-  "s390_match_ccmode(insn, CCSmode) && TARGET_64BIT"
-  "ltgr\t%0,%0"
-  [(set_attr "op_type" "RRE")])
-
-(define_insn "*tstdi_cconly_31"
-  [(set (reg CC_REGNUM)
-        (compare (match_operand:DI 0 "register_operand" "d")
-                 (match_operand:DI 1 "const0_operand" "")))]
-  "s390_match_ccmode(insn, CCSmode) && !TARGET_64BIT"
-  "srda\t%0,0"
-  [(set_attr "op_type" "RS")
-   (set_attr "atype"   "reg")])
-
-(define_insn "*tstsi_extimm"
-  [(set (reg CC_REGNUM)
-        (compare (match_operand:SI 0 "nonimmediate_operand" "d,m")
-                 (match_operand:SI 1 "const0_operand" "")))
-   (set (match_operand:SI 2 "register_operand" "=d,d")
-        (match_dup 0))]
-  "s390_match_ccmode(insn, CCSmode) && TARGET_EXTIMM"
-  "@
-   ltr\t%2,%0
-   lt\t%2,%0"
-  [(set_attr "op_type" "RR,RXY")])
-
-(define_insn "*tstsi_cconly_extimm"
-  [(set (reg CC_REGNUM)
-        (compare (match_operand:SI 0 "nonimmediate_operand" "d,m")
-                 (match_operand:SI 1 "const0_operand" "")))
-   (clobber (match_scratch:SI 2 "=X,d"))]
-  "s390_match_ccmode(insn, CCSmode) && TARGET_EXTIMM"
-  "@
-   ltr\t%0,%0
-   lt\t%2,%0"
-  [(set_attr "op_type" "RR,RXY")])
-
 (define_insn "*tstsi"
   [(set (reg CC_REGNUM)
         (compare (match_operand:SI 0 "nonimmediate_operand" "d,Q,S")
    icmy\t%2,15,%S0"
   [(set_attr "op_type" "RR,RS,RSY")])
 
-(define_insn "*tstsi_cconly2"
+(define_insn "*tstdi_cconly_31"
+  [(set (reg CC_REGNUM)
+        (compare (match_operand:DI 0 "register_operand" "d")
+                 (match_operand:DI 1 "const0_operand" "")))]
+  "s390_match_ccmode(insn, CCSmode) && !TARGET_64BIT"
+  "srda\t%0,0"
+  [(set_attr "op_type" "RS")
+   (set_attr "atype"   "reg")])
+
+(define_insn "*tst<mode>_cconly2"
   [(set (reg CC_REGNUM)
-        (compare (match_operand:SI 0 "register_operand" "d")
-                 (match_operand:SI 1 "const0_operand" "")))]
+        (compare (match_operand:GPR 0 "register_operand" "d")
+                 (match_operand:GPR 1 "const0_operand" "")))]
   "s390_match_ccmode(insn, CCSmode)"
-  "ltr\t%0,%0"
-  [(set_attr "op_type" "RR")])
+  "lt<g>r\t%0,%0"
+  [(set_attr "op_type" "RR<E>")])
+
+; tst(hi|qi) intruction pattern(s).
 
 (define_insn "*tst<mode>CCT"
   [(set (reg CC_REGNUM)
This page took 0.092134 seconds and 5 git commands to generate.