------- Comment #1 from liranuna at gmail dot com 2010-02-23 01:37 ------- It appears I am missing a line in the code I posted:
#include <xmmintrin.h> extern void printv(__m128 m); int main() { __m128 m = _mm_set_ps(1.0f, 2.0f, 3.0f, 4.0f); m = _mm_shuffle_ps(m, m, 0xC9); // Those two shuffles together swap pairs m = _mm_shuffle_ps(m, m, 0x2D); // And could be optimized to 0x4E printv(m); return 0; } -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43147