https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121048
Robin Dapp <rdapp at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |rdapp at gcc dot gnu.org --- Comment #2 from Robin Dapp <rdapp at gcc dot gnu.org> --- Those zve32 tests often do single-element vectorization. In zve32f-1.c we don't vectorize void foo1 (int16_t *__restrict f, int32_t *__restrict d, int n) { for (int i = 0; i < n; ++i) { f[i * 2 + 0] = 1; f[i * 2 + 1] = 2; d[i] = 3; } } any more due to if (known_le (TYPE_VECTOR_SUBPARTS (stmt_vectype), 1U)) return opt_result::failure_at (STMT_VINFO_STMT (stmt_info), "not vectorized: unsupported " "data-type in %G", STMT_VINFO_STMT (stmt_info)); where we give up on the single-element store (but the load has two elements). Without having had a closer look, would we not only want to fail when all statements have known_le (..., 1U) rather than just one?