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