https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70729
--- Comment #23 from Yuri Rumyantsev <ysrumyan at gmail dot com> --- OK. I will try to prepare the second part of patch. Few comments about vect-simd-clone-5.c test failure. 1. This loop is marked with safelen=MAX_INT. 2. It contains the following stmt's: D.3301 = foo.simdclone.1 (vect_vec_iv_.25_12, 123, _17); # VUSE <.MEM_39> _22 = MEM[(vector(2) long long int[2] *)&D.3301]; # VUSE <.MEM_39> _23 = MEM[(vector(2) long long int[2] *)&D.3301 + 16B]; # .MEM_40 = VDEF <.MEM_39> D.3301 ={v} {CLOBBER}; vect__3.28_24 = VEC_PACK_TRUNC_EXPR <_22, _23>; and fuction ref_indep_Loop_p_1 checks that references MEM[(vector(2) long long int[2] *)&D.3301] and MEM[(vector(2) long long int[2] *)&D.3301 + 16B] are independent. We can avoid such bad behavior of safelen-check (1) put restriction that loop does not contain non-analyzed references; (2) add additional check that reference does not have operands defined inside loop (D.3301 in our case). What approach is more profitable for you?