https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115886
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Ever confirmed|0 |1 Status|UNCONFIRMED |NEW Last reconfirmed| |2024-07-12 --- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> --- wrt concat4 there's possibly also missed canonicalization on GIMPLE of a CTOR vs. permute. But it really depends on whether vec_init with vector components has better coverage than vec_perm with constant permute. Since vec_init can handle more than two sources it might feel that it's more canonical than vec_perm. OTOH we might choose to turn all two-component CTORs to permutes if supported. But on GIMPLE the "if supported" conditional comes in the way with CTORs having RTL expand fallback (bad one, via memory and guaranteed store-to-load forward issue) but permute not. So I'd lean towards CTORs for concat permutes.