Composite constructs combine constructs that otherwise cannot be immediately nested. Specifically, composite constructs apply multiple loop-associated constructs to the same canonical loop nest. The semantics of each composite construct first apply the semantics of the enclosing construct as specified by directive-name-A and any clauses that apply to it. For each task (possibly implicit, possibly initial) as appropriate for the semantics of directive-name-A, the application of its semantics yields a nested loop of depth two in which the outer loop iterates over the chunks assigned to that task and the inner loop iterates over the logical iterations of each chunk. The semantics of directive-name-B and any clauses that apply to it are then applied to that inner loop. For composite constructs, tool callbacks are invoked as if the constructs were explicitly nested.
If directive-name-A is taskloop and directive-name-B is simd then for the application of the simd construct, the effect of any in_reduction clause is as if a reduction clause with the same reduction operator and list items is present.
Restrictions
Restrictions to composite constructs are as follows:Cross References