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