[Bug rtl-optimization/50696] [x32] Unnecessary lea
hjl.tools at gmail dot com
gcc-bugzilla@gcc.gnu.org
Tue Oct 11 20:09:00 GMT 2011
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50696
H.J. Lu <hjl.tools at gmail dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Component|target |rtl-optimization
--- Comment #2 from H.J. Lu <hjl.tools at gmail dot com> 2011-10-11 20:09:10 UTC ---
For
(insn 37 35 39 3 (parallel [
(set (reg:SI 88)
(plus:SI (reg:SI 89)
(reg:SI 100)))
(clobber (reg:CC 17 flags))
]) x.i:12 253 {*addsi_1}
(expr_list:REG_DEAD (reg:SI 89)
(expr_list:REG_UNUSED (reg:CC 17 flags)
(nil))))
(insn 39 37 41 3 (set (mem:SI (zero_extend:DI (reg:SI 88)) [0 MEM[symbol: x,
index: D.2735_1, step: 4, offset: 4294967292B]+0 S4 A32])
(reg/v:SI 85 [ i ])) x.i:12 64 {*movsi_internal}
(expr_list:REG_DEAD (reg:DI 87)
(nil)))
combine replaces zero_extend with and. It may be a valid
option for normal computation. But it messes up the
POINTERS_EXTEND_UNSIGNED > 0 target where address is
zero-extendeded from ptr_mode to Pmode.
More information about the Gcc-bugs
mailing list