avoid-smax-0.ll 790 B

12345678910111213141516171819202122232425262728293031323334353637
  1. ; RUN: opt < %s -scalar-evolution -analyze | FileCheck %s
  2. ; CHECK: Loop %bb3: backedge-taken count is (-1 + %n)
  3. ; We don't want to use a max in the trip count expression in
  4. ; this testcase.
  5. define void @foo(i32 %n, i32* %p, i32* %q) nounwind {
  6. entry:
  7. icmp sgt i32 %n, 0
  8. br i1 %0, label %bb, label %return
  9. bb:
  10. load i32, i32* %q, align 4
  11. icmp eq i32 %1, 0
  12. br i1 %2, label %return, label %bb3.preheader
  13. bb3.preheader:
  14. br label %bb3
  15. bb3:
  16. %i.0 = phi i32 [ %7, %bb3 ], [ 0, %bb3.preheader ]
  17. getelementptr i32, i32* %p, i32 %i.0
  18. load i32, i32* %3, align 4
  19. add i32 %4, 1
  20. getelementptr i32, i32* %p, i32 %i.0
  21. store i32 %5, i32* %6, align 4
  22. add i32 %i.0, 1
  23. icmp slt i32 %7, %n
  24. br i1 %8, label %bb3, label %return.loopexit
  25. return.loopexit:
  26. br label %return
  27. return:
  28. ret void
  29. }