1*9880d681SAndroid Build Coastguard Worker; RUN: opt < %s -analyze -basicaa -da | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Worker; ModuleID = 'WeakCrossingSIV.bc' 4*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" 5*9880d681SAndroid Build Coastguard Workertarget triple = "x86_64-apple-macosx10.6.0" 6*9880d681SAndroid Build Coastguard Worker 7*9880d681SAndroid Build Coastguard Worker 8*9880d681SAndroid Build Coastguard Worker;; for (long unsigned i = 0; i < n; i++) { 9*9880d681SAndroid Build Coastguard Worker;; A[1 + n*i] = i; 10*9880d681SAndroid Build Coastguard Worker;; *B++ = A[1 - n*i]; 11*9880d681SAndroid Build Coastguard Worker 12*9880d681SAndroid Build Coastguard Workerdefine void @weakcrossing0(i32* %A, i32* %B, i64 %n) nounwind uwtable ssp { 13*9880d681SAndroid Build Coastguard Workerentry: 14*9880d681SAndroid Build Coastguard Worker %cmp1 = icmp eq i64 %n, 0 15*9880d681SAndroid Build Coastguard Worker br i1 %cmp1, label %for.end, label %for.body.preheader 16*9880d681SAndroid Build Coastguard Worker 17*9880d681SAndroid Build Coastguard Workerfor.body.preheader: ; preds = %entry 18*9880d681SAndroid Build Coastguard Worker br label %for.body 19*9880d681SAndroid Build Coastguard Worker 20*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - none! 21*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - flow [0|<]! 22*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - confused! 23*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - none! 24*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - confused! 25*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - none! 26*9880d681SAndroid Build Coastguard Worker 27*9880d681SAndroid Build Coastguard Workerfor.body: ; preds = %for.body.preheader, %for.body 28*9880d681SAndroid Build Coastguard Worker %i.03 = phi i64 [ %inc, %for.body ], [ 0, %for.body.preheader ] 29*9880d681SAndroid Build Coastguard Worker %B.addr.02 = phi i32* [ %incdec.ptr, %for.body ], [ %B, %for.body.preheader ] 30*9880d681SAndroid Build Coastguard Worker %conv = trunc i64 %i.03 to i32 31*9880d681SAndroid Build Coastguard Worker %mul = mul i64 %i.03, %n 32*9880d681SAndroid Build Coastguard Worker %add = add i64 %mul, 1 33*9880d681SAndroid Build Coastguard Worker %arrayidx = getelementptr inbounds i32, i32* %A, i64 %add 34*9880d681SAndroid Build Coastguard Worker store i32 %conv, i32* %arrayidx, align 4 35*9880d681SAndroid Build Coastguard Worker %mul1 = mul i64 %i.03, %n 36*9880d681SAndroid Build Coastguard Worker %sub = sub i64 1, %mul1 37*9880d681SAndroid Build Coastguard Worker %arrayidx2 = getelementptr inbounds i32, i32* %A, i64 %sub 38*9880d681SAndroid Build Coastguard Worker %0 = load i32, i32* %arrayidx2, align 4 39*9880d681SAndroid Build Coastguard Worker %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1 40*9880d681SAndroid Build Coastguard Worker store i32 %0, i32* %B.addr.02, align 4 41*9880d681SAndroid Build Coastguard Worker %inc = add i64 %i.03, 1 42*9880d681SAndroid Build Coastguard Worker %exitcond = icmp ne i64 %inc, %n 43*9880d681SAndroid Build Coastguard Worker br i1 %exitcond, label %for.body, label %for.end.loopexit 44*9880d681SAndroid Build Coastguard Worker 45*9880d681SAndroid Build Coastguard Workerfor.end.loopexit: ; preds = %for.body 46*9880d681SAndroid Build Coastguard Worker br label %for.end 47*9880d681SAndroid Build Coastguard Worker 48*9880d681SAndroid Build Coastguard Workerfor.end: ; preds = %for.end.loopexit, %entry 49*9880d681SAndroid Build Coastguard Worker ret void 50*9880d681SAndroid Build Coastguard Worker} 51*9880d681SAndroid Build Coastguard Worker 52*9880d681SAndroid Build Coastguard Worker 53*9880d681SAndroid Build Coastguard Worker;; for (long unsigned i = 0; i < n; i++) { 54*9880d681SAndroid Build Coastguard Worker;; A[n + i] = i; 55*9880d681SAndroid Build Coastguard Worker;; *B++ = A[1 + n - i]; 56*9880d681SAndroid Build Coastguard Worker 57*9880d681SAndroid Build Coastguard Workerdefine void @weakcrossing1(i32* %A, i32* %B, i64 %n) nounwind uwtable ssp { 58*9880d681SAndroid Build Coastguard Workerentry: 59*9880d681SAndroid Build Coastguard Worker %cmp1 = icmp eq i64 %n, 0 60*9880d681SAndroid Build Coastguard Worker br i1 %cmp1, label %for.end, label %for.body.preheader 61*9880d681SAndroid Build Coastguard Worker 62*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - none! 63*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - flow [<>] splitable! 64*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - split level = 1, iteration = 0! 65*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - confused! 66*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - none! 67*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - confused! 68*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - none! 69*9880d681SAndroid Build Coastguard Worker 70*9880d681SAndroid Build Coastguard Workerfor.body.preheader: ; preds = %entry 71*9880d681SAndroid Build Coastguard Worker br label %for.body 72*9880d681SAndroid Build Coastguard Worker 73*9880d681SAndroid Build Coastguard Workerfor.body: ; preds = %for.body.preheader, %for.body 74*9880d681SAndroid Build Coastguard Worker %i.03 = phi i64 [ %inc, %for.body ], [ 0, %for.body.preheader ] 75*9880d681SAndroid Build Coastguard Worker %B.addr.02 = phi i32* [ %incdec.ptr, %for.body ], [ %B, %for.body.preheader ] 76*9880d681SAndroid Build Coastguard Worker %conv = trunc i64 %i.03 to i32 77*9880d681SAndroid Build Coastguard Worker %add = add i64 %i.03, %n 78*9880d681SAndroid Build Coastguard Worker %arrayidx = getelementptr inbounds i32, i32* %A, i64 %add 79*9880d681SAndroid Build Coastguard Worker store i32 %conv, i32* %arrayidx, align 4 80*9880d681SAndroid Build Coastguard Worker %add1 = add i64 %n, 1 81*9880d681SAndroid Build Coastguard Worker %sub = sub i64 %add1, %i.03 82*9880d681SAndroid Build Coastguard Worker %arrayidx2 = getelementptr inbounds i32, i32* %A, i64 %sub 83*9880d681SAndroid Build Coastguard Worker %0 = load i32, i32* %arrayidx2, align 4 84*9880d681SAndroid Build Coastguard Worker %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1 85*9880d681SAndroid Build Coastguard Worker store i32 %0, i32* %B.addr.02, align 4 86*9880d681SAndroid Build Coastguard Worker %inc = add i64 %i.03, 1 87*9880d681SAndroid Build Coastguard Worker %exitcond = icmp ne i64 %inc, %n 88*9880d681SAndroid Build Coastguard Worker br i1 %exitcond, label %for.body, label %for.end.loopexit 89*9880d681SAndroid Build Coastguard Worker 90*9880d681SAndroid Build Coastguard Workerfor.end.loopexit: ; preds = %for.body 91*9880d681SAndroid Build Coastguard Worker br label %for.end 92*9880d681SAndroid Build Coastguard Worker 93*9880d681SAndroid Build Coastguard Workerfor.end: ; preds = %for.end.loopexit, %entry 94*9880d681SAndroid Build Coastguard Worker ret void 95*9880d681SAndroid Build Coastguard Worker} 96*9880d681SAndroid Build Coastguard Worker 97*9880d681SAndroid Build Coastguard Worker 98*9880d681SAndroid Build Coastguard Worker;; for (long unsigned i = 0; i < 3; i++) { 99*9880d681SAndroid Build Coastguard Worker;; A[i] = i; 100*9880d681SAndroid Build Coastguard Worker;; *B++ = A[6 - i]; 101*9880d681SAndroid Build Coastguard Worker 102*9880d681SAndroid Build Coastguard Workerdefine void @weakcrossing2(i32* %A, i32* %B, i64 %n) nounwind uwtable ssp { 103*9880d681SAndroid Build Coastguard Workerentry: 104*9880d681SAndroid Build Coastguard Worker br label %for.body 105*9880d681SAndroid Build Coastguard Worker 106*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - none! 107*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - none! 108*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - confused! 109*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - none! 110*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - confused! 111*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - none! 112*9880d681SAndroid Build Coastguard Worker 113*9880d681SAndroid Build Coastguard Workerfor.body: ; preds = %entry, %for.body 114*9880d681SAndroid Build Coastguard Worker %i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ] 115*9880d681SAndroid Build Coastguard Worker %B.addr.01 = phi i32* [ %B, %entry ], [ %incdec.ptr, %for.body ] 116*9880d681SAndroid Build Coastguard Worker %conv = trunc i64 %i.02 to i32 117*9880d681SAndroid Build Coastguard Worker %arrayidx = getelementptr inbounds i32, i32* %A, i64 %i.02 118*9880d681SAndroid Build Coastguard Worker store i32 %conv, i32* %arrayidx, align 4 119*9880d681SAndroid Build Coastguard Worker %sub = sub i64 6, %i.02 120*9880d681SAndroid Build Coastguard Worker %arrayidx1 = getelementptr inbounds i32, i32* %A, i64 %sub 121*9880d681SAndroid Build Coastguard Worker %0 = load i32, i32* %arrayidx1, align 4 122*9880d681SAndroid Build Coastguard Worker %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1 123*9880d681SAndroid Build Coastguard Worker store i32 %0, i32* %B.addr.01, align 4 124*9880d681SAndroid Build Coastguard Worker %inc = add i64 %i.02, 1 125*9880d681SAndroid Build Coastguard Worker %exitcond = icmp ne i64 %inc, 3 126*9880d681SAndroid Build Coastguard Worker br i1 %exitcond, label %for.body, label %for.end 127*9880d681SAndroid Build Coastguard Worker 128*9880d681SAndroid Build Coastguard Workerfor.end: ; preds = %for.body 129*9880d681SAndroid Build Coastguard Worker ret void 130*9880d681SAndroid Build Coastguard Worker} 131*9880d681SAndroid Build Coastguard Worker 132*9880d681SAndroid Build Coastguard Worker 133*9880d681SAndroid Build Coastguard Worker;; for (long unsigned i = 0; i < 4; i++) { 134*9880d681SAndroid Build Coastguard Worker;; A[i] = i; 135*9880d681SAndroid Build Coastguard Worker;; *B++ = A[6 - i]; 136*9880d681SAndroid Build Coastguard Worker 137*9880d681SAndroid Build Coastguard Workerdefine void @weakcrossing3(i32* %A, i32* %B, i64 %n) nounwind uwtable ssp { 138*9880d681SAndroid Build Coastguard Workerentry: 139*9880d681SAndroid Build Coastguard Worker br label %for.body 140*9880d681SAndroid Build Coastguard Worker 141*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - none! 142*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - flow [0|<]! 143*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - confused! 144*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - none! 145*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - confused! 146*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - none! 147*9880d681SAndroid Build Coastguard Worker 148*9880d681SAndroid Build Coastguard Workerfor.body: ; preds = %entry, %for.body 149*9880d681SAndroid Build Coastguard Worker %i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ] 150*9880d681SAndroid Build Coastguard Worker %B.addr.01 = phi i32* [ %B, %entry ], [ %incdec.ptr, %for.body ] 151*9880d681SAndroid Build Coastguard Worker %conv = trunc i64 %i.02 to i32 152*9880d681SAndroid Build Coastguard Worker %arrayidx = getelementptr inbounds i32, i32* %A, i64 %i.02 153*9880d681SAndroid Build Coastguard Worker store i32 %conv, i32* %arrayidx, align 4 154*9880d681SAndroid Build Coastguard Worker %sub = sub i64 6, %i.02 155*9880d681SAndroid Build Coastguard Worker %arrayidx1 = getelementptr inbounds i32, i32* %A, i64 %sub 156*9880d681SAndroid Build Coastguard Worker %0 = load i32, i32* %arrayidx1, align 4 157*9880d681SAndroid Build Coastguard Worker %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1 158*9880d681SAndroid Build Coastguard Worker store i32 %0, i32* %B.addr.01, align 4 159*9880d681SAndroid Build Coastguard Worker %inc = add i64 %i.02, 1 160*9880d681SAndroid Build Coastguard Worker %exitcond = icmp ne i64 %inc, 4 161*9880d681SAndroid Build Coastguard Worker br i1 %exitcond, label %for.body, label %for.end 162*9880d681SAndroid Build Coastguard Worker 163*9880d681SAndroid Build Coastguard Workerfor.end: ; preds = %for.body 164*9880d681SAndroid Build Coastguard Worker ret void 165*9880d681SAndroid Build Coastguard Worker} 166*9880d681SAndroid Build Coastguard Worker 167*9880d681SAndroid Build Coastguard Worker 168*9880d681SAndroid Build Coastguard Worker;; for (long unsigned i = 0; i < 10; i++) { 169*9880d681SAndroid Build Coastguard Worker;; A[i] = i; 170*9880d681SAndroid Build Coastguard Worker;; *B++ = A[-6 - i]; 171*9880d681SAndroid Build Coastguard Worker 172*9880d681SAndroid Build Coastguard Workerdefine void @weakcrossing4(i32* %A, i32* %B, i64 %n) nounwind uwtable ssp { 173*9880d681SAndroid Build Coastguard Workerentry: 174*9880d681SAndroid Build Coastguard Worker br label %for.body 175*9880d681SAndroid Build Coastguard Worker 176*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - none! 177*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - none! 178*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - confused! 179*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - none! 180*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - confused! 181*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - none! 182*9880d681SAndroid Build Coastguard Worker 183*9880d681SAndroid Build Coastguard Workerfor.body: ; preds = %entry, %for.body 184*9880d681SAndroid Build Coastguard Worker %i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ] 185*9880d681SAndroid Build Coastguard Worker %B.addr.01 = phi i32* [ %B, %entry ], [ %incdec.ptr, %for.body ] 186*9880d681SAndroid Build Coastguard Worker %conv = trunc i64 %i.02 to i32 187*9880d681SAndroid Build Coastguard Worker %arrayidx = getelementptr inbounds i32, i32* %A, i64 %i.02 188*9880d681SAndroid Build Coastguard Worker store i32 %conv, i32* %arrayidx, align 4 189*9880d681SAndroid Build Coastguard Worker %sub = sub i64 -6, %i.02 190*9880d681SAndroid Build Coastguard Worker %arrayidx1 = getelementptr inbounds i32, i32* %A, i64 %sub 191*9880d681SAndroid Build Coastguard Worker %0 = load i32, i32* %arrayidx1, align 4 192*9880d681SAndroid Build Coastguard Worker %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1 193*9880d681SAndroid Build Coastguard Worker store i32 %0, i32* %B.addr.01, align 4 194*9880d681SAndroid Build Coastguard Worker %inc = add i64 %i.02, 1 195*9880d681SAndroid Build Coastguard Worker %exitcond = icmp ne i64 %inc, 10 196*9880d681SAndroid Build Coastguard Worker br i1 %exitcond, label %for.body, label %for.end 197*9880d681SAndroid Build Coastguard Worker 198*9880d681SAndroid Build Coastguard Workerfor.end: ; preds = %for.body 199*9880d681SAndroid Build Coastguard Worker ret void 200*9880d681SAndroid Build Coastguard Worker} 201*9880d681SAndroid Build Coastguard Worker 202*9880d681SAndroid Build Coastguard Worker 203*9880d681SAndroid Build Coastguard Worker;; for (long unsigned i = 0; i < n; i++) { 204*9880d681SAndroid Build Coastguard Worker;; A[3*i] = i; 205*9880d681SAndroid Build Coastguard Worker;; *B++ = A[5 - 3*i]; 206*9880d681SAndroid Build Coastguard Worker 207*9880d681SAndroid Build Coastguard Workerdefine void @weakcrossing5(i32* %A, i32* %B, i64 %n) nounwind uwtable ssp { 208*9880d681SAndroid Build Coastguard Workerentry: 209*9880d681SAndroid Build Coastguard Worker %cmp1 = icmp eq i64 %n, 0 210*9880d681SAndroid Build Coastguard Worker br i1 %cmp1, label %for.end, label %for.body.preheader 211*9880d681SAndroid Build Coastguard Worker 212*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - none! 213*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - none! 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 Workerfor.body.preheader: ; preds = %entry 220*9880d681SAndroid Build Coastguard Worker br label %for.body 221*9880d681SAndroid Build Coastguard Worker 222*9880d681SAndroid Build Coastguard Workerfor.body: ; preds = %for.body.preheader, %for.body 223*9880d681SAndroid Build Coastguard Worker %i.03 = phi i64 [ %inc, %for.body ], [ 0, %for.body.preheader ] 224*9880d681SAndroid Build Coastguard Worker %B.addr.02 = phi i32* [ %incdec.ptr, %for.body ], [ %B, %for.body.preheader ] 225*9880d681SAndroid Build Coastguard Worker %conv = trunc i64 %i.03 to i32 226*9880d681SAndroid Build Coastguard Worker %mul = mul i64 %i.03, 3 227*9880d681SAndroid Build Coastguard Worker %arrayidx = getelementptr inbounds i32, i32* %A, i64 %mul 228*9880d681SAndroid Build Coastguard Worker store i32 %conv, i32* %arrayidx, align 4 229*9880d681SAndroid Build Coastguard Worker %0 = mul i64 %i.03, -3 230*9880d681SAndroid Build Coastguard Worker %sub = add i64 %0, 5 231*9880d681SAndroid Build Coastguard Worker %arrayidx2 = getelementptr inbounds i32, i32* %A, i64 %sub 232*9880d681SAndroid Build Coastguard Worker %1 = load i32, i32* %arrayidx2, align 4 233*9880d681SAndroid Build Coastguard Worker %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1 234*9880d681SAndroid Build Coastguard Worker store i32 %1, i32* %B.addr.02, align 4 235*9880d681SAndroid Build Coastguard Worker %inc = add i64 %i.03, 1 236*9880d681SAndroid Build Coastguard Worker %exitcond = icmp ne i64 %inc, %n 237*9880d681SAndroid Build Coastguard Worker br i1 %exitcond, label %for.body, label %for.end.loopexit 238*9880d681SAndroid Build Coastguard Worker 239*9880d681SAndroid Build Coastguard Workerfor.end.loopexit: ; preds = %for.body 240*9880d681SAndroid Build Coastguard Worker br label %for.end 241*9880d681SAndroid Build Coastguard Worker 242*9880d681SAndroid Build Coastguard Workerfor.end: ; preds = %for.end.loopexit, %entry 243*9880d681SAndroid Build Coastguard Worker ret void 244*9880d681SAndroid Build Coastguard Worker} 245*9880d681SAndroid Build Coastguard Worker 246*9880d681SAndroid Build Coastguard Worker 247*9880d681SAndroid Build Coastguard Worker;; for (long unsigned i = 0; i < 4; i++) { 248*9880d681SAndroid Build Coastguard Worker;; A[i] = i; 249*9880d681SAndroid Build Coastguard Worker;; *B++ = A[5 - i]; 250*9880d681SAndroid Build Coastguard Worker 251*9880d681SAndroid Build Coastguard Workerdefine void @weakcrossing6(i32* %A, i32* %B, i64 %n) nounwind uwtable ssp { 252*9880d681SAndroid Build Coastguard Workerentry: 253*9880d681SAndroid Build Coastguard Worker br label %for.body 254*9880d681SAndroid Build Coastguard Worker 255*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - none! 256*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - flow [<>] splitable! 257*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - split level = 1, iteration = 2! 258*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - confused! 259*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - none! 260*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - confused! 261*9880d681SAndroid Build Coastguard Worker; CHECK: da analyze - none! 262*9880d681SAndroid Build Coastguard Worker 263*9880d681SAndroid Build Coastguard Workerfor.body: ; preds = %entry, %for.body 264*9880d681SAndroid Build Coastguard Worker %i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ] 265*9880d681SAndroid Build Coastguard Worker %B.addr.01 = phi i32* [ %B, %entry ], [ %incdec.ptr, %for.body ] 266*9880d681SAndroid Build Coastguard Worker %conv = trunc i64 %i.02 to i32 267*9880d681SAndroid Build Coastguard Worker %arrayidx = getelementptr inbounds i32, i32* %A, i64 %i.02 268*9880d681SAndroid Build Coastguard Worker store i32 %conv, i32* %arrayidx, align 4 269*9880d681SAndroid Build Coastguard Worker %sub = sub i64 5, %i.02 270*9880d681SAndroid Build Coastguard Worker %arrayidx1 = getelementptr inbounds i32, i32* %A, i64 %sub 271*9880d681SAndroid Build Coastguard Worker %0 = load i32, i32* %arrayidx1, align 4 272*9880d681SAndroid Build Coastguard Worker %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1 273*9880d681SAndroid Build Coastguard Worker store i32 %0, i32* %B.addr.01, align 4 274*9880d681SAndroid Build Coastguard Worker %inc = add i64 %i.02, 1 275*9880d681SAndroid Build Coastguard Worker %exitcond = icmp ne i64 %inc, 4 276*9880d681SAndroid Build Coastguard Worker br i1 %exitcond, label %for.body, label %for.end 277*9880d681SAndroid Build Coastguard Worker 278*9880d681SAndroid Build Coastguard Workerfor.end: ; preds = %for.body 279*9880d681SAndroid Build Coastguard Worker ret void 280*9880d681SAndroid Build Coastguard Worker} 281