http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43225

--- Comment #4 from Alexander Strange <astrange at ithinksw dot com> 2011-03-29 
20:39:28 UTC ---
Better source:

#include <emmintrin.h>

struct a1 { char l[16];} __attribute__((aligned));
struct a2 { __m128i l; } __attribute__((aligned));

void f1(struct a1 *a, struct a1 *b)
{
    *a = *b;
}

void f2(struct a2 *a, struct a2 *b)
{
    *a = *b;
}

void f3(__m128i *a, __m128i *b)
{
    *a = *b;
}

Code is the same as above in svn. LLVM uses movaps for all three functions.

Reply via email to