This one does get vectorized with autovect-branch: [ example with source and destination array exactly overlapping ]
~/autovect_cvs/bin/gfortran -O3 -ftree-vectorize -maltivec -ftree-vectorizer-verbose=4 -S hilaram1.f90 hilaram1.f90:5: note: dependence distance = 0. hilaram1.f90:5: note: accesses have the same alignment. hilaram1.f90:5: note: dependence distance modulo vf == 0 between (*a_25)[D.949_60] and (*a_25)[D.949_60] hilaram1.f90:5: note: Alignment of access forced using peeling. hilaram1.f90:5: note: Vectorizing an unaligned access. hilaram1.f90:5: note: LOOP VECTORIZED. hilaram1.f90:9: note: vectorized 1 loops in function. dorit Indeed, it works on x86_64-unknown-linux-gnu too, with the autovect branch. > L.S., > > This code: > > SUBROUTINE S(N, M) > DIMENSION A(N, M), B(N, M) > READ*,A,B > DO J = 1, M > DO I = 1, N > A(I, J) = A(I, J) + B(I, J) > ENDDO > ENDDO > PRINT*,A > END Unfortunately, it's only this example that works. I still see a lot of cases when using the autovect branch compiler on HIRLAM. I'll try to distill another example. Kind regards, -- Toon Moene - e-mail: [EMAIL PROTECTED] - phone: +31 346 214290 Saturnushof 14, 3738 XG Maartensdijk, The Netherlands A maintainer of GNU Fortran 95: http://gcc.gnu.org/fortran/