title: Is it possible to cast floats directly to __m128 if they are 16 byte aligned?
body: <p>Is it safe/possible/advisable to cast floats directly to <code>__m128</code> if they are 16 byte aligned?</p>
  
  <p>I noticed using <code>_mm_load_ps</code> and <code>_mm_store_ps</code> to "wrap" a raw array adds a significant overhead.</p>
  
  <p>What are potential pitfalls I should be aware of?</p>
  
  <p><strong>EDIT :</strong></p>
  
  <p>There is actually no overhead in using the load and store instructions, I got some numbers mixed and that is why I got better performance. Even thou I was able to do some HORRENDOUS mangling with raw memory addresses in a <code>__m128</code> instance, when I ran the test it took TWICE AS LONG to complete without the <code>_mm_load_ps</code> instruction, probably falling back to some fail safe code path.</p>