how-far-to-zero.ll 978 B

123456789101112131415161718192021222324252627
  1. ; RUN: opt < %s -analyze -scalar-evolution | FileCheck %s
  2. ; PR13228
  3. define void @f() nounwind uwtable readnone {
  4. entry:
  5. br label %for.cond
  6. for.cond: ; preds = %for.cond, %entry
  7. %c.0 = phi i8 [ 1, %entry ], [ 0, %for.cond ]
  8. %i.0 = phi i8 [ 0, %entry ], [ %inc, %for.cond ]
  9. %lnot = icmp eq i8 %i.0, 0
  10. %inc = add i8 %i.0, 1
  11. br i1 %lnot, label %for.cond, label %while.cond
  12. while.cond: ; preds = %while.body, %for.cond
  13. %b.2 = phi i8 [ %add, %while.body ], [ 0, %for.cond ]
  14. br i1 undef, label %while.end, label %while.body
  15. while.body: ; preds = %while.cond
  16. %add = add i8 %b.2, %c.0
  17. %tobool7 = icmp eq i8 %add, 0
  18. br i1 %tobool7, label %while.end, label %while.cond
  19. while.end: ; preds = %while.body, %while.cond
  20. ret void
  21. }
  22. ;CHECK: Loop %while.cond: <multiple exits> Unpredictable backedge-taken count.