This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug rtl-optimization/30967] Extra sign/zero extend with word comparison result
- From: "pinskia at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 26 Feb 2007 23:20:57 -0000
- Subject: [Bug rtl-optimization/30967] Extra sign/zero extend with word comparison result
- References: <bug-30967-6528@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #1 from pinskia at gcc dot gnu dot org 2007-02-26 23:20 -------
I think this is a case where combine (and other passes) don't know that eq is
always signed extended (when the true is not -1):
(insn 9 8 10 2 (set (reg:SI 123)
(eq:SI (reg:SI 3 3 [ a ])
(reg:SI 4 4 [ b ]))) 471 {*eqsi} (nil)
(expr_list:REG_DEAD (reg:DI 3 3 [ a ])
(expr_list:REG_DEAD (reg:DI 4 4 [ b ])
(nil))))
(note 10 9 16 2 NOTE_INSN_DELETED)
(insn 16 10 22 2 (set (reg/i:DI 3 3 [ <result> ])
(sign_extend:DI (reg:SI 123))) 27 {*rs6000.md:393}
(insn_list:REG_DEP_TRUE 9 (nil))
(expr_list:REG_DEAD (reg:SI 123)
(nil)))
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30967