Skip to content

Instantly share code, notes, and snippets.

@martin-steinegger
Created September 17, 2013 22:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save martin-steinegger/6601809 to your computer and use it in GitHub Desktop.
Save martin-steinegger/6601809 to your computer and use it in GitHub Desktop.
extract float from __m128 register with sse2
inline float get_first( const __m128 vec){return _mm_cvtss_f32(_mm_shuffle_ps(vec,vec, _MM_SHUFFLE2(0,0)));}
inline float get_second(const __m128 vec){return _mm_cvtss_f32(_mm_shuffle_ps(vec,vec, _MM_SHUFFLE2(0,1)));}
inline float get_third( const __m128 vec){return _mm_cvtss_f32(_mm_shuffle_ps(vec,vec, _MM_SHUFFLE2(1,0)));}
inline float get_fourth(const __m128 vec){return _mm_cvtss_f32(_mm_shuffle_ps(vec,vec, _MM_SHUFFLE2(1,1)));}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment