s390.md ("*tsthiCCT", [...]): New insns.
authorUlrich Weigand <uweigand@de.ibm.com>
Thu, 19 Dec 2002 19:55:12 +0000 (19:55 +0000)
committerUlrich Weigand <uweigand@gcc.gnu.org>
Thu, 19 Dec 2002 19:55:12 +0000 (19:55 +0000)
* config/s390/s390.md ("*tsthiCCT", "*tsthiCCT_cconly",
"*tstqiCCT", "*tstqiCCT_cconly"): New insns.

From-SVN: r60322

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

index d13dac71f354c11491c98dfe12f0e71bff6b3249..47f7ef5f185ea551cf6c85c335a289b0daa105e1 100644 (file)
@@ -1,3 +1,8 @@
+2002-12-19  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * config/s390/s390.md ("*tsthiCCT", "*tsthiCCT_cconly",
+       "*tstqiCCT", "*tstqiCCT_cconly"): New insns.
+
 2002-12-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
 
        PR target/8340
index 4767ebbdaf53d781c017d6763718450aa634ed76..fe41557cdc3a0cfbcede63d330fe7f1b563a98d2 100644 (file)
   "ltr\\t%0,%0"
   [(set_attr "op_type" "RR")])
 
+(define_insn "*tsthiCCT"
+  [(set (reg 33)
+        (compare (match_operand:HI 0 "nonimmediate_operand" "?Q,d")
+                 (match_operand:HI 1 "const0_operand" "")))
+   (set (match_operand:HI 2 "register_operand" "=d,0")
+        (match_dup 0))]
+  "s390_match_ccmode(insn, CCTmode)"
+  "@
+   icm\\t%2,3,%0
+   tml\\t%0,65535"
+  [(set_attr "op_type" "RS,RI")
+   (set_attr "atype"   "mem,reg")])
+
+(define_insn "*tsthiCCT_cconly"
+  [(set (reg 33)
+        (compare (match_operand:HI 0 "nonimmediate_operand" "?Q,d")
+                 (match_operand:HI 1 "const0_operand" "")))
+   (clobber (match_scratch:HI 2 "=d,X"))]
+  "s390_match_ccmode(insn, CCTmode)"
+  "@
+   icm\\t%2,3,%0
+   tml\\t%0,65535"
+  [(set_attr "op_type" "RS,RI")
+   (set_attr "atype"   "mem,reg")])
+
 (define_insn "*tsthi"
   [(set (reg 33)
         (compare (match_operand:HI 0 "s_operand" "Q")
   [(set_attr "op_type" "RS")
    (set_attr "atype"   "mem")])
 
+(define_insn "*tstqiCCT"
+  [(set (reg 33)
+        (compare (match_operand:QI 0 "nonimmediate_operand" "?Q,d")
+                 (match_operand:QI 1 "const0_operand" "")))
+   (set (match_operand:QI 2 "register_operand" "=d,0")
+        (match_dup 0))]
+  "s390_match_ccmode(insn, CCTmode)"
+  "@
+   icm\\t%2,1,%0
+   tml\\t%0,255"
+  [(set_attr "op_type" "RS,RI")
+   (set_attr "atype"   "mem,reg")])
+
+(define_insn "*tstqiCCT_cconly"
+  [(set (reg 33)
+        (compare (match_operand:QI 0 "nonimmediate_operand" "?Q,d")
+                 (match_operand:QI 1 "const0_operand" "")))]
+  "s390_match_ccmode(insn, CCTmode)"
+  "@
+   cli\\t%0,0
+   tml\\t%0,255"
+  [(set_attr "op_type" "SI,RI")
+   (set_attr "atype"   "mem,reg")])
+
 (define_insn "*tstqi"
   [(set (reg 33)
         (compare (match_operand:QI 0 "s_operand" "Q")