Rules for Loop Directives that Affect Array Assignment Statements

When certain loop directives precede an array assignment statement, they affect the implicit loops that are generated by the compiler.

The following loop directives can affect array assignment statements:

IVDEP NOUNROLL UNROLL
LOOP COUNT NOVECTOR1 VECTOR ALIGNED1
NOPARALLEL PARALLEL VECTOR ALWAYS1
NOPREFETCH PREFETCH VECTOR NONTEMPORAL1
NOSWP2 SWP2 VECTOR UNALIGNED1
1 i32, i64em
2 i64 only

Only one of the above directives can precede the array assignment statement (one-dimensional-array = expression) to affect it.

Other rules may apply to these directives. For more information, see the description of each directive.

Example

Consider the following:

             REAL A(10), B(10)
             ...
        !DEC$ IVDEP
             A = B + 3

This has the same effect as writing the following explicit loop:

       !DEC$ IVDEP
             DO I = 1, 10
                A (I) = B (I) + 3
             END DO