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 ***

Reply via email to