diff options
Diffstat (limited to 'llvm/lib/Transforms')
| -rw-r--r-- | llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp | 2 | 
1 files changed, 2 insertions, 0 deletions
| diff --git a/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp b/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp index 204ce36b8a4..73ebd618a0c 100644 --- a/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp +++ b/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp @@ -2522,6 +2522,8 @@ void LSRInstance::GenerateICmpZeroScales(LSRUse &LU, unsigned LUIdx,      // Check that multiplying with the unfolded offset doesn't overflow.      if (F.UnfoldedOffset != 0) { +      if (F.UnfoldedOffset == INT64_MIN && Factor == -1) +        continue;        F.UnfoldedOffset = (uint64_t)F.UnfoldedOffset * Factor;        if (F.UnfoldedOffset / Factor != Base.UnfoldedOffset)          continue; | 

