https://gcc.gnu.org/bugzilla/show_bug.cgi?id=128199
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Blocks| |53947
Status|UNCONFIRMED |NEW
Ever confirmed|0 |1
Last reconfirmed| |2026-10-27
--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
This is rejected due to costs:
t.c:17:23: note: ==> examining statement: _5 = *_4.f0;
t.c:17:23: missed: permutation requires at least three vectors _5 = *_4.f0;
t.c:17:23: missed: single-element interleaving not supported for not adjacent
vector loads, using elementwise access
t.c:17:23: missed: not falling back to elementwise accesses
t.c:19:34: missed: not vectorized: relevant stmt not supported: _5 = *_4.f0;
the elements are 64 bytes away so this is essentially a constant stride gather.
/* FIXME: At the moment the cost model seems to underestimate the
cost of using elementwise accesses. This check preserves the
traditional behavior until that can be fixed. */
if (*memory_access_type == VMAT_ELEMENTWISE
&& !STMT_VINFO_STRIDED_P (first_stmt_info)
&& !(STMT_VINFO_GROUPED_ACCESS (stmt_info)
&& single_element_p
&& !pow2p_hwi (group_size)))
{
if (dump_enabled_p ())
dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location,
"not falling back to elementwise accesses\n");
return false;
}
Referenced Bugs:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53947
[Bug 53947] [meta-bug] vectorizer missed-optimizations