]> git.ipfire.org Git - thirdparty/gcc.git/commit
Check nonlinear iv in vect_can_advance_ivs_p.
authorliuhongt <hongtao.liu@intel.com>
Wed, 28 Sep 2022 09:00:48 +0000 (17:00 +0800)
committerliuhongt <hongtao.liu@intel.com>
Thu, 29 Sep 2022 07:22:47 +0000 (15:22 +0800)
commitf758d447d7f4699253c9f8ee345ba9b8357cdb22
treeaa7628d98ba68a149c7cb9ebabdcfa94ed00ea99
parent9e79a25b66cb7e0ddbd1410ecc86cec25588d172
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.
gcc/testsuite/gcc.target/i386/pr107055.c [new file with mode: 0644]
gcc/tree-vect-loop-manip.cc
gcc/tree-vect-loop.cc
gcc/tree-vectorizer.h