This happens in testcases gfortran.dg/vect/vect-[2,3,4].f90 - On the alias branch we can't tell that subroutine arguments don't alias. e.g., X,Y in "SUBROUTINE SAXPY(X,Y,A)". As a result the vectorizer applies loop-versioning with runtime aliasing test, which also means it will handle misalignment using versioning instead of peeling:
" versioning for alias required: can't determine dependence between (*x_32(D))[D.1518_28] and (*y_29(D))[D.1518_28] vect-3.f90:6: note: mark for run-time aliasing test between (*x_32(D))[D.1518_28] and (*y_29(D))[D.1518_28] ... vect-3.f90:6: note: Alignment of access forced using versioning. vect-3.f90:6: note: Versioning for alignment will be applied. " -- Summary: [alias-improvements-branch] can't alias fortran function arguments Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: dorit at gcc dot gnu dot org GCC build triplet: i386-linux GCC host triplet: i386-linux GCC target triplet: i386-linux http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37692