ssef constructor question

ssef constructor question

Sory, don't undestand much SSE, but why this constructor was commented:

__forceinline ssef           ( float  a ) : m128(_mm_set1_ps(a)) {}

and now this one is used:

__forceinline ssef           ( const float&  a ) : m128(_mm_castsi128_ps(_mm_shuffle_epi32(_mm_castps_si128(_mm_load_ss(&a)), _MM_SHUFFLE(0, 0, 0, 0)))) {}

The other constructors are still using _mm_set_ps(). 

3 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

I think the commented out version should be the better choice, as it does not enforce reading the float from memory. 

Ok, thanks for clearing that out. The actual problem I had is that I must be able to pass also doubles there. And since I'm a SSE noob, I really don't like such exotic code there :). Will restore the old constructor with clear conscious now :).

Leave a Comment

Please sign in to add a comment. Not a member? Join today