[Bug target/71467] extraneous stores emitted for __v8si with -mno-avx2
rguenth at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Thu Jun 9 08:32:00 GMT 2016
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 ***
More information about the Gcc-bugs
mailing list