Memory Dependency with IVDEP Directive

For Itanium-based applications, the -ivdep_parallel option indicates there is absolutely no loop-carried memory dependency in the loop where IVDEP directive is specified. This technique is useful for some sparse matrix applications.

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

!DIR$ IVDEP
do j=1,n
a(b(j)) = a(b(j))+1
enddo

See also Vectorization Support.