------- 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
