Product Version: Intel(R) Visual Fortran Compiler XE 15.0.0.070
Cause:
When using Intel Fortran Compiler's option -fp:precise (Linux OS and OS X syntax: -fp-model precise) the vectorization report generated using Visual Fortran Compiler's optimization and vectorization report options ( -O2 - Qvec-report2 - Qopt-report:2) includes non-vectorized loop instance.
Example:
An example below will generate the following remark in optimization report:
subroutine foo(a, b, n) implicit none integer, intent(in) :: n real, intent(inout) :: a(n) real, intent(out) :: b real :: x = 0 integer :: i do i=1,n x = x + a(i) end do b = x end subroutine foo
Report from: Vector & Auto-parallelization optimizations [vec, par]
LOOP BEGIN at f15331.f90(9,2)
remark #15331: loop was not vectorized: precise FP model implied by the command line or a directive prevents vectorization. Consider using fast FP model
LOOP END
Resolution:
Using fast FP model (Win: -fp:fast , Linux and OS X syntax: -fp-model fast) option which allows more aggressive optimizations on floating-point data will get this loop vectorized.
See also:
Vectorization and Optimization Reports