I\'m playing around with SIMD and wonder why there is no analogon to _mm_cvtsd_f64 to extrat the higher order floating point from a __m128d.
GCC 4.6+ has an extensio
You can just use a union:
union { __m128d v; double a[2]; } U;
Assign your __m128d to U.v and read back U.a[0] or U.a[1]. Any decent compiler will optimise away redundant stores and loads.