https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91069
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED Assignee|unassigned at gcc dot gnu.org |rguenth at gcc dot gnu.org --- Comment #7 from Richard Biener <rguenth at gcc dot gnu.org> --- Testcase: typedef double v2df __attribute__((vector_size(16))); typedef long v2di __attribute__((vector_size(16))); void foo (v2df *res, v2df *src) { v2df x = *src; *res = __builtin_shuffle ((v2df) { 1.0, 0.0 }, x, (v2di) { 1, 3 }); } int main() { v2df x = (v2df) { 0.0, 2.0 }; foo (&x, &x); if (x[0] != 0.0 || x[1] != 2.0) __builtin_abort (); return 0; }