------- Comment #6 from rguenth at gcc dot gnu dot org 2010-01-17 21:08 ------- If you fix that issue (simply remove all __may_alias__ attributes from preprocessed source) you get
.L62: addl $1, %edx movdqa (%ebx,%eax), %xmm0 pand (%esi,%eax), %xmm0 movdqa %xmm0, (%edi,%eax) addl $16, %eax cmpl %edx, %ecx jne .L62 for the innermost loop. Maybe not 100% perfect but reasonable (that's -O2). -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42779