PR24757 was caused by some incorect math in
ScalarEvolution::HowFarToZero -- the smallest unsigned solution for X
in
2^N * A = 2^N * X
is not necessarily A.
Paths 
  |  Differential  D12721  
[ScalarEvolution] Fix PR24757. ClosedPublic Authored by sanjoy on Sep 9 2015, 2:29 AM. 
Details Summary PR24757 was caused by some incorect math in 2^N * A = 2^N * X is not necessarily A. 
Diff Detail 
 Event Timelinesanjoy updated this object. atrick edited edge metadata. Comment ActionsLGTM. I can't argue with the math. However, it would help intuitively if you provide one example of concrete values for distance and step that break the current code, in addition to your symbolic proof. This revision is now accepted and ready to land.Sep 9 2015, 9:31 PM sanjoy edited edge metadata. Comment Actions
 Closed by commit rL247242: [ScalarEvolution] Fix PR24757. (authored by sanjoy).  ·  Explain WhySep 9 2015, 10:29 PM This revision was automatically updated to reflect the committed changes. 
Revision Contents 
 
Diff 34412 llvm/trunk/lib/Analysis/ScalarEvolution.cpp
 
 llvm/trunk/test/Analysis/ScalarEvolution/pr24757.ll
  | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||