Product Version: Intel® Fortran Compiler 15.0 and a later version
Cause:
The vectorization report generated using Intel® Fortran Compiler's optimization and vectorization report options includes non-vectorized loop instance:
Windows* OS: /O2 /Qopt-report:2 /Qopt-report-phase:vec
Linux OS or OS X: -O2 -qopt-report2 -qopt-report-phase=vec
Example:
An example below will generate the following remark in optimization report:
subroutine f15516(a,b,n)
implicit none
complex(8), dimension(n), intent(in ) :: a
complex(8), dimension(n), intent(out) :: b
integer, intent(in ) :: n
integer :: i
do i=1,n
b(i) = 1. / sqrt(1.+a(i)**2)
enddo
end subroutine f15516
ifort -c /O2 /Qopt-report:2 /Qopt-report-phase:vec /Qopt-report-file:stdout f15516.f90
Begin optimization report for: F15516
Report from: Vector optimizations [vec]
LOOP BEGIN at f15516.f90(8,4)
remark #15516: loop was not vectorized: cost model has chosen vectorlength of 1 -- maybe possible to override via pragma/directive with vectorlength clause
LOOP END
Resolution:
See also:
Requirements for Vectorizable Loops
Vectorization and Optimization Reports