Fix InstCombine/2007-10-31-StringCrash.ll by removing an obvious
[oota-llvm.git] / test / Transforms / SCCP / 2006-10-23-IPSCCP-Crash.ll
1 ; RUN: llvm-upgrade < %s | llvm-as | opt -sccp -disable-output
2
3 target endian = big
4 target pointersize = 32
5 target triple = "powerpc-apple-darwin8.7.0"
6         %struct.pat_list = type { int, %struct.pat_list* }
7 %JUMP = external global int             ; <int*> [#uses=1]
8 %old_D_pat = external global [16 x ubyte]               ; <[16 x ubyte]*> [#uses=0]
9
10 implementation   ; Functions:
11
12 void %asearch1(uint %D) {
13 entry:
14         %tmp80 = setlt uint 0, %D               ; <bool> [#uses=1]
15         br bool %tmp80, label %bb647.preheader, label %cond_true81.preheader
16
17 cond_true81.preheader:          ; preds = %entry
18         ret void
19
20 bb647.preheader:                ; preds = %entry
21         %tmp3.i = call int %read( )             ; <int> [#uses=1]
22         %tmp6.i = add int %tmp3.i, 0            ; <int> [#uses=1]
23         %tmp653 = setgt int %tmp6.i, 0          ; <bool> [#uses=1]
24         br bool %tmp653, label %cond_true654, label %UnifiedReturnBlock
25
26 cond_true612:           ; preds = %cond_true654
27         ret void
28
29 cond_next624:           ; preds = %cond_true654
30         ret void
31
32 cond_true654:           ; preds = %bb647.preheader
33         br bool undef, label %cond_true612, label %cond_next624
34
35 UnifiedReturnBlock:             ; preds = %bb647.preheader
36         ret void
37 }
38
39 void %bitap(int %D) {
40 entry:
41         %tmp29 = seteq int 0, 0         ; <bool> [#uses=1]
42         br bool %tmp29, label %cond_next50, label %cond_next37
43
44 cond_next37:            ; preds = %entry
45         ret void
46
47 cond_next50:            ; preds = %entry
48         %tmp52 = setgt int %D, 0                ; <bool> [#uses=1]
49         br bool %tmp52, label %cond_true53, label %cond_next71
50
51 cond_true53:            ; preds = %cond_next50
52         %tmp54 = load int* %JUMP                ; <int> [#uses=1]
53         %tmp55 = seteq int %tmp54, 1            ; <bool> [#uses=1]
54         br bool %tmp55, label %cond_true56, label %cond_next63
55
56 cond_true56:            ; preds = %cond_true53
57         %tmp57 = cast int %D to uint            ; <uint> [#uses=1]
58         call void %asearch1( uint %tmp57 )
59         ret void
60
61 cond_next63:            ; preds = %cond_true53
62         ret void
63
64 cond_next71:            ; preds = %cond_next50
65         ret void
66 }
67
68 declare int %read()
69
70 void %initial_value() {
71 entry:
72         ret void
73 }
74
75 void %main() {
76 entry:
77         br label %cond_next252
78
79 cond_next208:           ; preds = %cond_true260
80         %tmp229 = call int %atoi( )             ; <int> [#uses=1]
81         br label %cond_next252
82
83 bb217:          ; preds = %cond_true260
84         ret void
85
86 cond_next252:           ; preds = %cond_next208, %entry
87         %D.0.0 = phi int [ 0, %entry ], [ %tmp229, %cond_next208 ]              ; <int> [#uses=1]
88         %tmp254 = getelementptr sbyte** null, int 1             ; <sbyte**> [#uses=1]
89         %tmp256 = load sbyte** %tmp254          ; <sbyte*> [#uses=1]
90         %tmp258 = load sbyte* %tmp256           ; <sbyte> [#uses=1]
91         %tmp259 = seteq sbyte %tmp258, 45               ; <bool> [#uses=1]
92         br bool %tmp259, label %cond_true260, label %bb263
93
94 cond_true260:           ; preds = %cond_next252
95         %tmp205818 = setgt sbyte 0, -1          ; <bool> [#uses=1]
96         br bool %tmp205818, label %cond_next208, label %bb217
97
98 bb263:          ; preds = %cond_next252
99         %tmp265 = seteq int 0, 0                ; <bool> [#uses=1]
100         br bool %tmp265, label %cond_next276, label %cond_true266
101
102 cond_true266:           ; preds = %bb263
103         ret void
104
105 cond_next276:           ; preds = %bb263
106         %tmp278 = seteq int 0, 0                ; <bool> [#uses=1]
107         br bool %tmp278, label %cond_next298, label %cond_true279
108
109 cond_true279:           ; preds = %cond_next276
110         ret void
111
112 cond_next298:           ; preds = %cond_next276
113         call void %bitap( int %D.0.0 )
114         ret void
115 }
116
117 declare int %atoi()
118
119 void %subset_pset() {
120 entry:
121         ret void
122 }
123
124 void %strcmp() {
125 entry:
126         ret void
127 }
128