https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107055
--- Comment #5 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by hongtao Liu <liuho...@gcc.gnu.org>: https://gcc.gnu.org/g:f758d447d7f4699253c9f8ee345ba9b8357cdb22 commit r13-2925-gf758d447d7f4699253c9f8ee345ba9b8357cdb22 Author: liuhongt <hongtao....@intel.com> Date: Wed Sep 28 17:00:48 2022 +0800 Check nonlinear iv in vect_can_advance_ivs_p. vectorizable_nonlinear_induction doesn't always guard vect_peel_nonlinear_iv_init when it's called by vect_update_ivs_after_vectorizer. It's supposed to be guarded by vect_can_advance_ivs_p. gcc/ChangeLog: PR tree-optimization/107055 * tree-vect-loop-manip.cc (vect_can_advance_ivs_p): Check for nonlinear induction variables. * tree-vect-loop.cc (vect_can_peel_nonlinear_iv_p): New functions. (vectorizable_nonlinear_induction): Put part codes into vect_can_peel_nonlinear_iv_p. * tree-vectorizer.h (vect_can_peel_nonlinear_iv_p): Declare. gcc/testsuite/ChangeLog: * gcc.target/i386/pr107055.c: New test.