Product Version: Intel® Fortran Compiler 15.0 and above
Cause:
The vectorization report generated when using Intel® Fortran Compiler's optimization options (/O3 /Qopt-report:2 /Qopt-report-phase:vec) states that loop was not vectorized since loop control flow is too complex.
Example:
An example below will generate the following remark in optimization report:
ifort -c /O3 /Qopt-report:2 /Qopt-report-phase:vec /Qopt-report-file:stdout f15522.f90
Report from: Vector optimizations [vec]
LOOP BEGIN at f1552.f90(10,8)
remark #15522: loop was not vectorized: loop control flow is too complex. remark #15522: loop was not vectorized: loop control flow is too complex. Try using canonical loop form..
LOOP END
Resolution:
-goto statements prevent vectorization, rewriting the code using canonical loops such as 'do - end do' loops will get this loop vectorized.
See also:
Requirements for Vectorizable Loops
Vectorization and Optimization Reports