This backport contains 1 patch from gcc main stream tree. The commit id of these patchs list as following in the order of time. 0001-re-PR-tree-optimization-92461-ICE-verify_ssa-failed-.patch 830d1b18526dd1f085e8a2e1467a6dde18fc6434 diff -Nurp a/gcc/testsuite/gcc.dg/torture/pr92461.c b/gcc/testsuite/gcc.dg/torture/pr92461.c --- a/gcc/testsuite/gcc.dg/torture/pr92461.c 1970-01-01 08:00:00.000000000 +0800 +++ b/gcc/testsuite/gcc.dg/torture/pr92461.c 2020-07-28 19:48:09.324000000 +0800 @@ -0,0 +1,20 @@ +/* { dg-do compile } */ +/* { dg-additional-options "-ftree-vectorize" } */ + +short int zb; + +void +gs (void) +{ + while (zb < 1) + { + int at; + + zb %= 1; + + for (at = 0; at < 56; ++at) + zb += zb; + + ++zb; + } +} diff -Nurp a/gcc/tree-vect-loop.c b/gcc/tree-vect-loop.c --- a/gcc/tree-vect-loop.c 2020-07-28 19:47:53.896000000 +0800 +++ b/gcc/tree-vect-loop.c 2020-07-28 19:48:09.324000000 +0800 @@ -5459,8 +5459,11 @@ vect_create_epilog_for_reduction (stmt_v orig_name = PHI_RESULT (exit_phi); scalar_result = scalar_results[k]; FOR_EACH_IMM_USE_STMT (use_stmt, imm_iter, orig_name) - FOR_EACH_IMM_USE_ON_STMT (use_p, imm_iter) - SET_USE (use_p, scalar_result); + { + FOR_EACH_IMM_USE_ON_STMT (use_p, imm_iter) + SET_USE (use_p, scalar_result); + update_stmt (use_stmt); + } } phis.release ();