pr12245.ll 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. ; RUN: opt < %s -basicaa -inline -instcombine -reassociate -dse -disable-output
  2. ; PR12245
  3. @a = common global i32 0, align 4
  4. @d = common global i32 0, align 4
  5. define i32 @fn2() nounwind uwtable ssp {
  6. entry:
  7. %0 = load i32, i32* @a, align 4
  8. %dec = add nsw i32 %0, -1
  9. store i32 %dec, i32* @a, align 4
  10. %1 = load i32, i32* @d, align 4
  11. %sub = sub nsw i32 %dec, %1
  12. store i32 %sub, i32* @d, align 4
  13. %2 = load i32, i32* @a, align 4
  14. %dec1 = add nsw i32 %2, -1
  15. store i32 %dec1, i32* @a, align 4
  16. %3 = load i32, i32* @d, align 4
  17. %sub2 = sub nsw i32 %dec1, %3
  18. store i32 %sub2, i32* @d, align 4
  19. %4 = load i32, i32* @a, align 4
  20. %dec3 = add nsw i32 %4, -1
  21. store i32 %dec3, i32* @a, align 4
  22. %5 = load i32, i32* @d, align 4
  23. %sub4 = sub nsw i32 %dec3, %5
  24. store i32 %sub4, i32* @d, align 4
  25. %6 = load i32, i32* @a, align 4
  26. %dec5 = add nsw i32 %6, -1
  27. store i32 %dec5, i32* @a, align 4
  28. %7 = load i32, i32* @d, align 4
  29. %sub6 = sub nsw i32 %dec5, %7
  30. store i32 %sub6, i32* @d, align 4
  31. %8 = load i32, i32* @a, align 4
  32. %dec7 = add nsw i32 %8, -1
  33. store i32 %dec7, i32* @a, align 4
  34. %9 = load i32, i32* @d, align 4
  35. %sub8 = sub nsw i32 %dec7, %9
  36. store i32 %sub8, i32* @d, align 4
  37. ret i32 0
  38. }
  39. define i32 @fn1() nounwind uwtable ssp {
  40. entry:
  41. %call = call i32 @fn2()
  42. ret i32 %call
  43. }