title: Loop unrolling & optimization
body: <p>Given the code : </p>
  
  <pre><code>for (int i = 0; i &lt; n; ++i) 
  { 
    A(i) ; 
    B(i) ; 
    C(i) ; 
  }
  </code></pre>
  
  <p>And the optimization version : </p>
  
  <pre><code>for (int i = 0; i &lt; (n - 2); i+=3) 
  { 
    A(i) 
    A(i+1) 
    A(i+2) 
    B(i) 
    B(i+1) 
    B(i+2) 
    C(i) 
    C(i+1) 
    C(i+2)
  }
  </code></pre>
  
  <p>Something is not clear to me : which is better ? I can't see anything that works any faster using the other version . Am I missing something here ? </p>
  
  <p>All I see is that each instruction is depending on the previous instruction , meaning that 
  I need to wait that the previous instruction would finish in order to start the one after ...</p>
  
  <p>Thanks </p>