1*9880d681SAndroid Build Coastguard Worker; RUN: opt < %s -analyze -basicaa -da -da-delinearize=false | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker; RUN: opt < %s -analyze -basicaa -da -da-delinearize | FileCheck %s -check-prefix=DELIN 3*9880d681SAndroid Build Coastguard Worker 4*9880d681SAndroid Build Coastguard Worker; ModuleID = 'Banerjee.bc' 5*9880d681SAndroid Build Coastguard Workertarget datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128" 6*9880d681SAndroid Build Coastguard Workertarget triple = "x86_64-apple-macosx10.6.0" 7*9880d681SAndroid Build Coastguard Worker 8*9880d681SAndroid Build Coastguard Worker 9*9880d681SAndroid Build Coastguard Worker;; for (long int i = 1; i <= 10; i++) 10*9880d681SAndroid Build Coastguard Worker;; for (long int j = 1; j <= 10; j++) { 11*9880d681SAndroid Build Coastguard Worker;; A[10*i + j] = 0; 12*9880d681SAndroid Build Coastguard Worker;; *B++ = A[10*i + j - 1]; 13*9880d681SAndroid Build Coastguard Worker 14*9880d681SAndroid Build Coastguard Workerdefine void @banerjee0(i64* %A, i64* %B, i64 %m, i64 %n) nounwind uwtable ssp { 15*9880d681SAndroid Build Coastguard Workerentry: 16*9880d681SAndroid Build Coastguard Worker br label %for.cond1.preheader 17*9880d681SAndroid Build Coastguard Worker; CHECK: 'Dependence Analysis' for function 'banerjee0': 18*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - none! 19*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - flow [<= <>]! 20*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - confused! 21*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - none! 22*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - confused! 23*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - none! 24*9880d681SAndroid Build Coastguard Worker 25*9880d681SAndroid Build Coastguard Worker; DELIN: 'Dependence Analysis' for function 'banerjee0': 26*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - none! 27*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - flow [<= <>]! 28*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - confused! 29*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - none! 30*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - confused! 31*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - none! 32*9880d681SAndroid Build Coastguard Worker 33*9880d681SAndroid Build Coastguard Workerfor.cond1.preheader: ; preds = %entry, %for.inc7 34*9880d681SAndroid Build Coastguard Worker %B.addr.04 = phi i64* [ %B, %entry ], [ %scevgep, %for.inc7 ] 35*9880d681SAndroid Build Coastguard Worker %i.03 = phi i64 [ 1, %entry ], [ %inc8, %for.inc7 ] 36*9880d681SAndroid Build Coastguard Worker br label %for.body3 37*9880d681SAndroid Build Coastguard Worker 38*9880d681SAndroid Build Coastguard Workerfor.body3: ; preds = %for.cond1.preheader, %for.body3 39*9880d681SAndroid Build Coastguard Worker %j.02 = phi i64 [ 1, %for.cond1.preheader ], [ %inc, %for.body3 ] 40*9880d681SAndroid Build Coastguard Worker %B.addr.11 = phi i64* [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ] 41*9880d681SAndroid Build Coastguard Worker %mul = mul nsw i64 %i.03, 10 42*9880d681SAndroid Build Coastguard Worker %add = add nsw i64 %mul, %j.02 43*9880d681SAndroid Build Coastguard Worker %arrayidx = getelementptr inbounds i64, i64* %A, i64 %add 44*9880d681SAndroid Build Coastguard Worker store i64 0, i64* %arrayidx, align 8 45*9880d681SAndroid Build Coastguard Worker %mul4 = mul nsw i64 %i.03, 10 46*9880d681SAndroid Build Coastguard Worker %add5 = add nsw i64 %mul4, %j.02 47*9880d681SAndroid Build Coastguard Worker %sub = add nsw i64 %add5, -1 48*9880d681SAndroid Build Coastguard Worker %arrayidx6 = getelementptr inbounds i64, i64* %A, i64 %sub 49*9880d681SAndroid Build Coastguard Worker %0 = load i64, i64* %arrayidx6, align 8 50*9880d681SAndroid Build Coastguard Worker %incdec.ptr = getelementptr inbounds i64, i64* %B.addr.11, i64 1 51*9880d681SAndroid Build Coastguard Worker store i64 %0, i64* %B.addr.11, align 8 52*9880d681SAndroid Build Coastguard Worker %inc = add nsw i64 %j.02, 1 53*9880d681SAndroid Build Coastguard Worker %exitcond = icmp ne i64 %inc, 11 54*9880d681SAndroid Build Coastguard Worker br i1 %exitcond, label %for.body3, label %for.inc7 55*9880d681SAndroid Build Coastguard Worker 56*9880d681SAndroid Build Coastguard Workerfor.inc7: ; preds = %for.body3 57*9880d681SAndroid Build Coastguard Worker %scevgep = getelementptr i64, i64* %B.addr.04, i64 10 58*9880d681SAndroid Build Coastguard Worker %inc8 = add nsw i64 %i.03, 1 59*9880d681SAndroid Build Coastguard Worker %exitcond5 = icmp ne i64 %inc8, 11 60*9880d681SAndroid Build Coastguard Worker br i1 %exitcond5, label %for.cond1.preheader, label %for.end9 61*9880d681SAndroid Build Coastguard Worker 62*9880d681SAndroid Build Coastguard Workerfor.end9: ; preds = %for.inc7 63*9880d681SAndroid Build Coastguard Worker ret void 64*9880d681SAndroid Build Coastguard Worker} 65*9880d681SAndroid Build Coastguard Worker 66*9880d681SAndroid Build Coastguard Worker 67*9880d681SAndroid Build Coastguard Worker;; for (long int i = 1; i <= n; i++) 68*9880d681SAndroid Build Coastguard Worker;; for (long int j = 1; j <= m; j++) { 69*9880d681SAndroid Build Coastguard Worker;; A[10*i + j] = 0; 70*9880d681SAndroid Build Coastguard Worker;; *B++ = A[10*i + j - 1]; 71*9880d681SAndroid Build Coastguard Worker 72*9880d681SAndroid Build Coastguard Workerdefine void @banerjee1(i64* %A, i64* %B, i64 %m, i64 %n) nounwind uwtable ssp { 73*9880d681SAndroid Build Coastguard Workerentry: 74*9880d681SAndroid Build Coastguard Worker %cmp4 = icmp sgt i64 %n, 0 75*9880d681SAndroid Build Coastguard Worker br i1 %cmp4, label %for.cond1.preheader.preheader, label %for.end9 76*9880d681SAndroid Build Coastguard Worker 77*9880d681SAndroid Build Coastguard Worker; CHECK: 'Dependence Analysis' for function 'banerjee1': 78*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - output [* *]! 79*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - flow [* <>]! 80*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - confused! 81*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - input [* *]! 82*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - confused! 83*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - output [* *]! 84*9880d681SAndroid Build Coastguard Worker 85*9880d681SAndroid Build Coastguard Worker; DELIN: 'Dependence Analysis' for function 'banerjee1': 86*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - output [* *]! 87*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - flow [* <>]! 88*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - confused! 89*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - input [* *]! 90*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - confused! 91*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - output [* *]! 92*9880d681SAndroid Build Coastguard Worker 93*9880d681SAndroid Build Coastguard Workerfor.cond1.preheader.preheader: ; preds = %entry 94*9880d681SAndroid Build Coastguard Worker %0 = add i64 %n, 1 95*9880d681SAndroid Build Coastguard Worker br label %for.cond1.preheader 96*9880d681SAndroid Build Coastguard Worker 97*9880d681SAndroid Build Coastguard Workerfor.cond1.preheader: ; preds = %for.cond1.preheader.preheader, %for.inc7 98*9880d681SAndroid Build Coastguard Worker %B.addr.06 = phi i64* [ %B.addr.1.lcssa, %for.inc7 ], [ %B, %for.cond1.preheader.preheader ] 99*9880d681SAndroid Build Coastguard Worker %i.05 = phi i64 [ %inc8, %for.inc7 ], [ 1, %for.cond1.preheader.preheader ] 100*9880d681SAndroid Build Coastguard Worker %1 = add i64 %m, 1 101*9880d681SAndroid Build Coastguard Worker %cmp21 = icmp sgt i64 %m, 0 102*9880d681SAndroid Build Coastguard Worker br i1 %cmp21, label %for.body3.preheader, label %for.inc7 103*9880d681SAndroid Build Coastguard Worker 104*9880d681SAndroid Build Coastguard Workerfor.body3.preheader: ; preds = %for.cond1.preheader 105*9880d681SAndroid Build Coastguard Worker br label %for.body3 106*9880d681SAndroid Build Coastguard Worker 107*9880d681SAndroid Build Coastguard Workerfor.body3: ; preds = %for.body3.preheader, %for.body3 108*9880d681SAndroid Build Coastguard Worker %j.03 = phi i64 [ %inc, %for.body3 ], [ 1, %for.body3.preheader ] 109*9880d681SAndroid Build Coastguard Worker %B.addr.12 = phi i64* [ %incdec.ptr, %for.body3 ], [ %B.addr.06, %for.body3.preheader ] 110*9880d681SAndroid Build Coastguard Worker %mul = mul nsw i64 %i.05, 10 111*9880d681SAndroid Build Coastguard Worker %add = add nsw i64 %mul, %j.03 112*9880d681SAndroid Build Coastguard Worker %arrayidx = getelementptr inbounds i64, i64* %A, i64 %add 113*9880d681SAndroid Build Coastguard Worker store i64 0, i64* %arrayidx, align 8 114*9880d681SAndroid Build Coastguard Worker %mul4 = mul nsw i64 %i.05, 10 115*9880d681SAndroid Build Coastguard Worker %add5 = add nsw i64 %mul4, %j.03 116*9880d681SAndroid Build Coastguard Worker %sub = add nsw i64 %add5, -1 117*9880d681SAndroid Build Coastguard Worker %arrayidx6 = getelementptr inbounds i64, i64* %A, i64 %sub 118*9880d681SAndroid Build Coastguard Worker %2 = load i64, i64* %arrayidx6, align 8 119*9880d681SAndroid Build Coastguard Worker %incdec.ptr = getelementptr inbounds i64, i64* %B.addr.12, i64 1 120*9880d681SAndroid Build Coastguard Worker store i64 %2, i64* %B.addr.12, align 8 121*9880d681SAndroid Build Coastguard Worker %inc = add nsw i64 %j.03, 1 122*9880d681SAndroid Build Coastguard Worker %exitcond = icmp eq i64 %inc, %1 123*9880d681SAndroid Build Coastguard Worker br i1 %exitcond, label %for.inc7.loopexit, label %for.body3 124*9880d681SAndroid Build Coastguard Worker 125*9880d681SAndroid Build Coastguard Workerfor.inc7.loopexit: ; preds = %for.body3 126*9880d681SAndroid Build Coastguard Worker %scevgep = getelementptr i64, i64* %B.addr.06, i64 %m 127*9880d681SAndroid Build Coastguard Worker br label %for.inc7 128*9880d681SAndroid Build Coastguard Worker 129*9880d681SAndroid Build Coastguard Workerfor.inc7: ; preds = %for.inc7.loopexit, %for.cond1.preheader 130*9880d681SAndroid Build Coastguard Worker %B.addr.1.lcssa = phi i64* [ %B.addr.06, %for.cond1.preheader ], [ %scevgep, %for.inc7.loopexit ] 131*9880d681SAndroid Build Coastguard Worker %inc8 = add nsw i64 %i.05, 1 132*9880d681SAndroid Build Coastguard Worker %exitcond7 = icmp eq i64 %inc8, %0 133*9880d681SAndroid Build Coastguard Worker br i1 %exitcond7, label %for.end9.loopexit, label %for.cond1.preheader 134*9880d681SAndroid Build Coastguard Worker 135*9880d681SAndroid Build Coastguard Workerfor.end9.loopexit: ; preds = %for.inc7 136*9880d681SAndroid Build Coastguard Worker br label %for.end9 137*9880d681SAndroid Build Coastguard Worker 138*9880d681SAndroid Build Coastguard Workerfor.end9: ; preds = %for.end9.loopexit, %entry 139*9880d681SAndroid Build Coastguard Worker ret void 140*9880d681SAndroid Build Coastguard Worker} 141*9880d681SAndroid Build Coastguard Worker 142*9880d681SAndroid Build Coastguard Worker 143*9880d681SAndroid Build Coastguard Worker;; for (long int i = 0; i < 10; i++) 144*9880d681SAndroid Build Coastguard Worker;; for (long int j = 0; j < 10; j++) { 145*9880d681SAndroid Build Coastguard Worker;; A[10*i + j] = 0; 146*9880d681SAndroid Build Coastguard Worker;; *B++ = A[10*i + j + 100]; 147*9880d681SAndroid Build Coastguard Worker 148*9880d681SAndroid Build Coastguard Workerdefine void @banerjee2(i64* %A, i64* %B, i64 %m, i64 %n) nounwind uwtable ssp { 149*9880d681SAndroid Build Coastguard Workerentry: 150*9880d681SAndroid Build Coastguard Worker br label %for.cond1.preheader 151*9880d681SAndroid Build Coastguard Worker 152*9880d681SAndroid Build Coastguard Worker; CHECK: 'Dependence Analysis' for function 'banerjee2': 153*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - none! 154*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - none! 155*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - confused! 156*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - none! 157*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - confused! 158*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - none! 159*9880d681SAndroid Build Coastguard Worker 160*9880d681SAndroid Build Coastguard Worker; DELIN: 'Dependence Analysis' for function 'banerjee2': 161*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - none! 162*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - none! 163*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - confused! 164*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - none! 165*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - confused! 166*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - none! 167*9880d681SAndroid Build Coastguard Worker 168*9880d681SAndroid Build Coastguard Workerfor.cond1.preheader: ; preds = %entry, %for.inc8 169*9880d681SAndroid Build Coastguard Worker %B.addr.04 = phi i64* [ %B, %entry ], [ %scevgep, %for.inc8 ] 170*9880d681SAndroid Build Coastguard Worker %i.03 = phi i64 [ 0, %entry ], [ %inc9, %for.inc8 ] 171*9880d681SAndroid Build Coastguard Worker br label %for.body3 172*9880d681SAndroid Build Coastguard Worker 173*9880d681SAndroid Build Coastguard Workerfor.body3: ; preds = %for.cond1.preheader, %for.body3 174*9880d681SAndroid Build Coastguard Worker %j.02 = phi i64 [ 0, %for.cond1.preheader ], [ %inc, %for.body3 ] 175*9880d681SAndroid Build Coastguard Worker %B.addr.11 = phi i64* [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ] 176*9880d681SAndroid Build Coastguard Worker %mul = mul nsw i64 %i.03, 10 177*9880d681SAndroid Build Coastguard Worker %add = add nsw i64 %mul, %j.02 178*9880d681SAndroid Build Coastguard Worker %arrayidx = getelementptr inbounds i64, i64* %A, i64 %add 179*9880d681SAndroid Build Coastguard Worker store i64 0, i64* %arrayidx, align 8 180*9880d681SAndroid Build Coastguard Worker %mul4 = mul nsw i64 %i.03, 10 181*9880d681SAndroid Build Coastguard Worker %add5 = add nsw i64 %mul4, %j.02 182*9880d681SAndroid Build Coastguard Worker %add6 = add nsw i64 %add5, 100 183*9880d681SAndroid Build Coastguard Worker %arrayidx7 = getelementptr inbounds i64, i64* %A, i64 %add6 184*9880d681SAndroid Build Coastguard Worker %0 = load i64, i64* %arrayidx7, align 8 185*9880d681SAndroid Build Coastguard Worker %incdec.ptr = getelementptr inbounds i64, i64* %B.addr.11, i64 1 186*9880d681SAndroid Build Coastguard Worker store i64 %0, i64* %B.addr.11, align 8 187*9880d681SAndroid Build Coastguard Worker %inc = add nsw i64 %j.02, 1 188*9880d681SAndroid Build Coastguard Worker %exitcond = icmp ne i64 %inc, 10 189*9880d681SAndroid Build Coastguard Worker br i1 %exitcond, label %for.body3, label %for.inc8 190*9880d681SAndroid Build Coastguard Worker 191*9880d681SAndroid Build Coastguard Workerfor.inc8: ; preds = %for.body3 192*9880d681SAndroid Build Coastguard Worker %scevgep = getelementptr i64, i64* %B.addr.04, i64 10 193*9880d681SAndroid Build Coastguard Worker %inc9 = add nsw i64 %i.03, 1 194*9880d681SAndroid Build Coastguard Worker %exitcond5 = icmp ne i64 %inc9, 10 195*9880d681SAndroid Build Coastguard Worker br i1 %exitcond5, label %for.cond1.preheader, label %for.end10 196*9880d681SAndroid Build Coastguard Worker 197*9880d681SAndroid Build Coastguard Workerfor.end10: ; preds = %for.inc8 198*9880d681SAndroid Build Coastguard Worker ret void 199*9880d681SAndroid Build Coastguard Worker} 200*9880d681SAndroid Build Coastguard Worker 201*9880d681SAndroid Build Coastguard Worker 202*9880d681SAndroid Build Coastguard Worker;; for (long int i = 0; i < 10; i++) 203*9880d681SAndroid Build Coastguard Worker;; for (long int j = 0; j < 10; j++) { 204*9880d681SAndroid Build Coastguard Worker;; A[10*i + j] = 0; 205*9880d681SAndroid Build Coastguard Worker;; *B++ = A[10*i + j + 99]; 206*9880d681SAndroid Build Coastguard Worker 207*9880d681SAndroid Build Coastguard Workerdefine void @banerjee3(i64* %A, i64* %B, i64 %m, i64 %n) nounwind uwtable ssp { 208*9880d681SAndroid Build Coastguard Workerentry: 209*9880d681SAndroid Build Coastguard Worker br label %for.cond1.preheader 210*9880d681SAndroid Build Coastguard Worker 211*9880d681SAndroid Build Coastguard Worker; CHECK: 'Dependence Analysis' for function 'banerjee3': 212*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - none! 213*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - flow [> >]! 214*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - confused! 215*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - none! 216*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - confused! 217*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - none! 218*9880d681SAndroid Build Coastguard Worker 219*9880d681SAndroid Build Coastguard Worker; DELIN: 'Dependence Analysis' for function 'banerjee3': 220*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - none! 221*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - flow [> >]! 222*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - confused! 223*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - none! 224*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - confused! 225*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - none! 226*9880d681SAndroid Build Coastguard Worker 227*9880d681SAndroid Build Coastguard Workerfor.cond1.preheader: ; preds = %entry, %for.inc8 228*9880d681SAndroid Build Coastguard Worker %B.addr.04 = phi i64* [ %B, %entry ], [ %scevgep, %for.inc8 ] 229*9880d681SAndroid Build Coastguard Worker %i.03 = phi i64 [ 0, %entry ], [ %inc9, %for.inc8 ] 230*9880d681SAndroid Build Coastguard Worker br label %for.body3 231*9880d681SAndroid Build Coastguard Worker 232*9880d681SAndroid Build Coastguard Workerfor.body3: ; preds = %for.cond1.preheader, %for.body3 233*9880d681SAndroid Build Coastguard Worker %j.02 = phi i64 [ 0, %for.cond1.preheader ], [ %inc, %for.body3 ] 234*9880d681SAndroid Build Coastguard Worker %B.addr.11 = phi i64* [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ] 235*9880d681SAndroid Build Coastguard Worker %mul = mul nsw i64 %i.03, 10 236*9880d681SAndroid Build Coastguard Worker %add = add nsw i64 %mul, %j.02 237*9880d681SAndroid Build Coastguard Worker %arrayidx = getelementptr inbounds i64, i64* %A, i64 %add 238*9880d681SAndroid Build Coastguard Worker store i64 0, i64* %arrayidx, align 8 239*9880d681SAndroid Build Coastguard Worker %mul4 = mul nsw i64 %i.03, 10 240*9880d681SAndroid Build Coastguard Worker %add5 = add nsw i64 %mul4, %j.02 241*9880d681SAndroid Build Coastguard Worker %add6 = add nsw i64 %add5, 99 242*9880d681SAndroid Build Coastguard Worker %arrayidx7 = getelementptr inbounds i64, i64* %A, i64 %add6 243*9880d681SAndroid Build Coastguard Worker %0 = load i64, i64* %arrayidx7, align 8 244*9880d681SAndroid Build Coastguard Worker %incdec.ptr = getelementptr inbounds i64, i64* %B.addr.11, i64 1 245*9880d681SAndroid Build Coastguard Worker store i64 %0, i64* %B.addr.11, align 8 246*9880d681SAndroid Build Coastguard Worker %inc = add nsw i64 %j.02, 1 247*9880d681SAndroid Build Coastguard Worker %exitcond = icmp ne i64 %inc, 10 248*9880d681SAndroid Build Coastguard Worker br i1 %exitcond, label %for.body3, label %for.inc8 249*9880d681SAndroid Build Coastguard Worker 250*9880d681SAndroid Build Coastguard Workerfor.inc8: ; preds = %for.body3 251*9880d681SAndroid Build Coastguard Worker %scevgep = getelementptr i64, i64* %B.addr.04, i64 10 252*9880d681SAndroid Build Coastguard Worker %inc9 = add nsw i64 %i.03, 1 253*9880d681SAndroid Build Coastguard Worker %exitcond5 = icmp ne i64 %inc9, 10 254*9880d681SAndroid Build Coastguard Worker br i1 %exitcond5, label %for.cond1.preheader, label %for.end10 255*9880d681SAndroid Build Coastguard Worker 256*9880d681SAndroid Build Coastguard Workerfor.end10: ; preds = %for.inc8 257*9880d681SAndroid Build Coastguard Worker ret void 258*9880d681SAndroid Build Coastguard Worker} 259*9880d681SAndroid Build Coastguard Worker 260*9880d681SAndroid Build Coastguard Worker 261*9880d681SAndroid Build Coastguard Worker;; for (long int i = 0; i < 10; i++) 262*9880d681SAndroid Build Coastguard Worker;; for (long int j = 0; j < 10; j++) { 263*9880d681SAndroid Build Coastguard Worker;; A[10*i + j] = 0; 264*9880d681SAndroid Build Coastguard Worker;; *B++ = A[10*i + j - 100]; 265*9880d681SAndroid Build Coastguard Worker 266*9880d681SAndroid Build Coastguard Workerdefine void @banerjee4(i64* %A, i64* %B, i64 %m, i64 %n) nounwind uwtable ssp { 267*9880d681SAndroid Build Coastguard Workerentry: 268*9880d681SAndroid Build Coastguard Worker br label %for.cond1.preheader 269*9880d681SAndroid Build Coastguard Worker 270*9880d681SAndroid Build Coastguard Worker; CHECK: 'Dependence Analysis' for function 'banerjee4': 271*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - none! 272*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - none! 273*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - confused! 274*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - none! 275*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - confused! 276*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - none! 277*9880d681SAndroid Build Coastguard Worker 278*9880d681SAndroid Build Coastguard Worker; DELIN: 'Dependence Analysis' for function 'banerjee4': 279*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - none! 280*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - none! 281*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - confused! 282*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - none! 283*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - confused! 284*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - none! 285*9880d681SAndroid Build Coastguard Worker 286*9880d681SAndroid Build Coastguard Workerfor.cond1.preheader: ; preds = %entry, %for.inc7 287*9880d681SAndroid Build Coastguard Worker %B.addr.04 = phi i64* [ %B, %entry ], [ %scevgep, %for.inc7 ] 288*9880d681SAndroid Build Coastguard Worker %i.03 = phi i64 [ 0, %entry ], [ %inc8, %for.inc7 ] 289*9880d681SAndroid Build Coastguard Worker br label %for.body3 290*9880d681SAndroid Build Coastguard Worker 291*9880d681SAndroid Build Coastguard Workerfor.body3: ; preds = %for.cond1.preheader, %for.body3 292*9880d681SAndroid Build Coastguard Worker %j.02 = phi i64 [ 0, %for.cond1.preheader ], [ %inc, %for.body3 ] 293*9880d681SAndroid Build Coastguard Worker %B.addr.11 = phi i64* [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ] 294*9880d681SAndroid Build Coastguard Worker %mul = mul nsw i64 %i.03, 10 295*9880d681SAndroid Build Coastguard Worker %add = add nsw i64 %mul, %j.02 296*9880d681SAndroid Build Coastguard Worker %arrayidx = getelementptr inbounds i64, i64* %A, i64 %add 297*9880d681SAndroid Build Coastguard Worker store i64 0, i64* %arrayidx, align 8 298*9880d681SAndroid Build Coastguard Worker %mul4 = mul nsw i64 %i.03, 10 299*9880d681SAndroid Build Coastguard Worker %add5 = add nsw i64 %mul4, %j.02 300*9880d681SAndroid Build Coastguard Worker %sub = add nsw i64 %add5, -100 301*9880d681SAndroid Build Coastguard Worker %arrayidx6 = getelementptr inbounds i64, i64* %A, i64 %sub 302*9880d681SAndroid Build Coastguard Worker %0 = load i64, i64* %arrayidx6, align 8 303*9880d681SAndroid Build Coastguard Worker %incdec.ptr = getelementptr inbounds i64, i64* %B.addr.11, i64 1 304*9880d681SAndroid Build Coastguard Worker store i64 %0, i64* %B.addr.11, align 8 305*9880d681SAndroid Build Coastguard Worker %inc = add nsw i64 %j.02, 1 306*9880d681SAndroid Build Coastguard Worker %exitcond = icmp ne i64 %inc, 10 307*9880d681SAndroid Build Coastguard Worker br i1 %exitcond, label %for.body3, label %for.inc7 308*9880d681SAndroid Build Coastguard Worker 309*9880d681SAndroid Build Coastguard Workerfor.inc7: ; preds = %for.body3 310*9880d681SAndroid Build Coastguard Worker %scevgep = getelementptr i64, i64* %B.addr.04, i64 10 311*9880d681SAndroid Build Coastguard Worker %inc8 = add nsw i64 %i.03, 1 312*9880d681SAndroid Build Coastguard Worker %exitcond5 = icmp ne i64 %inc8, 10 313*9880d681SAndroid Build Coastguard Worker br i1 %exitcond5, label %for.cond1.preheader, label %for.end9 314*9880d681SAndroid Build Coastguard Worker 315*9880d681SAndroid Build Coastguard Workerfor.end9: ; preds = %for.inc7 316*9880d681SAndroid Build Coastguard Worker ret void 317*9880d681SAndroid Build Coastguard Worker} 318*9880d681SAndroid Build Coastguard Worker 319*9880d681SAndroid Build Coastguard Worker 320*9880d681SAndroid Build Coastguard Worker;; for (long int i = 0; i < 10; i++) 321*9880d681SAndroid Build Coastguard Worker;; for (long int j = 0; j < 10; j++) { 322*9880d681SAndroid Build Coastguard Worker;; A[10*i + j] = 0; 323*9880d681SAndroid Build Coastguard Worker;; *B++ = A[10*i + j - 99]; 324*9880d681SAndroid Build Coastguard Worker 325*9880d681SAndroid Build Coastguard Workerdefine void @banerjee5(i64* %A, i64* %B, i64 %m, i64 %n) nounwind uwtable ssp { 326*9880d681SAndroid Build Coastguard Workerentry: 327*9880d681SAndroid Build Coastguard Worker br label %for.cond1.preheader 328*9880d681SAndroid Build Coastguard Worker 329*9880d681SAndroid Build Coastguard Worker; CHECK: 'Dependence Analysis' for function 'banerjee5': 330*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - none! 331*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - flow [< <]! 332*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - confused! 333*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - none! 334*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - confused! 335*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - none! 336*9880d681SAndroid Build Coastguard Worker 337*9880d681SAndroid Build Coastguard Worker; DELIN: 'Dependence Analysis' for function 'banerjee5': 338*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - none! 339*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - flow [< <]! 340*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - confused! 341*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - none! 342*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - confused! 343*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - none! 344*9880d681SAndroid Build Coastguard Worker 345*9880d681SAndroid Build Coastguard Workerfor.cond1.preheader: ; preds = %entry, %for.inc7 346*9880d681SAndroid Build Coastguard Worker %B.addr.04 = phi i64* [ %B, %entry ], [ %scevgep, %for.inc7 ] 347*9880d681SAndroid Build Coastguard Worker %i.03 = phi i64 [ 0, %entry ], [ %inc8, %for.inc7 ] 348*9880d681SAndroid Build Coastguard Worker br label %for.body3 349*9880d681SAndroid Build Coastguard Worker 350*9880d681SAndroid Build Coastguard Workerfor.body3: ; preds = %for.cond1.preheader, %for.body3 351*9880d681SAndroid Build Coastguard Worker %j.02 = phi i64 [ 0, %for.cond1.preheader ], [ %inc, %for.body3 ] 352*9880d681SAndroid Build Coastguard Worker %B.addr.11 = phi i64* [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ] 353*9880d681SAndroid Build Coastguard Worker %mul = mul nsw i64 %i.03, 10 354*9880d681SAndroid Build Coastguard Worker %add = add nsw i64 %mul, %j.02 355*9880d681SAndroid Build Coastguard Worker %arrayidx = getelementptr inbounds i64, i64* %A, i64 %add 356*9880d681SAndroid Build Coastguard Worker store i64 0, i64* %arrayidx, align 8 357*9880d681SAndroid Build Coastguard Worker %mul4 = mul nsw i64 %i.03, 10 358*9880d681SAndroid Build Coastguard Worker %add5 = add nsw i64 %mul4, %j.02 359*9880d681SAndroid Build Coastguard Worker %sub = add nsw i64 %add5, -99 360*9880d681SAndroid Build Coastguard Worker %arrayidx6 = getelementptr inbounds i64, i64* %A, i64 %sub 361*9880d681SAndroid Build Coastguard Worker %0 = load i64, i64* %arrayidx6, align 8 362*9880d681SAndroid Build Coastguard Worker %incdec.ptr = getelementptr inbounds i64, i64* %B.addr.11, i64 1 363*9880d681SAndroid Build Coastguard Worker store i64 %0, i64* %B.addr.11, align 8 364*9880d681SAndroid Build Coastguard Worker %inc = add nsw i64 %j.02, 1 365*9880d681SAndroid Build Coastguard Worker %exitcond = icmp ne i64 %inc, 10 366*9880d681SAndroid Build Coastguard Worker br i1 %exitcond, label %for.body3, label %for.inc7 367*9880d681SAndroid Build Coastguard Worker 368*9880d681SAndroid Build Coastguard Workerfor.inc7: ; preds = %for.body3 369*9880d681SAndroid Build Coastguard Worker %scevgep = getelementptr i64, i64* %B.addr.04, i64 10 370*9880d681SAndroid Build Coastguard Worker %inc8 = add nsw i64 %i.03, 1 371*9880d681SAndroid Build Coastguard Worker %exitcond5 = icmp ne i64 %inc8, 10 372*9880d681SAndroid Build Coastguard Worker br i1 %exitcond5, label %for.cond1.preheader, label %for.end9 373*9880d681SAndroid Build Coastguard Worker 374*9880d681SAndroid Build Coastguard Workerfor.end9: ; preds = %for.inc7 375*9880d681SAndroid Build Coastguard Worker ret void 376*9880d681SAndroid Build Coastguard Worker} 377*9880d681SAndroid Build Coastguard Worker 378*9880d681SAndroid Build Coastguard Worker 379*9880d681SAndroid Build Coastguard Worker;; for (long int i = 0; i < 10; i++) 380*9880d681SAndroid Build Coastguard Worker;; for (long int j = 0; j < 10; j++) { 381*9880d681SAndroid Build Coastguard Worker;; A[10*i + j] = 0; 382*9880d681SAndroid Build Coastguard Worker;; *B++ = A[10*i + j + 9]; 383*9880d681SAndroid Build Coastguard Worker 384*9880d681SAndroid Build Coastguard Workerdefine void @banerjee6(i64* %A, i64* %B, i64 %m, i64 %n) nounwind uwtable ssp { 385*9880d681SAndroid Build Coastguard Workerentry: 386*9880d681SAndroid Build Coastguard Worker br label %for.cond1.preheader 387*9880d681SAndroid Build Coastguard Worker 388*9880d681SAndroid Build Coastguard Worker; CHECK: 'Dependence Analysis' for function 'banerjee6': 389*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - none! 390*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - flow [=> <>]! 391*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - confused! 392*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - none! 393*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - confused! 394*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - none! 395*9880d681SAndroid Build Coastguard Worker 396*9880d681SAndroid Build Coastguard Worker; DELIN: 'Dependence Analysis' for function 'banerjee6': 397*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - none! 398*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - flow [=> <>]! 399*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - confused! 400*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - none! 401*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - confused! 402*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - none! 403*9880d681SAndroid Build Coastguard Worker 404*9880d681SAndroid Build Coastguard Workerfor.cond1.preheader: ; preds = %entry, %for.inc8 405*9880d681SAndroid Build Coastguard Worker %B.addr.04 = phi i64* [ %B, %entry ], [ %scevgep, %for.inc8 ] 406*9880d681SAndroid Build Coastguard Worker %i.03 = phi i64 [ 0, %entry ], [ %inc9, %for.inc8 ] 407*9880d681SAndroid Build Coastguard Worker br label %for.body3 408*9880d681SAndroid Build Coastguard Worker 409*9880d681SAndroid Build Coastguard Workerfor.body3: ; preds = %for.cond1.preheader, %for.body3 410*9880d681SAndroid Build Coastguard Worker %j.02 = phi i64 [ 0, %for.cond1.preheader ], [ %inc, %for.body3 ] 411*9880d681SAndroid Build Coastguard Worker %B.addr.11 = phi i64* [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ] 412*9880d681SAndroid Build Coastguard Worker %mul = mul nsw i64 %i.03, 10 413*9880d681SAndroid Build Coastguard Worker %add = add nsw i64 %mul, %j.02 414*9880d681SAndroid Build Coastguard Worker %arrayidx = getelementptr inbounds i64, i64* %A, i64 %add 415*9880d681SAndroid Build Coastguard Worker store i64 0, i64* %arrayidx, align 8 416*9880d681SAndroid Build Coastguard Worker %mul4 = mul nsw i64 %i.03, 10 417*9880d681SAndroid Build Coastguard Worker %add5 = add nsw i64 %mul4, %j.02 418*9880d681SAndroid Build Coastguard Worker %add6 = add nsw i64 %add5, 9 419*9880d681SAndroid Build Coastguard Worker %arrayidx7 = getelementptr inbounds i64, i64* %A, i64 %add6 420*9880d681SAndroid Build Coastguard Worker %0 = load i64, i64* %arrayidx7, align 8 421*9880d681SAndroid Build Coastguard Worker %incdec.ptr = getelementptr inbounds i64, i64* %B.addr.11, i64 1 422*9880d681SAndroid Build Coastguard Worker store i64 %0, i64* %B.addr.11, align 8 423*9880d681SAndroid Build Coastguard Worker %inc = add nsw i64 %j.02, 1 424*9880d681SAndroid Build Coastguard Worker %exitcond = icmp ne i64 %inc, 10 425*9880d681SAndroid Build Coastguard Worker br i1 %exitcond, label %for.body3, label %for.inc8 426*9880d681SAndroid Build Coastguard Worker 427*9880d681SAndroid Build Coastguard Workerfor.inc8: ; preds = %for.body3 428*9880d681SAndroid Build Coastguard Worker %scevgep = getelementptr i64, i64* %B.addr.04, i64 10 429*9880d681SAndroid Build Coastguard Worker %inc9 = add nsw i64 %i.03, 1 430*9880d681SAndroid Build Coastguard Worker %exitcond5 = icmp ne i64 %inc9, 10 431*9880d681SAndroid Build Coastguard Worker br i1 %exitcond5, label %for.cond1.preheader, label %for.end10 432*9880d681SAndroid Build Coastguard Worker 433*9880d681SAndroid Build Coastguard Workerfor.end10: ; preds = %for.inc8 434*9880d681SAndroid Build Coastguard Worker ret void 435*9880d681SAndroid Build Coastguard Worker} 436*9880d681SAndroid Build Coastguard Worker 437*9880d681SAndroid Build Coastguard Worker 438*9880d681SAndroid Build Coastguard Worker;; for (long int i = 0; i < 10; i++) 439*9880d681SAndroid Build Coastguard Worker;; for (long int j = 0; j < 10; j++) { 440*9880d681SAndroid Build Coastguard Worker;; A[10*i + j] = 0; 441*9880d681SAndroid Build Coastguard Worker;; *B++ = A[10*i + j + 10]; 442*9880d681SAndroid Build Coastguard Worker 443*9880d681SAndroid Build Coastguard Workerdefine void @banerjee7(i64* %A, i64* %B, i64 %m, i64 %n) nounwind uwtable ssp { 444*9880d681SAndroid Build Coastguard Workerentry: 445*9880d681SAndroid Build Coastguard Worker br label %for.cond1.preheader 446*9880d681SAndroid Build Coastguard Worker 447*9880d681SAndroid Build Coastguard Worker; CHECK: 'Dependence Analysis' for function 'banerjee7': 448*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - none! 449*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - flow [> <=]! 450*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - confused! 451*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - none! 452*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - confused! 453*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - none! 454*9880d681SAndroid Build Coastguard Worker 455*9880d681SAndroid Build Coastguard Worker; DELIN: 'Dependence Analysis' for function 'banerjee7': 456*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - none! 457*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - flow [> <=]! 458*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - confused! 459*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - none! 460*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - confused! 461*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - none! 462*9880d681SAndroid Build Coastguard Worker 463*9880d681SAndroid Build Coastguard Workerfor.cond1.preheader: ; preds = %entry, %for.inc8 464*9880d681SAndroid Build Coastguard Worker %B.addr.04 = phi i64* [ %B, %entry ], [ %scevgep, %for.inc8 ] 465*9880d681SAndroid Build Coastguard Worker %i.03 = phi i64 [ 0, %entry ], [ %inc9, %for.inc8 ] 466*9880d681SAndroid Build Coastguard Worker br label %for.body3 467*9880d681SAndroid Build Coastguard Worker 468*9880d681SAndroid Build Coastguard Workerfor.body3: ; preds = %for.cond1.preheader, %for.body3 469*9880d681SAndroid Build Coastguard Worker %j.02 = phi i64 [ 0, %for.cond1.preheader ], [ %inc, %for.body3 ] 470*9880d681SAndroid Build Coastguard Worker %B.addr.11 = phi i64* [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ] 471*9880d681SAndroid Build Coastguard Worker %mul = mul nsw i64 %i.03, 10 472*9880d681SAndroid Build Coastguard Worker %add = add nsw i64 %mul, %j.02 473*9880d681SAndroid Build Coastguard Worker %arrayidx = getelementptr inbounds i64, i64* %A, i64 %add 474*9880d681SAndroid Build Coastguard Worker store i64 0, i64* %arrayidx, align 8 475*9880d681SAndroid Build Coastguard Worker %mul4 = mul nsw i64 %i.03, 10 476*9880d681SAndroid Build Coastguard Worker %add5 = add nsw i64 %mul4, %j.02 477*9880d681SAndroid Build Coastguard Worker %add6 = add nsw i64 %add5, 10 478*9880d681SAndroid Build Coastguard Worker %arrayidx7 = getelementptr inbounds i64, i64* %A, i64 %add6 479*9880d681SAndroid Build Coastguard Worker %0 = load i64, i64* %arrayidx7, align 8 480*9880d681SAndroid Build Coastguard Worker %incdec.ptr = getelementptr inbounds i64, i64* %B.addr.11, i64 1 481*9880d681SAndroid Build Coastguard Worker store i64 %0, i64* %B.addr.11, align 8 482*9880d681SAndroid Build Coastguard Worker %inc = add nsw i64 %j.02, 1 483*9880d681SAndroid Build Coastguard Worker %exitcond = icmp ne i64 %inc, 10 484*9880d681SAndroid Build Coastguard Worker br i1 %exitcond, label %for.body3, label %for.inc8 485*9880d681SAndroid Build Coastguard Worker 486*9880d681SAndroid Build Coastguard Workerfor.inc8: ; preds = %for.body3 487*9880d681SAndroid Build Coastguard Worker %scevgep = getelementptr i64, i64* %B.addr.04, i64 10 488*9880d681SAndroid Build Coastguard Worker %inc9 = add nsw i64 %i.03, 1 489*9880d681SAndroid Build Coastguard Worker %exitcond5 = icmp ne i64 %inc9, 10 490*9880d681SAndroid Build Coastguard Worker br i1 %exitcond5, label %for.cond1.preheader, label %for.end10 491*9880d681SAndroid Build Coastguard Worker 492*9880d681SAndroid Build Coastguard Workerfor.end10: ; preds = %for.inc8 493*9880d681SAndroid Build Coastguard Worker ret void 494*9880d681SAndroid Build Coastguard Worker} 495*9880d681SAndroid Build Coastguard Worker 496*9880d681SAndroid Build Coastguard Worker 497*9880d681SAndroid Build Coastguard Worker;; for (long int i = 0; i < 10; i++) 498*9880d681SAndroid Build Coastguard Worker;; for (long int j = 0; j < 10; j++) { 499*9880d681SAndroid Build Coastguard Worker;; A[10*i + j] = 0; 500*9880d681SAndroid Build Coastguard Worker;; *B++ = A[10*i + j + 11]; 501*9880d681SAndroid Build Coastguard Worker 502*9880d681SAndroid Build Coastguard Workerdefine void @banerjee8(i64* %A, i64* %B, i64 %m, i64 %n) nounwind uwtable ssp { 503*9880d681SAndroid Build Coastguard Workerentry: 504*9880d681SAndroid Build Coastguard Worker br label %for.cond1.preheader 505*9880d681SAndroid Build Coastguard Worker 506*9880d681SAndroid Build Coastguard Worker; CHECK: 'Dependence Analysis' for function 'banerjee8': 507*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - none! 508*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - flow [> <>]! 509*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - confused! 510*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - none! 511*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - confused! 512*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - none! 513*9880d681SAndroid Build Coastguard Worker 514*9880d681SAndroid Build Coastguard Worker; DELIN: 'Dependence Analysis' for function 'banerjee8': 515*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - none! 516*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - flow [> <>]! 517*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - confused! 518*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - none! 519*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - confused! 520*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - none! 521*9880d681SAndroid Build Coastguard Worker 522*9880d681SAndroid Build Coastguard Workerfor.cond1.preheader: ; preds = %entry, %for.inc8 523*9880d681SAndroid Build Coastguard Worker %B.addr.04 = phi i64* [ %B, %entry ], [ %scevgep, %for.inc8 ] 524*9880d681SAndroid Build Coastguard Worker %i.03 = phi i64 [ 0, %entry ], [ %inc9, %for.inc8 ] 525*9880d681SAndroid Build Coastguard Worker br label %for.body3 526*9880d681SAndroid Build Coastguard Worker 527*9880d681SAndroid Build Coastguard Workerfor.body3: ; preds = %for.cond1.preheader, %for.body3 528*9880d681SAndroid Build Coastguard Worker %j.02 = phi i64 [ 0, %for.cond1.preheader ], [ %inc, %for.body3 ] 529*9880d681SAndroid Build Coastguard Worker %B.addr.11 = phi i64* [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ] 530*9880d681SAndroid Build Coastguard Worker %mul = mul nsw i64 %i.03, 10 531*9880d681SAndroid Build Coastguard Worker %add = add nsw i64 %mul, %j.02 532*9880d681SAndroid Build Coastguard Worker %arrayidx = getelementptr inbounds i64, i64* %A, i64 %add 533*9880d681SAndroid Build Coastguard Worker store i64 0, i64* %arrayidx, align 8 534*9880d681SAndroid Build Coastguard Worker %mul4 = mul nsw i64 %i.03, 10 535*9880d681SAndroid Build Coastguard Worker %add5 = add nsw i64 %mul4, %j.02 536*9880d681SAndroid Build Coastguard Worker %add6 = add nsw i64 %add5, 11 537*9880d681SAndroid Build Coastguard Worker %arrayidx7 = getelementptr inbounds i64, i64* %A, i64 %add6 538*9880d681SAndroid Build Coastguard Worker %0 = load i64, i64* %arrayidx7, align 8 539*9880d681SAndroid Build Coastguard Worker %incdec.ptr = getelementptr inbounds i64, i64* %B.addr.11, i64 1 540*9880d681SAndroid Build Coastguard Worker store i64 %0, i64* %B.addr.11, align 8 541*9880d681SAndroid Build Coastguard Worker %inc = add nsw i64 %j.02, 1 542*9880d681SAndroid Build Coastguard Worker %exitcond = icmp ne i64 %inc, 10 543*9880d681SAndroid Build Coastguard Worker br i1 %exitcond, label %for.body3, label %for.inc8 544*9880d681SAndroid Build Coastguard Worker 545*9880d681SAndroid Build Coastguard Workerfor.inc8: ; preds = %for.body3 546*9880d681SAndroid Build Coastguard Worker %scevgep = getelementptr i64, i64* %B.addr.04, i64 10 547*9880d681SAndroid Build Coastguard Worker %inc9 = add nsw i64 %i.03, 1 548*9880d681SAndroid Build Coastguard Worker %exitcond5 = icmp ne i64 %inc9, 10 549*9880d681SAndroid Build Coastguard Worker br i1 %exitcond5, label %for.cond1.preheader, label %for.end10 550*9880d681SAndroid Build Coastguard Worker 551*9880d681SAndroid Build Coastguard Workerfor.end10: ; preds = %for.inc8 552*9880d681SAndroid Build Coastguard Worker ret void 553*9880d681SAndroid Build Coastguard Worker} 554*9880d681SAndroid Build Coastguard Worker 555*9880d681SAndroid Build Coastguard Worker 556*9880d681SAndroid Build Coastguard Worker;; for (long int i = 0; i < 20; i++) 557*9880d681SAndroid Build Coastguard Worker;; for (long int j = 0; j < 20; j++) { 558*9880d681SAndroid Build Coastguard Worker;; A[30*i + 500*j] = 0; 559*9880d681SAndroid Build Coastguard Worker;; *B++ = A[i - 500*j + 11]; 560*9880d681SAndroid Build Coastguard Worker 561*9880d681SAndroid Build Coastguard Workerdefine void @banerjee9(i64* %A, i64* %B, i64 %m, i64 %n) nounwind uwtable ssp { 562*9880d681SAndroid Build Coastguard Workerentry: 563*9880d681SAndroid Build Coastguard Worker br label %for.cond1.preheader 564*9880d681SAndroid Build Coastguard Worker 565*9880d681SAndroid Build Coastguard Worker; CHECK: 'Dependence Analysis' for function 'banerjee9': 566*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - output [* *]! 567*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - flow [<= =|<]! 568*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - confused! 569*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - none! 570*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - confused! 571*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - none! 572*9880d681SAndroid Build Coastguard Worker 573*9880d681SAndroid Build Coastguard Worker; DELIN: 'Dependence Analysis' for function 'banerjee9': 574*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - output [* *]! 575*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - flow [<= =|<]! 576*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - confused! 577*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - none! 578*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - confused! 579*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - none! 580*9880d681SAndroid Build Coastguard Worker 581*9880d681SAndroid Build Coastguard Workerfor.cond1.preheader: ; preds = %entry, %for.inc8 582*9880d681SAndroid Build Coastguard Worker %B.addr.04 = phi i64* [ %B, %entry ], [ %scevgep, %for.inc8 ] 583*9880d681SAndroid Build Coastguard Worker %i.03 = phi i64 [ 0, %entry ], [ %inc9, %for.inc8 ] 584*9880d681SAndroid Build Coastguard Worker br label %for.body3 585*9880d681SAndroid Build Coastguard Worker 586*9880d681SAndroid Build Coastguard Workerfor.body3: ; preds = %for.cond1.preheader, %for.body3 587*9880d681SAndroid Build Coastguard Worker %j.02 = phi i64 [ 0, %for.cond1.preheader ], [ %inc, %for.body3 ] 588*9880d681SAndroid Build Coastguard Worker %B.addr.11 = phi i64* [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ] 589*9880d681SAndroid Build Coastguard Worker %mul = mul nsw i64 %i.03, 30 590*9880d681SAndroid Build Coastguard Worker %mul4 = mul nsw i64 %j.02, 500 591*9880d681SAndroid Build Coastguard Worker %add = add nsw i64 %mul, %mul4 592*9880d681SAndroid Build Coastguard Worker %arrayidx = getelementptr inbounds i64, i64* %A, i64 %add 593*9880d681SAndroid Build Coastguard Worker store i64 0, i64* %arrayidx, align 8 594*9880d681SAndroid Build Coastguard Worker %0 = mul i64 %j.02, -500 595*9880d681SAndroid Build Coastguard Worker %sub = add i64 %i.03, %0 596*9880d681SAndroid Build Coastguard Worker %add6 = add nsw i64 %sub, 11 597*9880d681SAndroid Build Coastguard Worker %arrayidx7 = getelementptr inbounds i64, i64* %A, i64 %add6 598*9880d681SAndroid Build Coastguard Worker %1 = load i64, i64* %arrayidx7, align 8 599*9880d681SAndroid Build Coastguard Worker %incdec.ptr = getelementptr inbounds i64, i64* %B.addr.11, i64 1 600*9880d681SAndroid Build Coastguard Worker store i64 %1, i64* %B.addr.11, align 8 601*9880d681SAndroid Build Coastguard Worker %inc = add nsw i64 %j.02, 1 602*9880d681SAndroid Build Coastguard Worker %exitcond = icmp ne i64 %inc, 20 603*9880d681SAndroid Build Coastguard Worker br i1 %exitcond, label %for.body3, label %for.inc8 604*9880d681SAndroid Build Coastguard Worker 605*9880d681SAndroid Build Coastguard Workerfor.inc8: ; preds = %for.body3 606*9880d681SAndroid Build Coastguard Worker %scevgep = getelementptr i64, i64* %B.addr.04, i64 20 607*9880d681SAndroid Build Coastguard Worker %inc9 = add nsw i64 %i.03, 1 608*9880d681SAndroid Build Coastguard Worker %exitcond5 = icmp ne i64 %inc9, 20 609*9880d681SAndroid Build Coastguard Worker br i1 %exitcond5, label %for.cond1.preheader, label %for.end10 610*9880d681SAndroid Build Coastguard Worker 611*9880d681SAndroid Build Coastguard Workerfor.end10: ; preds = %for.inc8 612*9880d681SAndroid Build Coastguard Worker ret void 613*9880d681SAndroid Build Coastguard Worker} 614*9880d681SAndroid Build Coastguard Worker 615*9880d681SAndroid Build Coastguard Worker 616*9880d681SAndroid Build Coastguard Worker;; for (long int i = 0; i < 20; i++) 617*9880d681SAndroid Build Coastguard Worker;; for (long int j = 0; j < 20; j++) { 618*9880d681SAndroid Build Coastguard Worker;; A[i + 500*j] = 0; 619*9880d681SAndroid Build Coastguard Worker;; *B++ = A[i - 500*j + 11]; 620*9880d681SAndroid Build Coastguard Worker 621*9880d681SAndroid Build Coastguard Workerdefine void @banerjee10(i64* %A, i64* %B, i64 %m, i64 %n) nounwind uwtable ssp { 622*9880d681SAndroid Build Coastguard Workerentry: 623*9880d681SAndroid Build Coastguard Worker br label %for.cond1.preheader 624*9880d681SAndroid Build Coastguard Worker 625*9880d681SAndroid Build Coastguard Worker; CHECK: 'Dependence Analysis' for function 'banerjee10': 626*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - none! 627*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - flow [<> =]! 628*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - confused! 629*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - none! 630*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - confused! 631*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - none! 632*9880d681SAndroid Build Coastguard Worker 633*9880d681SAndroid Build Coastguard Worker; DELIN: 'Dependence Analysis' for function 'banerjee10': 634*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - none! 635*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - flow [<> =]! 636*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - confused! 637*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - none! 638*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - confused! 639*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - none! 640*9880d681SAndroid Build Coastguard Worker 641*9880d681SAndroid Build Coastguard Workerfor.cond1.preheader: ; preds = %entry, %for.inc7 642*9880d681SAndroid Build Coastguard Worker %B.addr.04 = phi i64* [ %B, %entry ], [ %scevgep, %for.inc7 ] 643*9880d681SAndroid Build Coastguard Worker %i.03 = phi i64 [ 0, %entry ], [ %inc8, %for.inc7 ] 644*9880d681SAndroid Build Coastguard Worker br label %for.body3 645*9880d681SAndroid Build Coastguard Worker 646*9880d681SAndroid Build Coastguard Workerfor.body3: ; preds = %for.cond1.preheader, %for.body3 647*9880d681SAndroid Build Coastguard Worker %j.02 = phi i64 [ 0, %for.cond1.preheader ], [ %inc, %for.body3 ] 648*9880d681SAndroid Build Coastguard Worker %B.addr.11 = phi i64* [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ] 649*9880d681SAndroid Build Coastguard Worker %mul = mul nsw i64 %j.02, 500 650*9880d681SAndroid Build Coastguard Worker %add = add nsw i64 %i.03, %mul 651*9880d681SAndroid Build Coastguard Worker %arrayidx = getelementptr inbounds i64, i64* %A, i64 %add 652*9880d681SAndroid Build Coastguard Worker store i64 0, i64* %arrayidx, align 8 653*9880d681SAndroid Build Coastguard Worker %0 = mul i64 %j.02, -500 654*9880d681SAndroid Build Coastguard Worker %sub = add i64 %i.03, %0 655*9880d681SAndroid Build Coastguard Worker %add5 = add nsw i64 %sub, 11 656*9880d681SAndroid Build Coastguard Worker %arrayidx6 = getelementptr inbounds i64, i64* %A, i64 %add5 657*9880d681SAndroid Build Coastguard Worker %1 = load i64, i64* %arrayidx6, align 8 658*9880d681SAndroid Build Coastguard Worker %incdec.ptr = getelementptr inbounds i64, i64* %B.addr.11, i64 1 659*9880d681SAndroid Build Coastguard Worker store i64 %1, i64* %B.addr.11, align 8 660*9880d681SAndroid Build Coastguard Worker %inc = add nsw i64 %j.02, 1 661*9880d681SAndroid Build Coastguard Worker %exitcond = icmp ne i64 %inc, 20 662*9880d681SAndroid Build Coastguard Worker br i1 %exitcond, label %for.body3, label %for.inc7 663*9880d681SAndroid Build Coastguard Worker 664*9880d681SAndroid Build Coastguard Workerfor.inc7: ; preds = %for.body3 665*9880d681SAndroid Build Coastguard Worker %scevgep = getelementptr i64, i64* %B.addr.04, i64 20 666*9880d681SAndroid Build Coastguard Worker %inc8 = add nsw i64 %i.03, 1 667*9880d681SAndroid Build Coastguard Worker %exitcond5 = icmp ne i64 %inc8, 20 668*9880d681SAndroid Build Coastguard Worker br i1 %exitcond5, label %for.cond1.preheader, label %for.end9 669*9880d681SAndroid Build Coastguard Worker 670*9880d681SAndroid Build Coastguard Workerfor.end9: ; preds = %for.inc7 671*9880d681SAndroid Build Coastguard Worker ret void 672*9880d681SAndroid Build Coastguard Worker} 673*9880d681SAndroid Build Coastguard Worker 674*9880d681SAndroid Build Coastguard Worker 675*9880d681SAndroid Build Coastguard Worker;; for (long int i = 0; i < 20; i++) 676*9880d681SAndroid Build Coastguard Worker;; for (long int j = 0; j < 20; j++) { 677*9880d681SAndroid Build Coastguard Worker;; A[300*i + j] = 0; 678*9880d681SAndroid Build Coastguard Worker;; *B++ = A[250*i - j + 11]; 679*9880d681SAndroid Build Coastguard Worker 680*9880d681SAndroid Build Coastguard Workerdefine void @banerjee11(i64* %A, i64* %B, i64 %m, i64 %n) nounwind uwtable ssp { 681*9880d681SAndroid Build Coastguard Workerentry: 682*9880d681SAndroid Build Coastguard Worker br label %for.cond1.preheader 683*9880d681SAndroid Build Coastguard Worker 684*9880d681SAndroid Build Coastguard Worker; CHECK: 'Dependence Analysis' for function 'banerjee11': 685*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - none! 686*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - flow [<= <>]! 687*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - confused! 688*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - none! 689*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - confused! 690*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - none! 691*9880d681SAndroid Build Coastguard Worker 692*9880d681SAndroid Build Coastguard Worker; DELIN: 'Dependence Analysis' for function 'banerjee11': 693*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - none! 694*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - flow [<= <>]! 695*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - confused! 696*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - none! 697*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - confused! 698*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - none! 699*9880d681SAndroid Build Coastguard Worker 700*9880d681SAndroid Build Coastguard Workerfor.cond1.preheader: ; preds = %entry, %for.inc7 701*9880d681SAndroid Build Coastguard Worker %B.addr.04 = phi i64* [ %B, %entry ], [ %scevgep, %for.inc7 ] 702*9880d681SAndroid Build Coastguard Worker %i.03 = phi i64 [ 0, %entry ], [ %inc8, %for.inc7 ] 703*9880d681SAndroid Build Coastguard Worker br label %for.body3 704*9880d681SAndroid Build Coastguard Worker 705*9880d681SAndroid Build Coastguard Workerfor.body3: ; preds = %for.cond1.preheader, %for.body3 706*9880d681SAndroid Build Coastguard Worker %j.02 = phi i64 [ 0, %for.cond1.preheader ], [ %inc, %for.body3 ] 707*9880d681SAndroid Build Coastguard Worker %B.addr.11 = phi i64* [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ] 708*9880d681SAndroid Build Coastguard Worker %mul = mul nsw i64 %i.03, 300 709*9880d681SAndroid Build Coastguard Worker %add = add nsw i64 %mul, %j.02 710*9880d681SAndroid Build Coastguard Worker %arrayidx = getelementptr inbounds i64, i64* %A, i64 %add 711*9880d681SAndroid Build Coastguard Worker store i64 0, i64* %arrayidx, align 8 712*9880d681SAndroid Build Coastguard Worker %mul4 = mul nsw i64 %i.03, 250 713*9880d681SAndroid Build Coastguard Worker %sub = sub nsw i64 %mul4, %j.02 714*9880d681SAndroid Build Coastguard Worker %add5 = add nsw i64 %sub, 11 715*9880d681SAndroid Build Coastguard Worker %arrayidx6 = getelementptr inbounds i64, i64* %A, i64 %add5 716*9880d681SAndroid Build Coastguard Worker %0 = load i64, i64* %arrayidx6, align 8 717*9880d681SAndroid Build Coastguard Worker %incdec.ptr = getelementptr inbounds i64, i64* %B.addr.11, i64 1 718*9880d681SAndroid Build Coastguard Worker store i64 %0, i64* %B.addr.11, align 8 719*9880d681SAndroid Build Coastguard Worker %inc = add nsw i64 %j.02, 1 720*9880d681SAndroid Build Coastguard Worker %exitcond = icmp ne i64 %inc, 20 721*9880d681SAndroid Build Coastguard Worker br i1 %exitcond, label %for.body3, label %for.inc7 722*9880d681SAndroid Build Coastguard Worker 723*9880d681SAndroid Build Coastguard Workerfor.inc7: ; preds = %for.body3 724*9880d681SAndroid Build Coastguard Worker %scevgep = getelementptr i64, i64* %B.addr.04, i64 20 725*9880d681SAndroid Build Coastguard Worker %inc8 = add nsw i64 %i.03, 1 726*9880d681SAndroid Build Coastguard Worker %exitcond5 = icmp ne i64 %inc8, 20 727*9880d681SAndroid Build Coastguard Worker br i1 %exitcond5, label %for.cond1.preheader, label %for.end9 728*9880d681SAndroid Build Coastguard Worker 729*9880d681SAndroid Build Coastguard Workerfor.end9: ; preds = %for.inc7 730*9880d681SAndroid Build Coastguard Worker ret void 731*9880d681SAndroid Build Coastguard Worker} 732*9880d681SAndroid Build Coastguard Worker 733*9880d681SAndroid Build Coastguard Worker 734*9880d681SAndroid Build Coastguard Worker;; for (long int i = 0; i < 20; i++) 735*9880d681SAndroid Build Coastguard Worker;; for (long int j = 0; j < 20; j++) { 736*9880d681SAndroid Build Coastguard Worker;; A[100*i + j] = 0; 737*9880d681SAndroid Build Coastguard Worker;; *B++ = A[100*i - j + 11]; 738*9880d681SAndroid Build Coastguard Worker 739*9880d681SAndroid Build Coastguard Workerdefine void @banerjee12(i64* %A, i64* %B, i64 %m, i64 %n) nounwind uwtable ssp { 740*9880d681SAndroid Build Coastguard Workerentry: 741*9880d681SAndroid Build Coastguard Worker br label %for.cond1.preheader 742*9880d681SAndroid Build Coastguard Worker 743*9880d681SAndroid Build Coastguard Worker; CHECK: 'Dependence Analysis' for function 'banerjee12': 744*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - none! 745*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - flow [= <>]! 746*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - confused! 747*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - none! 748*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - confused! 749*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - none! 750*9880d681SAndroid Build Coastguard Worker 751*9880d681SAndroid Build Coastguard Worker; DELIN: 'Dependence Analysis' for function 'banerjee12': 752*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - none! 753*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - flow [= <>]! 754*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - confused! 755*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - none! 756*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - confused! 757*9880d681SAndroid Build Coastguard Worker; DELIN: da analyze - none! 758*9880d681SAndroid Build Coastguard Worker 759*9880d681SAndroid Build Coastguard Workerfor.cond1.preheader: ; preds = %entry, %for.inc7 760*9880d681SAndroid Build Coastguard Worker %B.addr.04 = phi i64* [ %B, %entry ], [ %scevgep, %for.inc7 ] 761*9880d681SAndroid Build Coastguard Worker %i.03 = phi i64 [ 0, %entry ], [ %inc8, %for.inc7 ] 762*9880d681SAndroid Build Coastguard Worker br label %for.body3 763*9880d681SAndroid Build Coastguard Worker 764*9880d681SAndroid Build Coastguard Workerfor.body3: ; preds = %for.cond1.preheader, %for.body3 765*9880d681SAndroid Build Coastguard Worker %j.02 = phi i64 [ 0, %for.cond1.preheader ], [ %inc, %for.body3 ] 766*9880d681SAndroid Build Coastguard Worker %B.addr.11 = phi i64* [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ] 767*9880d681SAndroid Build Coastguard Worker %mul = mul nsw i64 %i.03, 100 768*9880d681SAndroid Build Coastguard Worker %add = add nsw i64 %mul, %j.02 769*9880d681SAndroid Build Coastguard Worker %arrayidx = getelementptr inbounds i64, i64* %A, i64 %add 770*9880d681SAndroid Build Coastguard Worker store i64 0, i64* %arrayidx, align 8 771*9880d681SAndroid Build Coastguard Worker %mul4 = mul nsw i64 %i.03, 100 772*9880d681SAndroid Build Coastguard Worker %sub = sub nsw i64 %mul4, %j.02 773*9880d681SAndroid Build Coastguard Worker %add5 = add nsw i64 %sub, 11 774*9880d681SAndroid Build Coastguard Worker %arrayidx6 = getelementptr inbounds i64, i64* %A, i64 %add5 775*9880d681SAndroid Build Coastguard Worker %0 = load i64, i64* %arrayidx6, align 8 776*9880d681SAndroid Build Coastguard Worker %incdec.ptr = getelementptr inbounds i64, i64* %B.addr.11, i64 1 777*9880d681SAndroid Build Coastguard Worker store i64 %0, i64* %B.addr.11, align 8 778*9880d681SAndroid Build Coastguard Worker %inc = add nsw i64 %j.02, 1 779*9880d681SAndroid Build Coastguard Worker %exitcond = icmp ne i64 %inc, 20 780*9880d681SAndroid Build Coastguard Worker br i1 %exitcond, label %for.body3, label %for.inc7 781*9880d681SAndroid Build Coastguard Worker 782*9880d681SAndroid Build Coastguard Workerfor.inc7: ; preds = %for.body3 783*9880d681SAndroid Build Coastguard Worker %scevgep = getelementptr i64, i64* %B.addr.04, i64 20 784*9880d681SAndroid Build Coastguard Worker %inc8 = add nsw i64 %i.03, 1 785*9880d681SAndroid Build Coastguard Worker %exitcond5 = icmp ne i64 %inc8, 20 786*9880d681SAndroid Build Coastguard Worker br i1 %exitcond5, label %for.cond1.preheader, label %for.end9 787*9880d681SAndroid Build Coastguard Worker 788*9880d681SAndroid Build Coastguard Workerfor.end9: ; preds = %for.inc7 789*9880d681SAndroid Build Coastguard Worker ret void 790*9880d681SAndroid Build Coastguard Worker} 791