http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59880
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED Assignee|unassigned at gcc dot gnu.org |jakub at gcc dot gnu.org --- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Created attachment 31893 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=31893&action=edit gcc49-pr59880.patch Untested fix. The reason for the problem is that if it is just a (zero-extended SI->DI or normal) move from %r13, %rbp or (for k6 %esi), then decomposition sets parts.disp to const0_rtx and thus we count it as two parts, even when we wouldn't emit it as a lea insn originally.