]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/testsuite/gcc.dg/tree-ssa/ssa-thread-backedge.c
Fix profile update in tree_transform_and_unroll_loop
[thirdparty/gcc.git] / gcc / testsuite / gcc.dg / tree-ssa / ssa-thread-backedge.c
CommitLineData
f6d01233 1// { dg-do compile }
4b3a325f 2// { dg-options "-O2 -fdisable-tree-ethread -fdisable-tree-thread1 -fdisable-tree-thread2 -fno-tree-dominator-opts -fdump-tree-threadfull2-details" }
f6d01233
AH
3
4// Test that we can thread jumps across the backedge of a loop through
5// the switch statement to a particular case.
6//
7// Just in case, we disable all the jump threaders before loop
8// optimizations to make sure we get a clean stab at this.
9
10int foo (unsigned int x, int s)
11{
12 while (s != 999)
13 {
14 switch (s)
15 {
16 case 0:
17 if (x)
18 s = 1;
19 break;
20 case 1:
21 if (x)
22 s = 999;
23 break;
24 default:
25 break;
26 }
27 x++;
28 }
29 return s;
30}
31
4b3a325f 32// { dg-final { scan-tree-dump "Registering jump thread:.*normal \\(back\\)" "threadfull2" } }