Make the llvm-runtest function much more amenable by eliminating all the
[oota-llvm.git] / test / Transforms / CorrelatedExprs / looptest.ll
1 ; This testcase tests to see if adds and PHI's are handled in their full 
2 ; generality.  This testcase comes from the following C code:
3 ;
4 ; void f() {
5 ;   int i;
6 ;   for (i = 1; i < 100; i++) {
7 ;     if (i)
8 ;       g();
9 ;   }
10 ; }
11 ;
12 ; Note that this is a "feature" test, not a correctness test.
13 ;
14 ; XFAIL: *
15 ; RUN: llvm-upgrade < %s | llvm-as | opt -cee -simplifycfg -disable-output &&
16 ; RUN: llvm-upgrade < %s | llvm-as | opt -cee -simplifycfg | llvm-dis | not grep cond213
17 ;
18 implementation   ; Functions:
19
20 declare void %g()
21
22 void %f() {
23 bb0:            ; No predecessors!
24         br label %bb2
25
26 bb2:            ; preds = %bb4, %bb0
27         %cann-indvar = phi int [ 0, %bb0 ], [ %add1-indvar, %bb4 ]              ; <int> [#uses=2]
28         %add1-indvar = add int %cann-indvar, 1          ; <int> [#uses=2]
29         %cond213 = seteq int %add1-indvar, 0            ; <bool> [#uses=1]
30         br bool %cond213, label %bb4, label %bb3
31
32 bb3:            ; preds = %bb2
33         call void %g( )
34         br label %bb4
35
36 bb4:            ; preds = %bb3, %bb2
37         %reg109 = add int %cann-indvar, 2               ; <int> [#uses=1]
38         %cond217 = setle int %reg109, 99                ; <bool> [#uses=1]
39         br bool %cond217, label %bb2, label %bb5
40
41 bb5:            ; preds = %bb4
42         ret void
43 }