The first patch makes SLP paths unreachable and the second one removes those entirely. The third patch does the actual strided-load work.
Bootstrapped and regtested on x86 and aarch64. Regtested on rv64gcv_zvl512b. Robin Dapp (3): vect: Make non-SLP paths unreachable in strided slp/elementwise. vect: Remove non-SLP paths in strided slp/elementwise. vect: Use strided loads for VMAT_STRIDED_SLP. gcc/internal-fn.cc | 21 ++ gcc/internal-fn.h | 2 + .../gcc.target/riscv/rvv/autovec/pr118019-2.c | 51 ++++ gcc/tree-vect-stmts.cc | 219 ++++++++++++++---- 4 files changed, 248 insertions(+), 45 deletions(-) create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/pr118019-2.c -- 2.49.0