https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112420
--- Comment #2 from JuzheZhong <juzhe.zhong at rivai dot ai> ---
(In reply to Richard Biener from comment #1)
> We end up using gathers for the strided load which would be OK and avoid the
> issue noted in the comment. Thus we get true from
> vect_use_strided_gather_scatters_p (). That has a comment guard:
>
> /* As a last resort, trying using a gather load or scatter store.
>
> ??? Although the code can handle all group sizes correctly,
> it probably isn't a win to use separate strided accesses based
> on nearby locations. Or, even if it's a win over scalar code,
> it might not be a win over vectorizing at a lower VF, if that
> allows us to use contiguous accesses. */
> if (*memory_access_type == VMAT_ELEMENTWISE
> && single_element_p
> && loop_vinfo
> && vect_use_strided_gather_scatters_p (stmt_info, loop_vinfo,
> masked_p, gs_info))
Thanks Richi.
So, do you mean I need to fix test to fix the FAIL?
Is this following reasonable ?
/* { dg-final { scan-tree-dump-times "vectorized 0 loops in function" 2 "vect"
target {! riscv*-*-* } } } */