If I am not mistaken,
_mm_shuffle_pd(x, y, _MM_SHUFFLE2(0, 1));
and
_mm_move_sd(x, y);
And also _mm_blend_pd
in a later instruction set should all do the same thing.
But clang and gcc generate different instructions on sse2 godbolt. And they replace movps with blend if sse4.2 is avaliable godbolt
Is there a reason I should choose one over the other?