title: How can I exchange the low 128 bits and high 128 bits in a 256 bit AVX (YMM) register
body: <p>I am porting SSE SIMD code to use the 256 bit AVX extensions and cannot seem to find any instruction that will blend/shuffle/move the high 128 bits and the low 128 bits.  </p>
  
  <p>The backing story:  </p>
  
  <p>What I really want is <code>VHADDPS</code>/<code>_mm256_hadd_ps</code> to act like <code>HADDPS</code>/<code>_mm_hadd_ps</code>, only with 256 bit words. Unfortunately, it acts like two calls to <code>HADDPS</code> acting independently on the low and high words.</p>