------- 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