At this level, repeated loop iterations are the applicants for parallel execution. However, data dependencies among subsequent iterations may limit parallel execution of instructions at loop level. There is a lot of scale for parallel execution at loop level.
Ex: In the following loop in C language, for (i=0; i <= n; i++)
A(i) = B(i)+ C(i)
Each of the instruction A(i) =B(i)+C(i) can be implemented by different processing elements supplied there are at least n processing elements. But, the instructions in the loop:
for ( J=0, J<= n, J++) A(J) = A(J-1) + B(J)
Cannot be implemented parallel as A(J) is data dependent on A(J-1). This means that previous to exploiting the loop level parallelism the data dependencies have to be checked: