------- Comment #6 from ubizjak at gmail dot com 2008-03-05 10:32 ------- 4.2 figures out in cse1 pass that:
(insn 9 8 10 2 (parallel [ (set (reg:DI 60 [ b ]) (zero_extend:DI (mem/c/i:SI (symbol_ref:SI ("b") <var_decl 0xb7caf108 b>) [3 b+0 S4 A32]))) (clobber (reg:CC 17 flags)) ]) 79 {zero_extendsidi2_32} (nil) (nil)) ... (insn 11 10 12 2 (parallel [ (set (reg:SI 61) (mult:SI (reg:SI 62 [ a ]) (subreg:SI (reg:DI 60 [ b ]) 4))) (clobber (reg:CC 17 flags)) ]) 182 {*mulsi3_1} (nil) (nil)) can simply be substituted with: (insn 11 9 12 2 (set (reg:SI 61) (const_int 0 [0x0])) 34 {*movsi_1} (nil) (nil)) -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35281