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

Reply via email to