https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113163
--- Comment #5 from Tobias Burnus <burnus at gcc dot gnu.org> --- While higher at the call stack: #3 0x000000000148714f in vect_transform_loop (loop_vinfo=loop_vinfo@entry=0x350f2a0, loop_vectorized_call=loop_vectorized_call@entry=0x0) at src/gcc-mainline/gcc/tree-vect-loop.cc:11911 11911 epilogue = vect_do_peeling (loop_vinfo, niters, nitersm1, &niters_vector, (gdb) p debug_tree(niters) <integer_cst 0x7ffff7bb2030 type <integer_type 0x7ffff7b5e3f0> constant 6> One level down: #2 0x0000000001498154 in vect_do_peeling (loop_vinfo=loop_vinfo@entry=0x350f2a0, niters=<optimized out>, niters@entry=0x7ffff7bb2030, nitersm1=nitersm1@entry=0x7ffff7bb2c78, niters_vector=niters_vector@entry=0x7fffffffda60, step_vector=step_vector@entry=0x7fffffffda68, niters_vector_mult_vf_var=niters_vector_mult_vf_var@entry=0x7fffffffda70, th=<optimized out>, check_profitability=<optimized out>, niters_no_overflow=<optimized out>, advance=<optimized out>) at src/gcc-mainline/gcc/tree-vect-loop-manip.cc:3399 3399 vect_update_ivs_after_vectorizer (loop_vinfo, niters_vector_mult_vf, where niters_vector_mult_vf is ssa_name that fails in the assert. The variable seems to be generated a few lines up in the same function (line 3375 and following): if (!integer_onep (*step_vector)) { /* On exit from the loop we will have an easy way of calcalating NITERS_VECTOR / STEP * STEP. Install a dummy definition until then. */ niters_vector_mult_vf = make_ssa_name (TREE_TYPE (*niters_vector)); SSA_NAME_DEF_STMT (niters_vector_mult_vf) = gimple_build_nop (); *niters_vector_mult_vf_var = niters_vector_mult_vf; } else vect_gen_vector_loop_niters_mult_vf (loop_vinfo, *niters_vector, &niters_vector_mult_vf);