https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116611
--- Comment #3 from Robin Dapp <rdapp at gcc dot gnu.org> --- Actually we're already supposed to be handling all constant permutes. Maybe what's in the way is /* FIXME: Explicitly disable VLA interleave SLP vectorization when we may encounter ICE for poly size (1, 1) vectors in loop vectorizer. Ideally, middle-end loop vectorizer should be able to disable it itself, We can remove the codes here when middle-end code is able to disable VLA SLP vectorization for poly size (1, 1) VF. */ if (!BYTES_PER_RISCV_VECTOR.is_constant () && maybe_lt (BYTES_PER_RISCV_VECTOR * TARGET_MAX_LMUL, poly_int64 (16, 16))) return false; which was introduced in r14-5917-g9f3f0b829b62f1. I'm running the testsuite to see if it's still a problem. If so, let's see if we can work around the issue differently.