http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49969
Summary: not vectorized: data ref analysis failed Product: gcc Version: 4.7.0 Status: UNCONFIRMED Keywords: missed-optimization Severity: normal Priority: P3 Component: middle-end AssignedTo: unassig...@gcc.gnu.org ReportedBy: bur...@gcc.gnu.org CC: i...@gcc.gnu.org, rguent...@suse.de The following program does not vectorize. With Intel's ifort one gets the message: PERMUTED LOOP WAS VECTORIZED while GCC just prints: test.f90:6: note: not vectorized: data ref analysis failed D.1566_33 = *iz_32(D)[D.1565_31]; test.f90:7: note: not vectorized: data ref analysis failed D.1566_33 = *iz_32(D)[D.1565_31]; test.f90:2: note: vectorized 0 loops in function. In case of GCC, it does not depend on the loop order - permuting does not change anything. Also it is independent of the patch to PR 49957. ! From Polyhedron's ac.f90, line 746 SUBROUTINE SUSCEP(L,Iz,Dsus) INTEGER L , Iz(L,L) , iznum DOUBLE PRECISION Dsus iznum = 0 DO iy = 1 , L DO ix = 1 , L iznum = iznum + Iz(iy,ix) ENDDO ENDDO Dsus = DBLE(iznum) Dsus = Dsus*Dsus Dsus = Dsus/(L*L) END