(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
tree-ssa/
vrp06.c
       1  /* { dg-do compile } */
       2  /* { dg-options "-O2 -fdisable-tree-evrp -fdump-tree-vrp1 -fno-thread-jumps" } */
       3  
       4  int baz (void);
       5  
       6  int
       7  foo (int i, int j, int a)
       8  {
       9    if (i >= 10)
      10      if (i <= 30)
      11        if (i == j)
      12  	{
      13  	  a--;
      14  
      15  	  /* This should fold to 'if (0)'.  */
      16  	  if (i < 0)
      17  	    i = baz ();
      18  
      19  	  /* This should fold to 'if (1)'.  */
      20  	  if (j > 0)
      21  	    a--;
      22  
      23  	  /* This should fold to 'if (0)'.  */
      24  	  if (i != j)
      25  	    return 0;
      26  	}
      27  
      28    return i + a + j;
      29  }
      30  
      31  /* { dg-final { scan-tree-dump-times "Folding predicate \[i|j\]_\[0-9\]+.*0 to 0" 1 "vrp1" } } */
      32  /* { dg-final { scan-tree-dump-times "Folding predicate \[i|j\]_\[0-9\]+.*0 to 1" 1 "vrp1" } } */
      33  /* { dg-final { scan-tree-dump-times "Folding predicate i_\[0-9]+.*j_\[0-9\]+.* to 0" 1 "vrp1" { xfail *-*-* } } } */