 <p>There is no penalty to using VMOVDQU when the address is aligned. The behavior is identical to using VMOVDQA in that case.</p> <p>As for "why" there may not be a single clear answer. It's <em>possible</em> that ICC does this deliberately so that users who later call <code>_do</code> with an unaligned argument will not crash, but it's also possible that it's simply emergent behavior of the compiler. Someone on the Intel compiler team could answer this question, the rest of us can only speculate.</p>