3694bef
2019-01-18  Jakub Jelinek  <jakub@redhat.com>
3694bef
3694bef
	PR tree-optimization/88044
3694bef
	* tree-ssa-loop-niter.c (number_of_iterations_cond): If condition
3694bef
	is false in the first iteration, but !every_iteration, return false
3694bef
	instead of true with niter->niter zero.
3694bef
3694bef
--- gcc/tree-ssa-loop-niter.c.jj	2019-01-10 11:43:02.254577008 +0100
3694bef
+++ gcc/tree-ssa-loop-niter.c	2019-01-18 19:51:00.245504728 +0100
3694bef
@@ -1824,6 +1824,8 @@ number_of_iterations_cond (struct loop *
3694bef
   tree tem = fold_binary (code, boolean_type_node, iv0->base, iv1->base);
3694bef
   if (tem && integer_zerop (tem))
3694bef
     {
3694bef
+      if (!every_iteration)
3694bef
+	return false;
3694bef
       niter->niter = build_int_cst (unsigned_type_for (type), 0);
3694bef
       niter->max = 0;
3694bef
       return true;