Absence of Loop-carried Memory Dependency with IVDEP Directive

For ItaniumŪ-based applications, the -ivdep-parallel (Linux*) or /Qivdep-parallel (Windows*) option indicates there is no loop-carried memory dependency in the loop where an ivdep directive is specified. This technique is useful for some sparse matrix applications.

For example,  the following loop requires the parallel option in addition to the ivdep directive to ensure there is no loop-carried dependency for the store into a().

Example

!DEC$ IVDEP

do j=1,n

  a(b(j)) = a(b(j))+1

enddo

See also Vectorization support.