http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55213
--- Comment #4 from Joshua Conner <josh.m.conner at gmail dot com> 2012-11-29 22:17:50 UTC --- I'm also seeing this same issue in libgfortran's matmul_r8.c, where the inner loop has an aliasing check even though all of the pointer dereferences are via restricted pointers. Again, the problem is worse because the aliasing versioning prevents us from doing vector alignment peeling.