https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111794
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |missed-optimization
--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> ---
I'm failing to see the issue as with -march=rv64gcv I run into
t.c:4:8: missed: not vectorized: relevant stmt not supported: *x_50(D) = _6;
t.c:4:8: note: removing SLP instance operations starting from: *x_50(D) = _6;
t.c:4:8: missed: not vectorized: bad operation in basic block.
but just guessing, the issue is bool pattern recognition and
t.c:12:1: note: using normal nonmask vectors for _2 = _1 == 1;
t.c:12:1: note: using normal nonmask vectors for _4 = _3 == 2;
t.c:12:1: note: using normal nonmask vectors for _5 = _2 & _4;
...
? To vectorize you'd want to see
t.c:12:1: note: using boolean precision 32 for _2 = _1 == 1;
t.c:12:1: note: using boolean precision 16 for _4 = _3 == 2;
t.c:12:1: note: using boolean precision 16 for _5 = _2 & _4;
...
and a pattern used for the value use:
t.c:12:1: note: extra pattern stmt: patt_62 = _5 ? 1 : 0;
You need to see why this doesn't work (it's a very delicate area).