https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71467
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution|--- |DUPLICATE --- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> --- This is essentially the same issue as the vector-from-vector construction case in PR65832. Both the vectorizer and vector lowering generate code like vector(8) int _2; vector(4) int _7; vector(4) int _9; _7 = _6 << 1; ... _9 = _8 << 1; _2 = {_7, _9}; but this vector construction is not handled in a target specific way during RTL expansion but instead is expanded as building the vector by pieces on the stack and then loading the destination vector from there. This also causes store-forwarding failure due to the stores being smaller than the subsequent load which has a quite bad performance impact. *** This bug has been marked as a duplicate of bug 65832 ***