The syntax of the directive is
!GCC$ ivdep
This directive tells the compiler to ignore vector dependencies in the
following loop. It must be placed immediately before a DO
loop
and applies only to the loop that follows.
Sometimes the compiler may not have sufficient information to decide whether a particular loop is vectorizable due to potential dependencies between iterations. The purpose of the directive is to tell the compiler that vectorization is safe.
For DO CONCURRENT
constructs this annotation is implicit to all
loop control variables.
This directive is intended for annotation of existing code. For new code it is recommended to consider OpenMP SIMD directives as potential alternative.