Quantcast
Channel: Intel Developer Zone Articles
Viewing all articles
Browse latest Browse all 461

Diagnostic 15304: non-vectorizable loop instance

$
0
0

Product Version: Intel(R) Visual Fortran Compiler XE 15.0.0.070  

Cause:

The vectorization report generated using Visual Fortran Compiler's optimization and vectorization report options (-Qvec-report2 -O2) includes non-vectorized loop instance when using the following compiler option (Win OS): -assume:dummy_aliases  

Example:

An example below will generate the following  remark in optimization report:

subroutine foo(a, b, n)
  implicit none
  real, intent(inout) :: a(n)
  real, intent(in)    :: b(n)
  integer, intent(in) :: n
  integer :: i

  do i=1,n
         a(i) = b(i)+1
  end do

end subroutine foo

 

Report from: Vector & Auto-parallelization optimizations [vec, par]

LOOP BEGIN at f15304.f90(8,3)
<Multiversioned v2>
   remark #15304: loop was not vectorized: non-vectorizable loop instance from multiversioning
LOOP END

Resolution: 

Using compiler option -assume:nodummy_aliases ( in Linux OS and OS X: -assume nodummy_aliases) will improve performance and get this loop to vectorize, however care should be taken to ensure that programs compiled with -assume:nodummy _aliasesoutput correct results.

 

See also:

Requirements for Vectorizable Loops

Vectorization Essentials

Vectorization and Optimization Reports

Back to the list of vectorization diagnostics for Intel Fortran

 


Viewing all articles
Browse latest Browse all 461

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>