xref: /aosp_15_r20/external/llvm/test/Analysis/DependenceAnalysis/Banerjee.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
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