https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54346
--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Here is example code which should produce the same code:
typedef int v4si __attribute__((vector_size (16)));
v4si
foo (v4si a, v4si b)
{
v4si c = __builtin_shuffle (a, b, __extension__ (v4si) {1, 4, 2, 7});
v4si d = __builtin_shuffle (c, __extension__ (v4si) { 3, 2, 0, 1 });
return d;
}
typedef int v4si __attribute__((vector_size (16)));
v4si
foo1 (v4si a, v4si b)
{
v4si c = __builtin_shuffle (a, b, __extension__ (v4si){ 7, 2, 1, 4 });
return c;
}