This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug rtl-optimization/30967] Extra sign/zero extend with word comparison result



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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]