Lines Matching refs:loop

2 ; RUN: opt -S -passes=loop-predication < %s 2>&1 | FileCheck %s
3 ; RUN: opt -S -passes='require<scalar-evolution>,loop-mssa(loop-predication)' -verify-memoryssa < %…
12 ; CHECK: outer.loop.preheader:
14 ; CHECK: outer.loop:
19 ; CHECK: inner.loop.preheader:
25 ; CHECK: inner.loop:
38 ; CHECK: outer.loop.inc.loopexit:
41 ; CHECK: outer.loop.inc:
55 br i1 %tmp5, label %exit, label %outer.loop.preheader
57 outer.loop.preheader:
58 br label %outer.loop
60 outer.loop:
61 %outer.loop.acc = phi i32 [ %outer.loop.acc.next, %outer.loop.inc ], [ 0, %outer.loop.preheader ]
62 %i = phi i32 [ %i.next, %outer.loop.inc ], [ 0, %outer.loop.preheader ]
64 br i1 %tmp6, label %outer.loop.inc, label %inner.loop.preheader
66 inner.loop.preheader:
67 br label %inner.loop
69 inner.loop:
70 …%inner.loop.acc = phi i32 [ %inner.loop.acc.next, %inner.loop ], [ %outer.loop.acc, %inner.loop.pr…
71 %j = phi i32 [ %j.next, %inner.loop ], [ 0, %inner.loop.preheader ]
79 %inner.loop.acc.next = add i32 %inner.loop.acc, %array.j
83 br i1 %inner.continue, label %inner.loop, label %outer.loop.inc
85 outer.loop.inc:
86 …%outer.loop.acc.next = phi i32 [ %inner.loop.acc.next, %inner.loop ], [ %outer.loop.acc, %outer.lo…
89 br i1 %outer.continue, label %outer.loop, label %exit
92 %result = phi i32 [ 0, %entry ], [ %outer.loop.acc.next, %outer.loop.inc ]
101 ; CHECK: outer.loop.preheader:
107 ; CHECK: outer.loop:
112 ; CHECK: inner.loop.preheader:
114 ; CHECK: inner.loop:
127 ; CHECK: outer.loop.inc.loopexit:
130 ; CHECK: outer.loop.inc:
144 br i1 %tmp5, label %exit, label %outer.loop.preheader
146 outer.loop.preheader:
147 br label %outer.loop
149 outer.loop:
150 %outer.loop.acc = phi i32 [ %outer.loop.acc.next, %outer.loop.inc ], [ 0, %outer.loop.preheader ]
151 %i = phi i32 [ %i.next, %outer.loop.inc ], [ 0, %outer.loop.preheader ]
153 br i1 %tmp6, label %outer.loop.inc, label %inner.loop.preheader
155 inner.loop.preheader:
156 br label %inner.loop
158 inner.loop:
160 …%inner.loop.acc = phi i32 [ %inner.loop.acc.next, %inner.loop ], [ %outer.loop.acc, %inner.loop.pr…
161 %j = phi i32 [ %j.next, %inner.loop ], [ 0, %inner.loop.preheader ]
169 %inner.loop.acc.next = add i32 %inner.loop.acc, %array.i
173 br i1 %inner.continue, label %inner.loop, label %outer.loop.inc
175 outer.loop.inc:
176 …%outer.loop.acc.next = phi i32 [ %inner.loop.acc.next, %inner.loop ], [ %outer.loop.acc, %outer.lo…
179 br i1 %outer.continue, label %outer.loop, label %exit
182 %result = phi i32 [ 0, %entry ], [ %outer.loop.acc.next, %outer.loop.inc ]
191 ; CHECK: outer.loop.preheader:
193 ; CHECK: outer.loop:
198 ; CHECK: inner.loop.preheader:
204 ; CHECK: inner.loop:
217 ; CHECK: outer.loop.inc.loopexit:
220 ; CHECK: outer.loop.inc:
234 br i1 %tmp5, label %exit, label %outer.loop.preheader
236 outer.loop.preheader:
237 br label %outer.loop
239 outer.loop:
240 %outer.loop.acc = phi i32 [ %outer.loop.acc.next, %outer.loop.inc ], [ 0, %outer.loop.preheader ]
241 %i = phi i32 [ %i.next, %outer.loop.inc ], [ 0, %outer.loop.preheader ]
243 br i1 %tmp6, label %outer.loop.inc, label %inner.loop.preheader
245 inner.loop.preheader:
246 br label %inner.loop
248 inner.loop:
249 …%inner.loop.acc = phi i32 [ %inner.loop.acc.next, %inner.loop ], [ %outer.loop.acc, %inner.loop.pr…
250 %j = phi i32 [ %j.next, %inner.loop ], [ %i, %inner.loop.preheader ]
258 %inner.loop.acc.next = add i32 %inner.loop.acc, %array.j
262 br i1 %inner.continue, label %inner.loop, label %outer.loop.inc
264 outer.loop.inc:
265 …%outer.loop.acc.next = phi i32 [ %inner.loop.acc.next, %inner.loop ], [ %outer.loop.acc, %outer.lo…
268 br i1 %outer.continue, label %outer.loop, label %exit
271 %result = phi i32 [ 0, %entry ], [ %outer.loop.acc.next, %outer.loop.inc ]
280 ; CHECK: outer.loop.preheader:
282 ; CHECK: outer.loop:
288 ; CHECK: inner.loop.preheader:
290 ; CHECK: inner.loop:
302 ; CHECK: outer.loop.inc.loopexit:
305 ; CHECK: outer.loop.inc:
319 br i1 %tmp5, label %exit, label %outer.loop.preheader
321 outer.loop.preheader:
322 br label %outer.loop
324 outer.loop:
325 %outer.loop.acc = phi i32 [ %outer.loop.acc.next, %outer.loop.inc ], [ 0, %outer.loop.preheader ]
326 %i = phi i32 [ %i.next, %outer.loop.inc ], [ 0, %outer.loop.preheader ]
329 br i1 %tmp6, label %outer.loop.inc, label %inner.loop.preheader
331 inner.loop.preheader:
332 br label %inner.loop
334 inner.loop:
335 …%inner.loop.acc = phi i32 [ %inner.loop.acc.next, %inner.loop ], [ %outer.loop.acc, %inner.loop.pr…
336 %j = phi i32 [ %j.next, %inner.loop ], [ %div, %inner.loop.preheader ]
344 %inner.loop.acc.next = add i32 %inner.loop.acc, %array.j
348 br i1 %inner.continue, label %inner.loop, label %outer.loop.inc
350 outer.loop.inc:
351 …%outer.loop.acc.next = phi i32 [ %inner.loop.acc.next, %inner.loop ], [ %outer.loop.acc, %outer.lo…
354 br i1 %outer.continue, label %outer.loop, label %exit
357 %result = phi i32 [ 0, %entry ], [ %outer.loop.acc.next, %outer.loop.inc ]