------- Comment #5 from rguenth at gcc dot gnu dot org  2010-03-19 11:35 -------
It combines

(insn 6 5 7 2 t.c:16 (parallel [
            (set (reg:SI 59 [ D.2732 ])
                (ior:SI (reg:SI 67 [ g_9 ])
                    (const_int 1 [0x1])))
            (clobber (reg:CC 17 flags))
        ]) 394 {*iorsi_1} (expr_list:REG_DEAD (reg:SI 67 [ g_9 ])
        (expr_list:REG_UNUSED (reg:CC 17 flags)
            (expr_list:REG_EQUAL (ior:SI (mem/c/i:SI (symbol_ref:DI ("g_9")
[flags 0x2]  <var_decl 0x7ffff5ae50a0 g_9>) [0 g_9+0 S4 A32])
                    (const_int 1 [0x1]))
                (nil)))))

(insn 7 6 8 2 t.c:10 (parallel [
            (set (reg:QI 68)
                (ior:QI (subreg:QI (reg:SI 59 [ D.2732 ]) 0)
                    (const_int -2 [0xfffffffffffffffe])))
            (clobber (reg:CC 17 flags))
        ]) 398 {*iorqi_1} (expr_list:REG_UNUSED (reg:CC 17 flags)
        (nil)))

(insn 8 7 9 2 t.c:10 (parallel [
            (set (reg:SI 69)
                (zero_extend:SI (reg:QI 68)))
            (clobber (reg:CC 17 flags))
        ]) 119 {*zero_extendqisi2_movzbl_and} (expr_list:REG_DEAD (reg:QI 68)
        (expr_list:REG_UNUSED (reg:CC 17 flags)
            (nil))))

and somewhere forgets to apply the zero-extension:

Successfully matched this instruction:
(set (reg:SI 59 [ D.2732 ])
    (ior:SI (reg:SI 67 [ g_9 ])
        (const_int 1 [0x1])))
Successfully matched this instruction:
(set (reg:SI 69)
    (const_int -1 [0xffffffffffffffff]))


-- 


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

Reply via email to