aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2002-06-20 12:15:59 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2002-06-20 10:15:59 +0000
commitb6bb1d561836b8939f3b289f596348f0ea4ab06d (patch)
tree5e5359339988523f999201a48ae650bba9b7a058 /gcc
parenta8577242841ea3c0cc6ee20bc4d120f7bc0e0a0f (diff)
downloadgcc-b6bb1d561836b8939f3b289f596348f0ea4ab06d.zip
gcc-b6bb1d561836b8939f3b289f596348f0ea4ab06d.tar.gz
gcc-b6bb1d561836b8939f3b289f596348f0ea4ab06d.tar.bz2
* i386.md (xorqi_1_slp, xorqi_2_slp): New patterns.
From-SVN: r54826
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/config/i386/i386.md23
2 files changed, 27 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 710e2cd..b2ebcd7 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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.
diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md
index 1d1381a..c2ef896 100644
--- a/gcc/config/i386/i386.md
+++ b/gcc/config/i386/i386.md
@@ -8830,6 +8830,16 @@
[(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)
@@ -8917,6 +8927,19 @@
[(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