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-92162-ICE-in-vect_create_epi.patch 53b15ca96116544a7a3ca8bc5f4e1649b74f3d45 diff -Nurp gcc-9.3.0_org/gcc/tree-vect-loop.c gcc-9.3.0/gcc/tree-vect-loop.c --- gcc-9.3.0_org/gcc/tree-vect-loop.c 2020-08-17 10:23:55.768000000 +0800 +++ gcc-9.3.0/gcc/tree-vect-loop.c 2020-08-17 10:27:15.848000000 +0800 @@ -4574,9 +4574,9 @@ vect_create_epilog_for_reduction (stmt_v (CCOMPARE). The then and else values mirror the main VEC_COND_EXPR: the reduction phi corresponds to NEW_PHI_TREE and the new values correspond to INDEX_BEFORE_INCR. */ - gcc_assert (STMT_VINFO_REDUC_IDX (stmt_info) >= 1); + gcc_assert (STMT_VINFO_REDUC_IDX (reduc_info) >= 1); tree index_cond_expr; - if (STMT_VINFO_REDUC_IDX (stmt_info) == 2) + if (STMT_VINFO_REDUC_IDX (reduc_info) == 2) index_cond_expr = build3 (VEC_COND_EXPR, cr_index_vector_type, ccompare, indx_before_incr, new_phi_tree); else diff -Nurp gcc-9.3.0_org/gcc/tree-vect-stmts.c gcc-9.3.0/gcc/tree-vect-stmts.c --- gcc-9.3.0_org/gcc/tree-vect-stmts.c 2020-08-17 10:23:53.960000000 +0800 +++ gcc-9.3.0/gcc/tree-vect-stmts.c 2020-08-17 10:27:15.848000000 +0800 @@ -9077,7 +9077,7 @@ vectorizable_condition (stmt_vec_info st return false; reduc_info = info_for_reduction (stmt_info); reduction_type = STMT_VINFO_REDUC_TYPE (reduc_info); - reduc_index = STMT_VINFO_REDUC_IDX (stmt_info); + reduc_index = STMT_VINFO_REDUC_IDX (reduc_info); gcc_assert (reduction_type != EXTRACT_LAST_REDUCTION || reduc_index != -1); }