From c205a094bd5019773c98adcfbdc21c07c9da1888 Mon Sep 17 00:00:00 2001 From: Andrew Trick Date: Thu, 21 Jul 2011 01:45:54 +0000 Subject: [PATCH] LSR, correct fix for rdar://9786536. Silly casting bug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135654 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Transforms/Scalar/LoopStrengthReduce.cpp | 4 ++-- test/Transforms/LoopStrengthReduce/2011-07-20-DoubleIV.ll | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/Transforms/Scalar/LoopStrengthReduce.cpp b/lib/Transforms/Scalar/LoopStrengthReduce.cpp index 92864817aee..e79071535bd 100644 --- a/lib/Transforms/Scalar/LoopStrengthReduce.cpp +++ b/lib/Transforms/Scalar/LoopStrengthReduce.cpp @@ -1480,8 +1480,8 @@ void LSRInstance::OptimizeShadowIV() { ConstantInt *Init = dyn_cast(PH->getIncomingValue(Entry)); if (!Init) continue; Constant *NewInit = ConstantFP::get(DestTy, IsSigned ? - Init->getSExtValue() : - Init->getZExtValue()); + (double)Init->getSExtValue() : + (double)Init->getZExtValue()); BinaryOperator *Incr = dyn_cast(PH->getIncomingValue(Latch)); diff --git a/test/Transforms/LoopStrengthReduce/2011-07-20-DoubleIV.ll b/test/Transforms/LoopStrengthReduce/2011-07-20-DoubleIV.ll index aecb06cfb87..5d9ed64ef42 100644 --- a/test/Transforms/LoopStrengthReduce/2011-07-20-DoubleIV.ll +++ b/test/Transforms/LoopStrengthReduce/2011-07-20-DoubleIV.ll @@ -25,7 +25,7 @@ for.end: ; Now check that the computed double constant is correct. ; CHECK: @doubleIV -; CHECK: phi double [ 0x43F0000000000000, %entry ] +; CHECK: phi double [ -3.900000e+01, %entry ] ; CHECK: br define void @doubleIV() nounwind { entry: -- 2.34.1