]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/testsuite/gcc.dg/tree-ssa/phi_on_compare-1.c
Fix profile updating bug in tree-ssa-threadupdate
[thirdparty/gcc.git] / gcc / testsuite / gcc.dg / tree-ssa / phi_on_compare-1.c
CommitLineData
1d53751d 1/* { dg-do compile } */
546bf79b 2/* { dg-options "-Ofast -fdump-tree-dom2 -fdump-tree-optimized-details-blocks" } */
1d53751d
JG
3
4void g (int);
5void g1 (int);
6
7void
8f (long a, long b, long c, long d, long x)
9{
10 _Bool t;
11 if (x)
12 {
13 g (a + 1);
14 t = a < b;
15 c = d + x;
16 }
17 else
18 {
19 g (b + 1);
20 a = c + d;
21 t = c > d;
22 }
23
24 if (t)
25 g1 (c);
26
27 g (a);
28}
29
4b3a325f
AH
30/* This is actually a regression. The backward threader cannot thread
31 the above scenario, but it is being caught by the DOM threader
32 which still uses the forward threader. We should implement this
33 optimization in the backward threader before killing the forward
34 threader. Similarly for the other phi_on_compare-*.c tests. */
35/* { dg-final { scan-tree-dump-times "Removing basic block" 1 "dom2" } } */
546bf79b 36/* { dg-final { scan-tree-dump-not "Invalid sum" "optimized" } } */