None.
Specifies whether unrolling DO loops is allowed in a program. Unrolling is allowed on outer and inner DO loops.
.-auto-. .-=--+-yes--+-. | '-n----' | .-unroll--+-------------+-. >>- -q--+-nounroll----------------+----------------------------><
-qunroll=auto
If you decide to unroll a loop, specifying one of the above suboptions does not automatically guarantee that the compiler will perform the operation. Based on the performance benefit, the compiler will determine whether unrolling will be beneficial to the program. Experienced compiler users should be able to determine the benefit in advance.
Specifying -qunroll with no suboptions is equivalent to -qunroll=yes.
The -qnounroll option prohibits unrolling unless you specify the STREAM_UNROLL , UNROLL , or UNROLL_AND_FUSE directive for a particular loop. These directives always override the command line options.
In the following example, the UNROLL(2) directive is used to tell the compiler that the body of the loop can be replicated so that the work of two iterations is performed in a single iteration. Instead of performing 1000 iterations, if the compiler unrolls the loop, it will only perform 500 iterations.
!IBM* UNROLL(2)
DO I = 1, 1000
A(I) = I
END DO
DO I = 1, 1000, 2
A(I) = I
A(I+1) = I + 1
END DO