[Bug tree-optimization/66051] can't vectorize reductions inside an SLP group

rguenth at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Wed Dec 2 13:41:00 GMT 2015


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66051

--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
We now run itno

t.c:4:3: note: Build SLP failed: the number of interleaved loads is greater
than the SLP group size _15 = *_14;

which should be an irrelevant restriction in the form it makes (with only
considering gaps at the end of the group reducing the "number of interleaved
loads").  Whenever this condition triggers the load will be "permuted"
to be of proper size.

Indeed:

t.c:4:3: note: Load permutation 0 1 2 3 4 5 6 7
t.c:4:3: note: unsupported vect permute { 0 1 2 3 8 9 10 11 }
t.c:4:3: note: Build SLP failed: unsupported load permutation *_9 = _22;

which for some reason isn't supported by plain SSE2 while it should
simply able to use movlhps.


More information about the Gcc-bugs mailing list