(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
pr43864-4.c
       1  /* { dg-do compile } */
       2  /* { dg-options "-O2 -ftree-tail-merge -fdump-tree-pre" } */
       3  
       4  /* Different stmt order.  */
       5  
       6  int f(int c, int b, int d)
       7  {
       8    int r, r2, e;
       9  
      10    if (c)
      11      {
      12        r = b + d;
      13        r2 = d - b;
      14      }
      15    else
      16      {
      17        r2 = d - b;
      18        e = d + b;
      19        r = e;
      20      }
      21  
      22    return r - r2;
      23  }
      24  
      25  /* During PRE elimination we should simplify this to return b * 2.  */
      26  /* { dg-final { scan-tree-dump-times "if " 0 "pre" } } */
      27  /* { dg-final { scan-tree-dump "_\[0-9\]+ = b_\[0-9\]+\\(D\\) \\* 2;\[\\r\\n\]\[^\\r\\n\]*return _\[0-9\]+;" "pre" } } */
      28  /* { dg-final { scan-tree-dump-not "Invalid sum" "pre"} } */