Renamed `as' => `llvm-as', `dis' => `llvm-dis'.
[oota-llvm.git] / test / Transforms / ADCE / adcetest.ll
1 ; This is the test case taken from Appel's book that illustrates a hard case
2 ; that SCCP gets right, and when followed by ADCE, is completely eliminated
3 ;
4 ; RUN: as < %s | opt -sccp -adce -simplifycfg | dis | not grep br
5
6 int "test function"(int %i0, int %j0) {
7 BB1:
8         br label %BB2
9 BB2:
10         %j2 = phi int [%j4, %BB7], [1, %BB1]
11         %k2 = phi int [%k4, %BB7], [0, %BB1]
12         %kcond = setlt int %k2, 100
13         br bool %kcond, label %BB3, label %BB4
14
15 BB3:
16         %jcond = setlt int %j2, 20
17         br bool %jcond, label %BB5, label %BB6
18
19 BB4:
20         ret int %j2
21
22 BB5:
23         %k3 = add int %k2, 1
24         br label %BB7
25
26 BB6:
27         %k5 = add int %k2, 1
28         br label %BB7
29
30 BB7:
31         %j4 = phi int [1, %BB5], [%k2, %BB6]
32         %k4 = phi int [%k3, %BB5], [%k5, %BB6]
33         br label %BB2
34 }