[Bug middle-end/106081] missed vectorization
rguenth at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Mon Jun 27 10:38:35 GMT 2022
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106081
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |missed-optimization
CC| |rguenth at gcc dot gnu.org
Blocks| |53947
--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> ---
Might be a bit easier case than PR103999 since the accumulation is in 'double'
here. In fact it should already work, but we fail to SLP the reduction
because
t.c:14:24: missed: Build SLP failed: not grouped load _1 = *k_50;
and non-SLP as well:
t.c:14:24: note: ==> examining statement: _1 = *k_50;
t.c:14:24: missed: multiple types with negative step.
t.c:14:24: missed: not falling back to elementwise accesses
t.c:16:30: missed: not vectorized: relevant stmt not supported: _1 = *k_50;
t.c:14:24: missed: bad operation or unsupported loop bound.
changing k-- to k++ lets us vectorize the code but in an awkward way
(SLP still fails on us so we get interleaving).
So the first thing to fix is SLP of non-grouped loads where I think we also
have a bug for.
Referenced Bugs:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53947
[Bug 53947] [meta-bug] vectorizer missed-optimizations
More information about the Gcc-bugs
mailing list