http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59880
--- Comment #6 from Uroš Bizjak <ubizjak at gmail dot com> --- (In reply to Jakub Jelinek from comment #5) > Created attachment 31893 [details] > 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. True. However, can you put new test before costly call to ix86_ok_to_clobber_flags and ix86_decompose_address?