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