This fixes the PR by not setting vect_nested_cycle on the latch def for nested cycles.
Bootstrapped and tested on x86_64-unknown-linux-gnu, applied. Richard. 2019-10-14 Richard Biener <rguent...@suse.de> PR tree-optimization/92069 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): For nested cycles do not set vect_nested_cycle on the latch definition. * gcc.dg/torture/pr92069.c: New testcase. Index: gcc/tree-vect-loop.c =================================================================== --- gcc/tree-vect-loop.c (revision 276950) +++ gcc/tree-vect-loop.c (working copy) @@ -584,7 +584,6 @@ vect_analyze_scalar_cycles_1 (loop_vec_i "Detected vectorizable nested cycle.\n"); STMT_VINFO_DEF_TYPE (stmt_vinfo) = vect_nested_cycle; - STMT_VINFO_DEF_TYPE (reduc_stmt_info) = vect_nested_cycle; } else { Index: gcc/testsuite/gcc.dg/torture/pr92069.c =================================================================== --- gcc/testsuite/gcc.dg/torture/pr92069.c (nonexistent) +++ gcc/testsuite/gcc.dg/torture/pr92069.c (working copy) @@ -0,0 +1,19 @@ +/* { dg-do compile } */ +/* { dg-additional-options "-ftree-vectorize" } */ + +unsigned int a, c, d; +double b; +void e() +{ + for (; d; d++) + { + double f; + a = 2; + for (; a; a++) + { + c = b; + b = f; + f = c; + } + } +}