Product Version: Intel(R) Visual Fortran Compiler XE 15.0.0.070
Cause:
The vectorization report generated when using Visual Fortran Compiler's optimization options ( -O2 -Qopt-report:2 ) states that loop was not vectorized since the inner loop was vectorized.
Example:
An example below will generate the following remark in optimization report:
subroutine foo(a, n1, n)
implicit none
integer, intent(in) :: n, n1
real, intent(inout) :: a(n1,n1)
integer :: i, j
do i=1,n
do j=1,n
a(j,i) = a(j,i) + 1
end do
end do
end subroutine fooReport from: Loop nest, Vector & Auto-parallelization optimizations [loop, vec, par] LOOP BEGIN at f15542.f90(7,9) remark #15542: loop was not vectorized: inner loop was already vectorized LOOP BEGIN at f15542.f90(8,13) Peeled LOOP END LOOP BEGIN at f15542.f90(8,13) remark #15399: vectorization support: unroll factor set to 2 remark #15300: LOOP WAS VECTORIZED LOOP END LOOP END
See also:
Requirements for Vectorizable Loops
Vectorization and Optimization Reports





