Lines Matching refs:sibling

136 ; - %sibling.iv.next is non-negative;
139 define i32 @start.from.sibling.iv(i32* %len.ptr, i32* %sibling.len.ptr) {
140 ; CHECK-LABEL: @start.from.sibling.iv(
145 ; CHECK: sibling.loop:
149 ; CHECK: sibling.backedge:
173 ; CHECK: failed.sibling:
182 %sibling.len = load i32, i32* %sibling.len.ptr, !range !0
183 br label %sibling.loop
185 sibling.loop:
186 %sibling.iv = phi i32 [0, %entry], [%sibling.iv.next, %sibling.backedge]
187 %sibling.rc = icmp ult i32 %sibling.iv, %sibling.len
188 br i1 %sibling.rc, label %sibling.backedge, label %failed.sibling
190 sibling.backedge:
191 %sibling.iv.next = add nuw nsw i32 %sibling.iv, 1
192 %sibling.cond = call i1 @cond()
193 br i1 %sibling.cond, label %sibling.loop, label %preheader
199 %iv = phi i32 [%sibling.iv.next, %preheader], [%iv.next, %backedge]
220 failed.sibling:
228 ; Same as above, but the sibling loop is now wide. We can eliminate the unsigned comparison here.
229 define i32 @start.from.sibling.iv.wide(i32* %len.ptr, i32* %sibling.len.ptr) {
230 ; CHECK-LABEL: @start.from.sibling.iv.wide(
236 ; CHECK: sibling.loop:
240 ; CHECK: sibling.backedge:
264 ; CHECK: failed.sibling:
273 %sibling.len = load i32, i32* %sibling.len.ptr, !range !0
274 %sibling.len.wide = zext i32 %sibling.len to i64
275 br label %sibling.loop
277 sibling.loop:
278 %sibling.iv = phi i64 [0, %entry], [%sibling.iv.next, %sibling.backedge]
279 %sibling.rc = icmp ult i64 %sibling.iv, %sibling.len.wide
280 br i1 %sibling.rc, label %sibling.backedge, label %failed.sibling
282 sibling.backedge:
283 %sibling.iv.next = add nuw nsw i64 %sibling.iv, 1
284 %sibling.cond = call i1 @cond()
285 br i1 %sibling.cond, label %sibling.loop, label %preheader
288 %sibling.iv.next.trunc = trunc i64 %sibling.iv.next to i32
292 %iv = phi i32 [%sibling.iv.next.trunc, %preheader], [%iv.next, %backedge]
313 failed.sibling:
323 define i32 @start.from.sibling.iv.wide.cycled.phis(i32* %len.ptr, i32* %sibling.len.ptr) {
324 ; CHECK-LABEL: @start.from.sibling.iv.wide.cycled.phis(
330 ; CHECK: sibling.loop:
334 ; CHECK: sibling.backedge:
369 ; CHECK: failed.sibling:
378 %sibling.len = load i32, i32* %sibling.len.ptr, !range !0
379 %sibling.len.wide = zext i32 %sibling.len to i64
380 br label %sibling.loop
382 sibling.loop:
383 %sibling.iv = phi i64 [0, %entry], [%sibling.iv.next, %sibling.backedge]
384 %sibling.rc = icmp ult i64 %sibling.iv, %sibling.len.wide
385 br i1 %sibling.rc, label %sibling.backedge, label %failed.sibling
387 sibling.backedge:
388 %sibling.iv.next = add nuw nsw i64 %sibling.iv, 1
389 %sibling.cond = call i1 @cond()
390 br i1 %sibling.cond, label %sibling.loop, label %outer.loop.preheader
393 %sibling.iv.next.trunc = trunc i64 %sibling.iv.next to i32
397 …%iv.start = phi i32 [%sibling.iv.next.trunc, %outer.loop.preheader], [%iv.next, %outer.loop.backed…
430 failed.sibling:
441 define i32 @start.from.sibling.iv.wide.cycled.phis.complex.phis(i32* %len.ptr, i32* %sibling.len.pt…
442 ; CHECK-LABEL: @start.from.sibling.iv.wide.cycled.phis.complex.phis(
448 ; CHECK: sibling.loop:
452 ; CHECK: sibling.backedge:
501 ; CHECK: failed.sibling:
510 %sibling.len = load i32, i32* %sibling.len.ptr, !range !0
511 %sibling.len.wide = zext i32 %sibling.len to i64
512 br label %sibling.loop
514 sibling.loop:
515 %sibling.iv = phi i64 [0, %entry], [%sibling.iv.next, %sibling.backedge]
516 %sibling.rc = icmp ult i64 %sibling.iv, %sibling.len.wide
517 br i1 %sibling.rc, label %sibling.backedge, label %failed.sibling
519 sibling.backedge:
520 %sibling.iv.next = add nuw nsw i64 %sibling.iv, 1
521 %sibling.cond = call i1 @cond()
522 br i1 %sibling.cond, label %sibling.loop, label %outer.loop.preheader
525 %sibling.iv.next.trunc = trunc i64 %sibling.iv.next to i32
529 …%iv.start = phi i32 [%sibling.iv.next.trunc, %outer.loop.preheader], [%iv.start.updated, %outer.lo…
582 failed.sibling: