aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@libertysurf.fr>2003-10-19 19:53:11 +0200
committerEric Botcazou <ebotcazou@gcc.gnu.org>2003-10-19 17:53:11 +0000
commit707e58b1a72bcb33fdd7cbd50833599c53f74652 (patch)
treecc9b17390a135efcbc70252bf3035735ec6822bb /gcc
parent8f4c7b679cee153ac12b9d9bb9bce4d68b43d71f (diff)
downloadgcc-707e58b1a72bcb33fdd7cbd50833599c53f74652.zip
gcc-707e58b1a72bcb33fdd7cbd50833599c53f74652.tar.gz
gcc-707e58b1a72bcb33fdd7cbd50833599c53f74652.tar.bz2
re PR rtl-optimization/8178 (__builtin_ffs broken with -march=k6)
PR optimization/8178 * config/i386/i386.md (*movsi_zero): Delete. (*ffs_no_cmove): Use ix86_expand_clear to zero the third operand. Co-Authored-By: Richard Henderson <rth@redhat.com> From-SVN: r72680
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/config/i386/i386.md14
2 files changed, 9 insertions, 12 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 332704f..f82fa3d 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2003-10-19 Eric Botcazou <ebotcazou@libertysurf.fr>
+ Richard Henderson <rth@redhat.com>
+
+ PR optimization/8178
+ * config/i386/i386.md (*movsi_zero): Delete.
+ (*ffs_no_cmove): Use ix86_expand_clear to zero the third operand.
+
2003-10-19 Richard Henderson <rth@redhat.com>
* config/alpha/alpha.c (fix_operator): New.
diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md
index c79f1dd..65c5f0d 100644
--- a/gcc/config/i386/i386.md
+++ b/gcc/config/i386/i386.md
@@ -1161,15 +1161,6 @@
[(set_attr "type" "alu1")
(set_attr "mode" "SI")
(set_attr "length_immediate" "0")])
-
-(define_insn "*movsi_zero"
- [(set (match_operand:SI 0 "register_operand" "=r")
- (match_operand:SI 1 "const0_operand" "i"))
- (clobber (reg:CC 17))]
- "reload_completed && (TARGET_USE_MOV0 && !optimize_size)"
- "mov{l}\t{%1, %0|%0, %1}"
- [(set_attr "type" "imov")
- (set_attr "mode" "SI")])
(define_insn "*movsi_or"
[(set (match_operand:SI 0 "register_operand" "=r")
@@ -14464,9 +14455,7 @@
""
"#"
"reload_completed"
- [(parallel [(set (match_dup 2) (const_int 0))
- (clobber (reg:CC 17))])
- (parallel [(set (reg:CCZ 17) (compare:CCZ (match_dup 1) (const_int 0)))
+ [(parallel [(set (reg:CCZ 17) (compare:CCZ (match_dup 1) (const_int 0)))
(set (match_dup 0) (ctz:SI (match_dup 1)))])
(set (strict_low_part (match_dup 3))
(eq:QI (reg:CCZ 17) (const_int 0)))
@@ -14478,6 +14467,7 @@
(clobber (reg:CC 17))])]
{
operands[3] = gen_lowpart (QImode, operands[2]);
+ ix86_expand_clear (operands[2]);
})
(define_insn "*ffssi_1"