(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
tree-ssa/
ssa-hoist-7.c
       1  /* { dg-options "-O2 -fdump-tree-pre-stats" } */
       2  
       3  void baz();
       4  int tem;
       5  void foo (int a, int b, int c, int d, int e, int x, int y, int z)
       6  {
       7    if (a)
       8      {
       9        if (b)
      10          {
      11            if (c)
      12              {
      13  	      if (d)
      14  		{
      15  		  if (e)
      16  		    {
      17  		      tem = x + y;
      18  		    }
      19  		  else
      20  		    {
      21  		      if (z) baz ();
      22  		      tem = x + y;
      23  		    }
      24  		}
      25  	      else
      26  		{
      27  		  if (z) baz ();
      28  		  tem = x + y;
      29  		}
      30  	    }
      31            else
      32              {
      33                if (z) baz ();
      34                tem = x + y;
      35              }
      36          }
      37        else
      38          {
      39            if (z) baz ();
      40            tem = x + y;
      41          }
      42      }
      43    else
      44      {
      45        if (z) baz ();
      46        tem = x + y;
      47      }
      48  }
      49  
      50  /* Now inserting x + y five times is unnecessary but the cascading
      51     cannot be avoided with the simple-minded dataflow.  But make sure
      52     we do not iterate PRE insertion.  */
      53  /* { dg-final { scan-tree-dump "insert iterations == 1" "pre" } } */
      54  /* { dg-final { scan-tree-dump "HOIST inserted: 5" "pre" } } */