http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50107
--- Comment #13 from H.J. Lu <hjl.tools at gmail dot com> 2011-08-19 16:05:58 UTC --- We start with (insn 11 4 16 2 (set (reg:TI 65) (mult:TI (zero_extend:TI (reg/v:DI 64 [ b ])) (zero_extend:TI (reg/v:DI 63 [ a ])))) uti-2.i:3 339 {bmi2_umulditi3_1} (expr_list:REG_DEAD (reg/v:DI 64 [ b ]) (expr_list:REG_DEAD (reg/v:DI 63 [ a ]) (nil)))) (insn 16 11 19 2 (set (reg/i:TI 0 ax) (reg:TI 65)) uti-2.i:4 60 {*movti_internal_rex64} (expr_list:REG_DEAD (reg:TI 65) (nil))) and IRA generates: (insn 24 4 11 2 (set (reg:DI 1 dx) (reg/v:DI 4 si [orig:64 b ] [64])) uti-2.i:3 62 {*movdi_internal_rex64} (nil)) (insn 11 24 16 2 (set (reg:TI 4 si [65]) (mult:TI (zero_extend:TI (reg:DI 1 dx)) (zero_extend:TI (reg/v:DI 5 di [orig:63 a ] [63])))) uti-2.i:3 339 {bmi2_umulditi3_1} (nil)) (insn 16 11 19 2 (set (reg/i:TI 0 ax) (reg:TI 4 si [65])) uti-2.i:4 60 {*movti_internal_rex64} (nil)) (insn 19 16 22 2 (use (reg/i:TI 0 ax)) uti-2.i:4 -1 (nil))