https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116573

--- Comment #5 from Richard Biener <rguenth at gcc dot gnu.org> ---
(In reply to JuzheZhong from comment #4)
> So, If I am understanding correctly, it seems that Richard has change
> vectorizer that all auto-vectorization are represented as SLP instance ?

Yes.

> So the !slp is not the correct condition in this case.

Correct.

> It seems to change it into :
> 
> LOOP_VINFO_SLP_INSTANCES.size() == 1?

AFAIU a single control group means that all scalar elements have the same
size?  Having a single SLP instance does not guarantee this nor would
having multiple SLP instances mean we have multiple control groups.

Instead I would have expected we compute control groups correctly with SLP
and thus can check whether we have multiple or a single one.

As said, I have no idea why that !slp condition is there - it definitely
seems to be a premature early out for SLP that shouldn't be necessary. I
would expect that you added that because you either didn't want to think
about SLP or that there were bugs you didn't want to chase down?

I'll throw removing that condition on the CI - I think that's the correct
thing to do.  And of course properly constrain SELECT_VL where necessary
then, like it must be done for non-SLP operation already.

Reply via email to