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.