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

Reply via email to