128 mul test, xfailed
[oota-llvm.git] / test / Transforms / GVNPRE / 2007-06-15-InvokeInst.ll
1 ; RUN: llvm-as < %s | opt -gvnpre | llvm-dis
2
3 @.str1 = external constant [4 x i8]             ; <[4 x i8]*> [#uses=1]
4 @.str2 = external constant [5 x i8]             ; <[5 x i8]*> [#uses=1]
5
6 define i32 @main(i32 %argc, i8** %argv) {
7 entry:
8         br i1 false, label %cond_next, label %cond_true
9
10 cond_true:              ; preds = %entry
11         ret i32 0
12
13 cond_next:              ; preds = %entry
14         %tmp10 = invoke i16 @_ZN12token_stream4openEPKc( i8* null, i8* null ) signext 
15                         to label %invcont unwind label %cleanup690              ; <i16> [#uses=0]
16
17 invcont:                ; preds = %cond_next
18         %tmp15 = invoke i32 (i8*, ...)* @printf( i8* getelementptr ([4 x i8]* @.str1, i32 0, i32 0) )
19                         to label %invcont14 unwind label %cleanup685            ; <i32> [#uses=0]
20
21 invcont14:              ; preds = %invcont
22         %tmp17 = invoke i8* @_ZN24lambda_expression_parser10expressionEPP11arglst_node( i8* null, i8** null )
23                         to label %cond_true22 unwind label %cleanup685
24
25 cond_true22:            ; preds = %invcont14
26         %tmp35 = invoke i32 null( i8* null )
27                         to label %cond_next56 unwind label %cleanup685          ; <i32> [#uses=0]
28
29 cond_next56:            ; preds = %cond_true22
30         %tmp59 = invoke i32 (i8*, ...)* @printf( i8* getelementptr ([5 x i8]* @.str2, i32 0, i32 0) )
31                         to label %invcont58 unwind label %cleanup685            ; <i32> [#uses=0]
32
33 invcont58:              ; preds = %cond_next56
34         invoke void null( i8* null, i8* null, i32 0 )
35                         to label %invcont72 unwind label %cleanup685
36
37 invcont72:              ; preds = %invcont58
38         %tmp143 = invoke i32 null( i8* null )
39                         to label %invcont142 unwind label %cleanup685           ; <i32> [#uses=0]
40
41 invcont142:             ; preds = %invcont72
42         br i1 false, label %cond_false407, label %cond_true150
43
44 cond_true150:           ; preds = %invcont142
45         ret i32 0
46
47 cond_false407:          ; preds = %invcont142
48         %tmp431 = invoke i8* null( i8* null, i8* null, i32 0, i32* null )
49                         to label %bb432 unwind label %cleanup685
50
51 bb432:          ; preds = %bb432, %cond_false407
52         %rexp413.7 = phi i8* [ %tmp431, %cond_false407 ], [ %rexp413.7, %bb432 ]
53         %tmp434 = icmp eq i8* %rexp413.7, null          ; <i1> [#uses=1]
54         br i1 %tmp434, label %bb432, label %cond_true437
55
56 cond_true437:           ; preds = %bb432
57         ret i32 0
58
59 cleanup685:             ; preds = %cond_false407, %invcont72, %invcont58, %cond_next56, %cond_true22, %invcont14, %invcont
60         ret i32 0
61
62 cleanup690:             ; preds = %cond_next
63         ret i32 0
64 }
65
66 declare i16 @_ZN12token_stream4openEPKc(i8*, i8*) signext 
67
68 declare i32 @printf(i8*, ...)
69
70 declare i8* @_ZN24lambda_expression_parser10expressionEPP11arglst_node(i8*, i8**)