http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49781
--- Comment #37 from Uros Bizjak <ubizjak at gmail dot com> 2011-08-08 17:16:44 UTC --- (In reply to comment #35) > It works much better now. But gcc.dg/torture/pr47744-2.c compiled with > > -mx32 -O3 -std=gnu99 -ftree-vectorize -funroll-loops > > still generates those leal: > > leal (%rsi,%r9), %ebp > leal (%r10,%r9), %r12d > leal (%r10,%r9), %r12d This partial address won't combine due to multiple uses. IIRC, there was some discussion to distribute partial addresses back to their use sites, but OTOH it all depends on how hard you want to hammer your address generation unit.