annotate llvm/test/Transforms/GVN/2007-07-31-NoDomInherit.ll @ 150:1d019706d866

LLVM10
author anatofuz
date Thu, 13 Feb 2020 15:10:13 +0900
parents
children 2e18cbf3894f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
150
anatofuz
parents:
diff changeset
1 ; RUN: opt < %s -basicaa -gvn -S | FileCheck %s
anatofuz
parents:
diff changeset
2
anatofuz
parents:
diff changeset
3 %struct.anon = type { i32 (i32, i32, i32)*, i32, i32, [3 x i32], i8*, i8*, i8* }
anatofuz
parents:
diff changeset
4 @debug = external constant i32 ; <i32*> [#uses=0]
anatofuz
parents:
diff changeset
5 @counters = external constant i32 ; <i32*> [#uses=1]
anatofuz
parents:
diff changeset
6 @trialx = external global [17 x i32] ; <[17 x i32]*> [#uses=1]
anatofuz
parents:
diff changeset
7 @dummy1 = external global [7 x i32] ; <[7 x i32]*> [#uses=0]
anatofuz
parents:
diff changeset
8 @dummy2 = external global [4 x i32] ; <[4 x i32]*> [#uses=0]
anatofuz
parents:
diff changeset
9 @unacceptable = external global i32 ; <i32*> [#uses=0]
anatofuz
parents:
diff changeset
10 @isa = external global [13 x %struct.anon] ; <[13 x %struct.anon]*> [#uses=3]
anatofuz
parents:
diff changeset
11 @.str = external constant [4 x i8] ; <[4 x i8]*> [#uses=0]
anatofuz
parents:
diff changeset
12 @.str1 = external constant [3 x i8] ; <[3 x i8]*> [#uses=0]
anatofuz
parents:
diff changeset
13 @.str2 = external constant [1 x i8] ; <[1 x i8]*> [#uses=0]
anatofuz
parents:
diff changeset
14 @.str3 = external constant [4 x i8] ; <[4 x i8]*> [#uses=0]
anatofuz
parents:
diff changeset
15 @.str4 = external constant [3 x i8] ; <[3 x i8]*> [#uses=0]
anatofuz
parents:
diff changeset
16 @.str5 = external constant [4 x i8] ; <[4 x i8]*> [#uses=0]
anatofuz
parents:
diff changeset
17 @.str6 = external constant [2 x i8] ; <[2 x i8]*> [#uses=0]
anatofuz
parents:
diff changeset
18 @.str7 = external constant [4 x i8] ; <[4 x i8]*> [#uses=0]
anatofuz
parents:
diff changeset
19 @.str8 = external constant [4 x i8] ; <[4 x i8]*> [#uses=0]
anatofuz
parents:
diff changeset
20 @.str9 = external constant [4 x i8] ; <[4 x i8]*> [#uses=0]
anatofuz
parents:
diff changeset
21 @.str10 = external constant [4 x i8] ; <[4 x i8]*> [#uses=0]
anatofuz
parents:
diff changeset
22 @.str11 = external constant [2 x i8] ; <[2 x i8]*> [#uses=0]
anatofuz
parents:
diff changeset
23 @.str12 = external constant [4 x i8] ; <[4 x i8]*> [#uses=0]
anatofuz
parents:
diff changeset
24 @.str13 = external constant [2 x i8] ; <[2 x i8]*> [#uses=0]
anatofuz
parents:
diff changeset
25 @.str14 = external constant [5 x i8] ; <[5 x i8]*> [#uses=0]
anatofuz
parents:
diff changeset
26 @.str15 = external constant [5 x i8] ; <[5 x i8]*> [#uses=0]
anatofuz
parents:
diff changeset
27 @.str16 = external constant [4 x i8] ; <[4 x i8]*> [#uses=0]
anatofuz
parents:
diff changeset
28 @.str17 = external constant [4 x i8] ; <[4 x i8]*> [#uses=0]
anatofuz
parents:
diff changeset
29 @.str18 = external constant [3 x i8] ; <[3 x i8]*> [#uses=0]
anatofuz
parents:
diff changeset
30 @.str19 = external constant [4 x i8] ; <[4 x i8]*> [#uses=0]
anatofuz
parents:
diff changeset
31 @.str20 = external constant [4 x i8] ; <[4 x i8]*> [#uses=0]
anatofuz
parents:
diff changeset
32 @.str21 = external constant [4 x i8] ; <[4 x i8]*> [#uses=0]
anatofuz
parents:
diff changeset
33 @.str22 = external constant [4 x i8] ; <[4 x i8]*> [#uses=0]
anatofuz
parents:
diff changeset
34 @.str23 = external constant [5 x i8] ; <[5 x i8]*> [#uses=0]
anatofuz
parents:
diff changeset
35 @.str24 = external constant [4 x i8] ; <[4 x i8]*> [#uses=0]
anatofuz
parents:
diff changeset
36 @.str25 = external constant [6 x i8] ; <[6 x i8]*> [#uses=0]
anatofuz
parents:
diff changeset
37 @.str26 = external constant [5 x i8] ; <[5 x i8]*> [#uses=0]
anatofuz
parents:
diff changeset
38 @.str27 = external constant [6 x i8] ; <[6 x i8]*> [#uses=0]
anatofuz
parents:
diff changeset
39 @r = external global [17 x i32] ; <[17 x i32]*> [#uses=0]
anatofuz
parents:
diff changeset
40 @.str28 = external constant [3 x i8] ; <[3 x i8]*> [#uses=0]
anatofuz
parents:
diff changeset
41 @.str29 = external constant [5 x i8] ; <[5 x i8]*> [#uses=0]
anatofuz
parents:
diff changeset
42 @pgm = external global [5 x { i32, [3 x i32] }] ; <[5 x { i32, [3 x i32] }]*> [#uses=4]
anatofuz
parents:
diff changeset
43 @.str30 = external constant [3 x i8] ; <[3 x i8]*> [#uses=0]
anatofuz
parents:
diff changeset
44 @.str31 = external constant [13 x i8] ; <[13 x i8]*> [#uses=0]
anatofuz
parents:
diff changeset
45 @.str32 = external constant [3 x i8] ; <[3 x i8]*> [#uses=0]
anatofuz
parents:
diff changeset
46 @.str33 = external constant [4 x i8] ; <[4 x i8]*> [#uses=0]
anatofuz
parents:
diff changeset
47 @.str34 = external constant [20 x i8] ; <[20 x i8]*> [#uses=0]
anatofuz
parents:
diff changeset
48 @numi = external global i32 ; <i32*> [#uses=7]
anatofuz
parents:
diff changeset
49 @.str35 = external constant [10 x i8] ; <[10 x i8]*> [#uses=0]
anatofuz
parents:
diff changeset
50 @counter = external global [5 x i32] ; <[5 x i32]*> [#uses=2]
anatofuz
parents:
diff changeset
51 @itrialx.2510 = external global i32 ; <i32*> [#uses=0]
anatofuz
parents:
diff changeset
52 @.str36 = external constant [43 x i8] ; <[43 x i8]*> [#uses=0]
anatofuz
parents:
diff changeset
53 @.str37 = external constant [42 x i8] ; <[42 x i8]*> [#uses=0]
anatofuz
parents:
diff changeset
54 @corr_result = external global i32 ; <i32*> [#uses=0]
anatofuz
parents:
diff changeset
55 @.str38 = external constant [3 x i8] ; <[3 x i8]*> [#uses=0]
anatofuz
parents:
diff changeset
56 @.str39 = external constant [5 x i8] ; <[5 x i8]*> [#uses=0]
anatofuz
parents:
diff changeset
57 @.str40 = external constant [47 x i8] ; <[47 x i8]*> [#uses=0]
anatofuz
parents:
diff changeset
58 @correct_result = external global [17 x i32] ; <[17 x i32]*> [#uses=1]
anatofuz
parents:
diff changeset
59 @.str41 = external constant [46 x i8] ; <[46 x i8]*> [#uses=0]
anatofuz
parents:
diff changeset
60 @.str42 = external constant [32 x i8] ; <[32 x i8]*> [#uses=0]
anatofuz
parents:
diff changeset
61 @.str43 = external constant [44 x i8] ; <[44 x i8]*> [#uses=1]
anatofuz
parents:
diff changeset
62 @.str44 = external constant [21 x i8] ; <[21 x i8]*> [#uses=1]
anatofuz
parents:
diff changeset
63 @.str45 = external constant [12 x i8] ; <[12 x i8]*> [#uses=1]
anatofuz
parents:
diff changeset
64 @.str46 = external constant [5 x i8] ; <[5 x i8]*> [#uses=1]
anatofuz
parents:
diff changeset
65 @.str47 = external constant [12 x i8] ; <[12 x i8]*> [#uses=1]
anatofuz
parents:
diff changeset
66
anatofuz
parents:
diff changeset
67 declare i32 @neg(i32, i32, i32)
anatofuz
parents:
diff changeset
68
anatofuz
parents:
diff changeset
69 declare i32 @Not(i32, i32, i32)
anatofuz
parents:
diff changeset
70
anatofuz
parents:
diff changeset
71 declare i32 @pop(i32, i32, i32)
anatofuz
parents:
diff changeset
72
anatofuz
parents:
diff changeset
73 declare i32 @nlz(i32, i32, i32)
anatofuz
parents:
diff changeset
74
anatofuz
parents:
diff changeset
75 declare i32 @rev(i32, i32, i32)
anatofuz
parents:
diff changeset
76
anatofuz
parents:
diff changeset
77 declare i32 @add(i32, i32, i32)
anatofuz
parents:
diff changeset
78
anatofuz
parents:
diff changeset
79 declare i32 @sub(i32, i32, i32)
anatofuz
parents:
diff changeset
80
anatofuz
parents:
diff changeset
81 declare i32 @mul(i32, i32, i32)
anatofuz
parents:
diff changeset
82
anatofuz
parents:
diff changeset
83 declare i32 @divide(i32, i32, i32)
anatofuz
parents:
diff changeset
84
anatofuz
parents:
diff changeset
85 declare i32 @divu(i32, i32, i32)
anatofuz
parents:
diff changeset
86
anatofuz
parents:
diff changeset
87 declare i32 @And(i32, i32, i32)
anatofuz
parents:
diff changeset
88
anatofuz
parents:
diff changeset
89 declare i32 @Or(i32, i32, i32)
anatofuz
parents:
diff changeset
90
anatofuz
parents:
diff changeset
91 declare i32 @Xor(i32, i32, i32)
anatofuz
parents:
diff changeset
92
anatofuz
parents:
diff changeset
93 declare i32 @rotl(i32, i32, i32)
anatofuz
parents:
diff changeset
94
anatofuz
parents:
diff changeset
95 declare i32 @shl(i32, i32, i32)
anatofuz
parents:
diff changeset
96
anatofuz
parents:
diff changeset
97 declare i32 @shr(i32, i32, i32)
anatofuz
parents:
diff changeset
98
anatofuz
parents:
diff changeset
99 declare i32 @shrs(i32, i32, i32)
anatofuz
parents:
diff changeset
100
anatofuz
parents:
diff changeset
101 declare i32 @cmpeq(i32, i32, i32)
anatofuz
parents:
diff changeset
102
anatofuz
parents:
diff changeset
103 declare i32 @cmplt(i32, i32, i32)
anatofuz
parents:
diff changeset
104
anatofuz
parents:
diff changeset
105 declare i32 @cmpltu(i32, i32, i32)
anatofuz
parents:
diff changeset
106
anatofuz
parents:
diff changeset
107 declare i32 @seleq(i32, i32, i32)
anatofuz
parents:
diff changeset
108
anatofuz
parents:
diff changeset
109 declare i32 @sellt(i32, i32, i32)
anatofuz
parents:
diff changeset
110
anatofuz
parents:
diff changeset
111 declare i32 @selle(i32, i32, i32)
anatofuz
parents:
diff changeset
112
anatofuz
parents:
diff changeset
113 declare void @print_expr(i32)
anatofuz
parents:
diff changeset
114
anatofuz
parents:
diff changeset
115 declare i32 @printf(i8*, ...)
anatofuz
parents:
diff changeset
116
anatofuz
parents:
diff changeset
117 declare i32 @putchar(i32)
anatofuz
parents:
diff changeset
118
anatofuz
parents:
diff changeset
119 declare void @print_pgm()
anatofuz
parents:
diff changeset
120
anatofuz
parents:
diff changeset
121 declare void @simulate_one_instruction(i32)
anatofuz
parents:
diff changeset
122
anatofuz
parents:
diff changeset
123 declare i32 @check(i32)
anatofuz
parents:
diff changeset
124
anatofuz
parents:
diff changeset
125 declare i32 @puts(i8*)
anatofuz
parents:
diff changeset
126
anatofuz
parents:
diff changeset
127 declare void @fix_operands(i32)
anatofuz
parents:
diff changeset
128
anatofuz
parents:
diff changeset
129 declare void @abort()
anatofuz
parents:
diff changeset
130
anatofuz
parents:
diff changeset
131 declare i32 @increment()
anatofuz
parents:
diff changeset
132
anatofuz
parents:
diff changeset
133 declare i32 @search()
anatofuz
parents:
diff changeset
134
anatofuz
parents:
diff changeset
135 define i32 @main(i32 %argc, i8** %argv) {
anatofuz
parents:
diff changeset
136 entry:
anatofuz
parents:
diff changeset
137 %argc_addr = alloca i32 ; <i32*> [#uses=1]
anatofuz
parents:
diff changeset
138 %argv_addr = alloca i8** ; <i8***> [#uses=1]
anatofuz
parents:
diff changeset
139 %retval = alloca i32, align 4 ; <i32*> [#uses=2]
anatofuz
parents:
diff changeset
140 %tmp = alloca i32, align 4 ; <i32*> [#uses=2]
anatofuz
parents:
diff changeset
141 %i = alloca i32, align 4 ; <i32*> [#uses=21]
anatofuz
parents:
diff changeset
142 %num_sol = alloca i32, align 4 ; <i32*> [#uses=4]
anatofuz
parents:
diff changeset
143 %total = alloca i32, align 4 ; <i32*> [#uses=4]
anatofuz
parents:
diff changeset
144 %"alloca point" = bitcast i32 0 to i32 ; <i32> [#uses=0]
anatofuz
parents:
diff changeset
145 store i32 %argc, i32* %argc_addr
anatofuz
parents:
diff changeset
146 store i8** %argv, i8*** %argv_addr
anatofuz
parents:
diff changeset
147 store i32 0, i32* %num_sol
anatofuz
parents:
diff changeset
148 store i32 1, i32* @numi
anatofuz
parents:
diff changeset
149 br label %bb91
anatofuz
parents:
diff changeset
150
anatofuz
parents:
diff changeset
151 bb: ; preds = %cond_next97
anatofuz
parents:
diff changeset
152 %tmp1 = load i32, i32* @numi ; <i32> [#uses=1]
anatofuz
parents:
diff changeset
153 %tmp2 = getelementptr [44 x i8], [44 x i8]* @.str43, i32 0, i32 0 ; <i8*> [#uses=1]
anatofuz
parents:
diff changeset
154 %tmp3 = call i32 (i8*, ...) @printf( i8* %tmp2, i32 %tmp1 ) ; <i32> [#uses=0]
anatofuz
parents:
diff changeset
155 store i32 0, i32* %i
anatofuz
parents:
diff changeset
156 br label %bb13
anatofuz
parents:
diff changeset
157
anatofuz
parents:
diff changeset
158 bb4: ; preds = %bb13
anatofuz
parents:
diff changeset
159 %tmp5 = load i32, i32* %i ; <i32> [#uses=1]
anatofuz
parents:
diff changeset
160 %tmp6 = load i32, i32* %i ; <i32> [#uses=1]
anatofuz
parents:
diff changeset
161 %tmp7 = getelementptr [17 x i32], [17 x i32]* @trialx, i32 0, i32 %tmp6 ; <i32*> [#uses=1]
anatofuz
parents:
diff changeset
162 %tmp8 = load i32, i32* %tmp7 ; <i32> [#uses=1]
anatofuz
parents:
diff changeset
163 %tmp9 = call i32 @userfun( i32 %tmp8 ) ; <i32> [#uses=1]
anatofuz
parents:
diff changeset
164 %tmp10 = getelementptr [17 x i32], [17 x i32]* @correct_result, i32 0, i32 %tmp5 ; <i32*> [#uses=1]
anatofuz
parents:
diff changeset
165 store i32 %tmp9, i32* %tmp10
anatofuz
parents:
diff changeset
166 %tmp11 = load i32, i32* %i ; <i32> [#uses=1]
anatofuz
parents:
diff changeset
167 %tmp12 = add i32 %tmp11, 1 ; <i32> [#uses=1]
anatofuz
parents:
diff changeset
168 store i32 %tmp12, i32* %i
anatofuz
parents:
diff changeset
169 br label %bb13
anatofuz
parents:
diff changeset
170
anatofuz
parents:
diff changeset
171 bb13: ; preds = %bb4, %bb
anatofuz
parents:
diff changeset
172 %tmp14 = load i32, i32* %i ; <i32> [#uses=1]
anatofuz
parents:
diff changeset
173 %tmp15 = icmp sle i32 %tmp14, 16 ; <i1> [#uses=1]
anatofuz
parents:
diff changeset
174 %tmp1516 = zext i1 %tmp15 to i32 ; <i32> [#uses=1]
anatofuz
parents:
diff changeset
175 %toBool = icmp ne i32 %tmp1516, 0 ; <i1> [#uses=1]
anatofuz
parents:
diff changeset
176 br i1 %toBool, label %bb4, label %bb17
anatofuz
parents:
diff changeset
177
anatofuz
parents:
diff changeset
178 bb17: ; preds = %bb13
anatofuz
parents:
diff changeset
179 store i32 0, i32* %i
anatofuz
parents:
diff changeset
180 br label %bb49
anatofuz
parents:
diff changeset
181
anatofuz
parents:
diff changeset
182 bb18: ; preds = %bb49
anatofuz
parents:
diff changeset
183 %tmp19 = load i32, i32* %i ; <i32> [#uses=1]
anatofuz
parents:
diff changeset
184 %tmp20 = getelementptr [5 x { i32, [3 x i32] }], [5 x { i32, [3 x i32] }]* @pgm, i32 0, i32 %tmp19 ; <{ i32, [3 x i32] }*> [#uses=1]
anatofuz
parents:
diff changeset
185 %tmp21 = getelementptr { i32, [3 x i32] }, { i32, [3 x i32] }* %tmp20, i32 0, i32 0 ; <i32*> [#uses=1]
anatofuz
parents:
diff changeset
186 store i32 0, i32* %tmp21
anatofuz
parents:
diff changeset
187 %tmp22 = load i32, i32* %i ; <i32> [#uses=1]
anatofuz
parents:
diff changeset
188 %tmp23 = getelementptr [13 x %struct.anon], [13 x %struct.anon]* @isa, i32 0, i32 0 ; <%struct.anon*> [#uses=1]
anatofuz
parents:
diff changeset
189 %tmp24 = getelementptr %struct.anon, %struct.anon* %tmp23, i32 0, i32 3 ; <[3 x i32]*> [#uses=1]
anatofuz
parents:
diff changeset
190 %tmp25 = getelementptr [3 x i32], [3 x i32]* %tmp24, i32 0, i32 0 ; <i32*> [#uses=1]
anatofuz
parents:
diff changeset
191 %tmp26 = load i32, i32* %tmp25 ; <i32> [#uses=1]
anatofuz
parents:
diff changeset
192 %tmp27 = getelementptr [5 x { i32, [3 x i32] }], [5 x { i32, [3 x i32] }]* @pgm, i32 0, i32 %tmp22 ; <{ i32, [3 x i32] }*> [#uses=1]
anatofuz
parents:
diff changeset
193 %tmp28 = getelementptr { i32, [3 x i32] }, { i32, [3 x i32] }* %tmp27, i32 0, i32 1 ; <[3 x i32]*> [#uses=1]
anatofuz
parents:
diff changeset
194 %tmp29 = getelementptr [3 x i32], [3 x i32]* %tmp28, i32 0, i32 0 ; <i32*> [#uses=1]
anatofuz
parents:
diff changeset
195 store i32 %tmp26, i32* %tmp29
anatofuz
parents:
diff changeset
196 %tmp30 = load i32, i32* %i ; <i32> [#uses=1]
anatofuz
parents:
diff changeset
197 %tmp31 = getelementptr [13 x %struct.anon], [13 x %struct.anon]* @isa, i32 0, i32 0 ; <%struct.anon*> [#uses=1]
anatofuz
parents:
diff changeset
198 %tmp32 = getelementptr %struct.anon, %struct.anon* %tmp31, i32 0, i32 3 ; <[3 x i32]*> [#uses=1]
anatofuz
parents:
diff changeset
199 %tmp33 = getelementptr [3 x i32], [3 x i32]* %tmp32, i32 0, i32 1 ; <i32*> [#uses=1]
anatofuz
parents:
diff changeset
200 %tmp34 = load i32, i32* %tmp33 ; <i32> [#uses=1]
anatofuz
parents:
diff changeset
201 %tmp35 = getelementptr [5 x { i32, [3 x i32] }], [5 x { i32, [3 x i32] }]* @pgm, i32 0, i32 %tmp30 ; <{ i32, [3 x i32] }*> [#uses=1]
anatofuz
parents:
diff changeset
202 %tmp36 = getelementptr { i32, [3 x i32] }, { i32, [3 x i32] }* %tmp35, i32 0, i32 1 ; <[3 x i32]*> [#uses=1]
anatofuz
parents:
diff changeset
203 %tmp37 = getelementptr [3 x i32], [3 x i32]* %tmp36, i32 0, i32 1 ; <i32*> [#uses=1]
anatofuz
parents:
diff changeset
204 store i32 %tmp34, i32* %tmp37
anatofuz
parents:
diff changeset
205 %tmp38 = load i32, i32* %i ; <i32> [#uses=1]
anatofuz
parents:
diff changeset
206 %tmp39 = getelementptr [13 x %struct.anon], [13 x %struct.anon]* @isa, i32 0, i32 0 ; <%struct.anon*> [#uses=1]
anatofuz
parents:
diff changeset
207 %tmp40 = getelementptr %struct.anon, %struct.anon* %tmp39, i32 0, i32 3 ; <[3 x i32]*> [#uses=1]
anatofuz
parents:
diff changeset
208 %tmp41 = getelementptr [3 x i32], [3 x i32]* %tmp40, i32 0, i32 2 ; <i32*> [#uses=1]
anatofuz
parents:
diff changeset
209 %tmp42 = load i32, i32* %tmp41 ; <i32> [#uses=1]
anatofuz
parents:
diff changeset
210 %tmp43 = getelementptr [5 x { i32, [3 x i32] }], [5 x { i32, [3 x i32] }]* @pgm, i32 0, i32 %tmp38 ; <{ i32, [3 x i32] }*> [#uses=1]
anatofuz
parents:
diff changeset
211 %tmp44 = getelementptr { i32, [3 x i32] }, { i32, [3 x i32] }* %tmp43, i32 0, i32 1 ; <[3 x i32]*> [#uses=1]
anatofuz
parents:
diff changeset
212 %tmp45 = getelementptr [3 x i32], [3 x i32]* %tmp44, i32 0, i32 2 ; <i32*> [#uses=1]
anatofuz
parents:
diff changeset
213 store i32 %tmp42, i32* %tmp45
anatofuz
parents:
diff changeset
214 %tmp46 = load i32, i32* %i ; <i32> [#uses=1]
anatofuz
parents:
diff changeset
215 call void @fix_operands( i32 %tmp46 )
anatofuz
parents:
diff changeset
216 %tmp47 = load i32, i32* %i ; <i32> [#uses=1]
anatofuz
parents:
diff changeset
217 ; CHECK: %tmp47 = phi i32 [ %tmp48, %bb18 ], [ 0, %bb17 ]
anatofuz
parents:
diff changeset
218 %tmp48 = add i32 %tmp47, 1 ; <i32> [#uses=1]
anatofuz
parents:
diff changeset
219 store i32 %tmp48, i32* %i
anatofuz
parents:
diff changeset
220 br label %bb49
anatofuz
parents:
diff changeset
221
anatofuz
parents:
diff changeset
222 bb49: ; preds = %bb18, %bb17
anatofuz
parents:
diff changeset
223 %tmp50 = load i32, i32* @numi ; <i32> [#uses=1]
anatofuz
parents:
diff changeset
224 %tmp51 = load i32, i32* %i ; <i32> [#uses=1]
anatofuz
parents:
diff changeset
225 %tmp52 = icmp slt i32 %tmp51, %tmp50 ; <i1> [#uses=1]
anatofuz
parents:
diff changeset
226 %tmp5253 = zext i1 %tmp52 to i32 ; <i32> [#uses=1]
anatofuz
parents:
diff changeset
227 %toBool54 = icmp ne i32 %tmp5253, 0 ; <i1> [#uses=1]
anatofuz
parents:
diff changeset
228 br i1 %toBool54, label %bb18, label %bb55
anatofuz
parents:
diff changeset
229
anatofuz
parents:
diff changeset
230 bb55: ; preds = %bb49
anatofuz
parents:
diff changeset
231 %tmp56 = call i32 @search( ) ; <i32> [#uses=1]
anatofuz
parents:
diff changeset
232 store i32 %tmp56, i32* %num_sol
anatofuz
parents:
diff changeset
233 %tmp57 = getelementptr [21 x i8], [21 x i8]* @.str44, i32 0, i32 0 ; <i8*> [#uses=1]
anatofuz
parents:
diff changeset
234 %tmp58 = load i32, i32* %num_sol ; <i32> [#uses=1]
anatofuz
parents:
diff changeset
235 %tmp59 = call i32 (i8*, ...) @printf( i8* %tmp57, i32 %tmp58 ) ; <i32> [#uses=0]
anatofuz
parents:
diff changeset
236 %tmp60 = load i32, i32* @counters ; <i32> [#uses=1]
anatofuz
parents:
diff changeset
237 %tmp61 = icmp ne i32 %tmp60, 0 ; <i1> [#uses=1]
anatofuz
parents:
diff changeset
238 %tmp6162 = zext i1 %tmp61 to i32 ; <i32> [#uses=1]
anatofuz
parents:
diff changeset
239 %toBool63 = icmp ne i32 %tmp6162, 0 ; <i1> [#uses=1]
anatofuz
parents:
diff changeset
240 br i1 %toBool63, label %cond_true, label %cond_next
anatofuz
parents:
diff changeset
241
anatofuz
parents:
diff changeset
242 cond_true: ; preds = %bb55
anatofuz
parents:
diff changeset
243 store i32 0, i32* %total
anatofuz
parents:
diff changeset
244 %tmp64 = getelementptr [12 x i8], [12 x i8]* @.str45, i32 0, i32 0 ; <i8*> [#uses=1]
anatofuz
parents:
diff changeset
245 %tmp65 = call i32 (i8*, ...) @printf( i8* %tmp64 ) ; <i32> [#uses=0]
anatofuz
parents:
diff changeset
246 store i32 0, i32* %i
anatofuz
parents:
diff changeset
247 br label %bb79
anatofuz
parents:
diff changeset
248
anatofuz
parents:
diff changeset
249 bb66: ; preds = %bb79
anatofuz
parents:
diff changeset
250 %tmp67 = load i32, i32* %i ; <i32> [#uses=1]
anatofuz
parents:
diff changeset
251 %tmp68 = getelementptr [5 x i32], [5 x i32]* @counter, i32 0, i32 %tmp67 ; <i32*> [#uses=1]
anatofuz
parents:
diff changeset
252 %tmp69 = load i32, i32* %tmp68 ; <i32> [#uses=1]
anatofuz
parents:
diff changeset
253 %tmp70 = getelementptr [5 x i8], [5 x i8]* @.str46, i32 0, i32 0 ; <i8*> [#uses=1]
anatofuz
parents:
diff changeset
254 %tmp71 = call i32 (i8*, ...) @printf( i8* %tmp70, i32 %tmp69 ) ; <i32> [#uses=0]
anatofuz
parents:
diff changeset
255 %tmp72 = load i32, i32* %i ; <i32> [#uses=1]
anatofuz
parents:
diff changeset
256 %tmp73 = getelementptr [5 x i32], [5 x i32]* @counter, i32 0, i32 %tmp72 ; <i32*> [#uses=1]
anatofuz
parents:
diff changeset
257 %tmp74 = load i32, i32* %tmp73 ; <i32> [#uses=1]
anatofuz
parents:
diff changeset
258 %tmp75 = load i32, i32* %total ; <i32> [#uses=1]
anatofuz
parents:
diff changeset
259 %tmp76 = add i32 %tmp74, %tmp75 ; <i32> [#uses=1]
anatofuz
parents:
diff changeset
260 store i32 %tmp76, i32* %total
anatofuz
parents:
diff changeset
261 %tmp77 = load i32, i32* %i ; <i32> [#uses=1]
anatofuz
parents:
diff changeset
262 %tmp78 = add i32 %tmp77, 1 ; <i32> [#uses=1]
anatofuz
parents:
diff changeset
263 store i32 %tmp78, i32* %i
anatofuz
parents:
diff changeset
264 br label %bb79
anatofuz
parents:
diff changeset
265
anatofuz
parents:
diff changeset
266 bb79: ; preds = %bb66, %cond_true
anatofuz
parents:
diff changeset
267 %tmp80 = load i32, i32* @numi ; <i32> [#uses=1]
anatofuz
parents:
diff changeset
268 %tmp81 = load i32, i32* %i ; <i32> [#uses=1]
anatofuz
parents:
diff changeset
269 %tmp82 = icmp slt i32 %tmp81, %tmp80 ; <i1> [#uses=1]
anatofuz
parents:
diff changeset
270 %tmp8283 = zext i1 %tmp82 to i32 ; <i32> [#uses=1]
anatofuz
parents:
diff changeset
271 %toBool84 = icmp ne i32 %tmp8283, 0 ; <i1> [#uses=1]
anatofuz
parents:
diff changeset
272 br i1 %toBool84, label %bb66, label %bb85
anatofuz
parents:
diff changeset
273
anatofuz
parents:
diff changeset
274 bb85: ; preds = %bb79
anatofuz
parents:
diff changeset
275 %tmp86 = getelementptr [12 x i8], [12 x i8]* @.str47, i32 0, i32 0 ; <i8*> [#uses=1]
anatofuz
parents:
diff changeset
276 %tmp87 = load i32, i32* %total ; <i32> [#uses=1]
anatofuz
parents:
diff changeset
277 %tmp88 = call i32 (i8*, ...) @printf( i8* %tmp86, i32 %tmp87 ) ; <i32> [#uses=0]
anatofuz
parents:
diff changeset
278 br label %cond_next
anatofuz
parents:
diff changeset
279
anatofuz
parents:
diff changeset
280 cond_next: ; preds = %bb85, %bb55
anatofuz
parents:
diff changeset
281 %tmp89 = load i32, i32* @numi ; <i32> [#uses=1]
anatofuz
parents:
diff changeset
282 %tmp90 = add i32 %tmp89, 1 ; <i32> [#uses=1]
anatofuz
parents:
diff changeset
283 store i32 %tmp90, i32* @numi
anatofuz
parents:
diff changeset
284 br label %bb91
anatofuz
parents:
diff changeset
285
anatofuz
parents:
diff changeset
286 bb91: ; preds = %cond_next, %entry
anatofuz
parents:
diff changeset
287 %tmp92 = load i32, i32* @numi ; <i32> [#uses=1]
anatofuz
parents:
diff changeset
288 %tmp93 = icmp sgt i32 %tmp92, 5 ; <i1> [#uses=1]
anatofuz
parents:
diff changeset
289 %tmp9394 = zext i1 %tmp93 to i32 ; <i32> [#uses=1]
anatofuz
parents:
diff changeset
290 %toBool95 = icmp ne i32 %tmp9394, 0 ; <i1> [#uses=1]
anatofuz
parents:
diff changeset
291 br i1 %toBool95, label %cond_true96, label %cond_next97
anatofuz
parents:
diff changeset
292
anatofuz
parents:
diff changeset
293 cond_true96: ; preds = %bb91
anatofuz
parents:
diff changeset
294 br label %bb102
anatofuz
parents:
diff changeset
295
anatofuz
parents:
diff changeset
296 cond_next97: ; preds = %bb91
anatofuz
parents:
diff changeset
297 %tmp98 = load i32, i32* %num_sol ; <i32> [#uses=1]
anatofuz
parents:
diff changeset
298 %tmp99 = icmp eq i32 %tmp98, 0 ; <i1> [#uses=1]
anatofuz
parents:
diff changeset
299 %tmp99100 = zext i1 %tmp99 to i32 ; <i32> [#uses=1]
anatofuz
parents:
diff changeset
300 %toBool101 = icmp ne i32 %tmp99100, 0 ; <i1> [#uses=1]
anatofuz
parents:
diff changeset
301 br i1 %toBool101, label %bb, label %bb102
anatofuz
parents:
diff changeset
302
anatofuz
parents:
diff changeset
303 bb102: ; preds = %cond_next97, %cond_true96
anatofuz
parents:
diff changeset
304 store i32 0, i32* %tmp
anatofuz
parents:
diff changeset
305 %tmp103 = load i32, i32* %tmp ; <i32> [#uses=1]
anatofuz
parents:
diff changeset
306 store i32 %tmp103, i32* %retval
anatofuz
parents:
diff changeset
307 br label %return
anatofuz
parents:
diff changeset
308
anatofuz
parents:
diff changeset
309 return: ; preds = %bb102
anatofuz
parents:
diff changeset
310 %retval104 = load i32, i32* %retval ; <i32> [#uses=1]
anatofuz
parents:
diff changeset
311 ret i32 %retval104
anatofuz
parents:
diff changeset
312 }
anatofuz
parents:
diff changeset
313
anatofuz
parents:
diff changeset
314 declare i32 @userfun(i32)