> For a strided grouped load, get_load_store_type can drop a permutation
> that selects a consecutive run of lanes and treat the run as the group,
> so VMAT_STRIDED_SLP loads it with a few wide loads instead of one scalar
> load per element.  has_consecutive_load_permutation also required the
> run length to divide the group size.  Once the subchain is taken the
> group size becomes the run length, and vectorizable_load's offset walk
> and gcd (group_size, nunits) depend only on that, so the requirement is
> not needed.

Hmm, I don't really recall why I added this condition in the first place 
(probably some leftover from its VMAT_STRIDED_SLP origin) but I think 
it's ok to relax it.  Alignment won't change as that is only dependent 
on the first element and I don't think we can cause new inefficiencies 
either by allowing odd-sized groups.

With opening the window further, though, I wonder whether it would start 
to make sense to fold the group gap into the stride and reduce the group 
size right away during DR analysis.  I think Richi noted that a long 
time ago.  Then we wouldn't need to work around it here.  But I don't 
think that should block this patch.

-- 
Regards
 Robin

Reply via email to