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; }