@@ -, +, @@ --- gcc/graphite-isl-ast-to-gimple.c | 7 +++++++ gcc/testsuite/gcc.dg/graphite/pr69068.c | 14 ++++++++++++++ 2 files changed, 21 insertions(+) --- a/gcc/graphite-isl-ast-to-gimple.c +++ a/gcc/graphite-isl-ast-to-gimple.c @@ -2725,6 +2725,13 @@ copy_bb_and_scalar_dependences (basic_block bb, edge next_e, vec iv_map) } else { + if (num_phis > 0 + && EDGE_COUNT (bb->preds) > 2) + { + codegen_error = true; + return NULL; + } + new_bb = split_edge (next_e); if (num_phis > 0 && bb_contains_loop_phi_nodes (bb)) { --- a/gcc/testsuite/gcc.dg/graphite/pr69068.c +++ a/gcc/testsuite/gcc.dg/graphite/pr69068.c @@ -0,0 +1,14 @@ +/* { dg-do compile } */ +/* { dg-options "-O1 -fgraphite-identity" } */ + +int qo; +int zh[2]; + +void +td (void) +{ + int ly, en; + for (ly = 0; ly < 2; ++ly) + for (en = 0; en < 2; ++en) + zh[en] = ((qo == 0) || (((qo * 2) != 0))) ? 1 : -1; +}