128 mul test, xfailed
[oota-llvm.git] / test / Transforms / GVNPRE / basic.ll
1 ; RUN: llvm-as < %s | opt -gvnpre | llvm-dis | not grep {%z3 =}
2 ; RUN: llvm-as < %s | opt -gvnpre | llvm-dis | not grep {%z9 =}
3
4 define i32 @main() {
5 block1:
6         %z1 = bitcast i32 0 to i32              ; <i32> [#uses=5]
7         br label %block2
8
9 block2:         ; preds = %block6, %block1
10         %z2 = phi i32 [ %z1, %block1 ], [ %z3, %block6 ]                ; <i32> [#uses=3]
11         %z3 = add i32 %z2, 1            ; <i32> [#uses=5]
12         br i1 false, label %block3, label %block7
13
14 block3:         ; preds = %block2
15         br i1 true, label %block4, label %block5
16
17 block4:         ; preds = %block3
18         %z4 = add i32 %z2, %z3          ; <i32> [#uses=1]
19         %z5 = bitcast i32 %z4 to i32            ; <i32> [#uses=1]
20         %z6 = add i32 %z1, %z5          ; <i32> [#uses=0]
21         br label %block6
22
23 block5:         ; preds = %block3
24         %z7 = add i32 %z3, 1            ; <i32> [#uses=1]
25         br label %block6
26
27 block6:         ; preds = %block5, %block4
28         %z8 = phi i32 [ %z1, %block4 ], [ %z7, %block5 ]                ; <i32> [#uses=1]
29         %z9 = add i32 %z2, %z3          ; <i32> [#uses=2]
30         %z10 = add i32 %z9, %z8         ; <i32> [#uses=0]
31         %z11 = bitcast i32 12 to i32            ; <i32> [#uses=1]
32         %z12 = add i32 %z9, %z11                ; <i32> [#uses=1]
33         %z13 = add i32 %z12, %z3                ; <i32> [#uses=0]
34         br label %block2
35
36 block7:         ; preds = %block2
37         ret i32 %z1
38 }