------- Comment #3 from kazu at gcc dot gnu dot org  2006-05-11 19:40 -------
The combiner combines

=== i1 ===
(insn 10 8 11 2 (set (reg/f:SI 103)
        (symbol_ref:SI ("y") <var_decl 0xf7f71de0 y>)) 145 {*arm_movsi_insn}
(nil)
    (nil))
=== i2 ===
(insn 11 10 13 2 (set (reg:SI 105 [ y ])
        (zero_extend:SI (mem/v/c/i:HI (reg/f:SI 103) [0 y+0 S2 A16]))) 123
{*arm_zero_extendhisi2} (insn_list:REG_DEP_TRUE 10 (nil))
    (expr_list:REG_DEAD (reg/f:SI 103)
        (nil)))
=== i3 ===
(insn 13 11 14 2 (set (reg:SI 106)
        (ashift:SI (reg:SI 105 [ y ])
            (const_int 16 [0x10]))) 101 {*arm_shiftsi3} (insn_list:REG_DEP_TRUE
11 (nil))
    (expr_list:REG_DEAD (reg:SI 105 [ y ])
        (nil)))

into

(set (subreg:HI (reg:SI 106) 0)
    (const_int 0 [0x0]))

Doh!


-- 


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

Reply via email to