* i386.md (xorqi_1_slp, xorqi_2_slp): New patterns.
authorJan Hubicka <jh@suse.cz>
Thu, 20 Jun 2002 10:15:59 +0000 (12:15 +0200)
committerJan Hubicka <hubicka@gcc.gnu.org>
Thu, 20 Jun 2002 10:15:59 +0000 (10:15 +0000)
From-SVN: r54826

gcc/ChangeLog
gcc/config/i386/i386.md

index 710e2cd3d473b13b27cb19823edde6ca9a95a120..b2ebcd772ca0ee19701e2c2efd122f3fcecf60dc 100644 (file)
@@ -1,3 +1,7 @@
+Thu Jun 20 12:14:01 CEST 2002  Jan Hubicka  <jh@suse.cz>
+
+       * i386.md (xorqi_1_slp, xorqi_2_slp): New patterns.
+
 2002-05-20  Richard Henderson  <rth@redhat.com>
 
        * c-common.c (c_common_get_alias_set): Correctly handle characters.
index 1d1381ac9f66ab6e5dc15722cbfe697b3cbeaca6..c2ef896543989abd43cfc336b402275710b39226 100644 (file)
   [(set_attr "type" "alu")
    (set_attr "mode" "QI,QI,SI")])
 
+(define_insn "*xorqi_1_slp"
+  [(set (strict_low_part (match_operand:QI 0 "nonimmediate_operand" "+qm,q"))
+       (xor:QI (match_dup 0)
+               (match_operand:QI 1 "general_operand" "qi,qmi")))
+   (clobber (reg:CC 17))]
+  "! TARGET_PARTIAL_REG_STALL || optimize_size"
+  "xor{b}\t{%1, %0|%0, %1}"
+  [(set_attr "type" "alu1")
+   (set_attr "mode" "QI")])
+
 (define_insn "xorqi_ext_0"
   [(set (zero_extract:SI (match_operand 0 "ext_register_operand" "=Q")
                         (const_int 8)
   [(set_attr "type" "alu")
    (set_attr "mode" "QI")])
 
+(define_insn "*xorqi_2_slp"
+  [(set (reg 17)
+       (compare (xor:QI (match_operand:QI 0 "nonimmediate_operand" "+q,qm")
+                        (match_operand:QI 1 "general_operand" "qim,qi"))
+                (const_int 0)))
+   (set (strict_low_part (match_dup 0))
+       (xor:QI (match_dup 0) (match_dup 1)))]
+  "(! TARGET_PARTIAL_REG_STALL || optimize_size)
+   && ix86_match_ccmode (insn, CCNOmode)"
+  "xor{b}\t{%1, %0|%0, %1}"
+  [(set_attr "type" "alu1")
+   (set_attr "mode" "QI")])
+
 (define_insn "*xorqi_cc_2"
   [(set (reg 17)
        (compare