https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83126
--- Comment #4 from Tom de Vries <vries at gcc dot gnu.org> --- (In reply to rguent...@suse.de from comment #3) > This is the usual "you should not repeat analysis during transform" issue. > The vectorizer gets around this by caching relevant scalar evolution > but obviously that's difficult if using generic stuff like > canonicalize_loop_ivs ... I wonder if it makes sense to add an interface to scalar_evolution_info to update the instantiated_below field for existing entries. So, before the loop versioning, the loop preheader is bb10, but after loop versioning, it's bb15. If we update the instantiated_below field from 10 to 15, the cached scalar evolution info can still be used.