------- Comment #1 from jakub at gcc dot gnu dot org  2010-07-08 08:37 -------
Things go wrong in the combiner:

(insn 21 42 22 6 pr44858.c:16 (parallel [
            (set (reg/v:SI 62 [ c ])
                (and:SI (reg:SI 68)
                    (const_int 2 [0x2])))
            (clobber (reg:CC 17 flags))
        ]) 375 {*andsi_1} (expr_list:REG_DEAD (reg:SI 68)
        (expr_list:REG_UNUSED (reg:CC 17 flags)
            (nil))))

(insn 22 21 23 6 pr44858.c:17 (set (reg:CCZ 17 flags)
        (compare:CCZ (mem/c/i:SI (symbol_ref:SI ("a") [flags 0x2]  <var_decl
0x7f8d06f05000 a>) [0 a+0 S4 A32])
            (const_int 0 [0]))) 2 {*cmpsi_ccno_1} (nil))

(insn 23 22 24 6 pr44858.c:17 (set (reg:QI 70)
        (ne:QI (reg:CCZ 17 flags)
            (const_int 0 [0]))) 570 {*setcc_qi} (expr_list:REG_DEAD (reg:CCZ 17
flags)
        (nil)))

(insn 24 23 25 6 pr44858.c:17 (parallel [
            (set (reg:SI 69)
                (zero_extend:SI (reg:QI 70)))
            (clobber (reg:CC 17 flags))
        ]) 119 {*zero_extendqisi2_movzbl_and} (expr_list:REG_DEAD (reg:QI 70)
        (expr_list:REG_UNUSED (reg:CC 17 flags)
            (nil))))

(insn 25 24 26 6 pr44858.c:17 (parallel [
            (set (reg:SI 65 [ b.2 ])
                (ior:SI (reg/v:SI 62 [ c ])
                    (reg:SI 69)))
            (clobber (reg:CC 17 flags))
        ]) 394 {*iorsi_1} (expr_list:REG_DEAD (reg:SI 69)
        (expr_list:REG_UNUSED (reg:CC 17 flags)
            (nil))))

changes into:

(note 21 42 22 6 NOTE_INSN_DELETED)

(insn 22 21 23 6 pr44858.c:17 (set (reg:CCZ 17 flags)
        (compare:CCZ (mem/c/i:SI (symbol_ref:SI ("a") [flags 0x2]  <var_decl
0x7f8d06f05000 a>) [0 a+0 S4 A32])
            (const_int 0 [0]))) 2 {*cmpsi_ccno_1} (nil))

(note 23 22 24 6 NOTE_INSN_DELETED)

(insn 24 23 25 6 pr44858.c:17 (parallel [
            (set (reg/v:SI 62 [ c ])
                (and:SI (reg:SI 68)
                    (const_int 2 [0x2])))
            (clobber (reg:CC 17 flags))
        ]) 375 {*andsi_1} (expr_list:REG_UNUSED (reg:CC 17 flags)
        (expr_list:REG_DEAD (reg:SI 68)
            (nil))))

(insn 25 24 26 6 pr44858.c:17 (set (reg:SI 65 [ b.2 ])
        (ne:SI (reg:CCZ 17 flags)
            (const_int 0 [0]))) 569 {*setcc_si_1_movzbl} (expr_list:REG_DEAD
(reg:CC 17 flags)
        (nil)))


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44858

Reply via email to