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))