From: Manman Ren Date: Tue, 18 Nov 2014 00:33:22 +0000 (+0000) Subject: Revert r222040 because of bot failure. X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=8ce35351f81070f229606cd7020408906d696075;p=oota-llvm.git Revert r222040 because of bot failure. http://lab.llvm.org:8080/green/job/clang-Rlto_master/298/ Hopefully, bot will be green. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@222203 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Transforms/InstCombine/InstCombineCasts.cpp b/lib/Transforms/InstCombine/InstCombineCasts.cpp index a0570f7ebd4..b41cdc65202 100644 --- a/lib/Transforms/InstCombine/InstCombineCasts.cpp +++ b/lib/Transforms/InstCombine/InstCombineCasts.cpp @@ -1269,17 +1269,14 @@ Instruction *InstCombiner::visitFPTrunc(FPTruncInst &CI) { // type of OpI doesn't enter into things at all. We simply evaluate // in whichever source type is larger, then convert to the // destination type. - Value *NewLHS = LHSOrig, *NewRHS = RHSOrig; if (LHSWidth < SrcWidth) - NewLHS = Builder->CreateFPExt(NewLHS, RHSOrig->getType()); + LHSOrig = Builder->CreateFPExt(LHSOrig, RHSOrig->getType()); else if (RHSWidth <= SrcWidth) - NewRHS = Builder->CreateFPExt(NewRHS, LHSOrig->getType()); - if (NewLHS != LHSOrig || NewRHS != RHSOrig) { - Value *ExactResult = Builder->CreateFRem(NewLHS, NewRHS); - if (Instruction *RI = dyn_cast(ExactResult)) - RI->copyFastMathFlags(OpI); - return CastInst::CreateFPCast(ExactResult, CI.getType()); - } + RHSOrig = Builder->CreateFPExt(RHSOrig, LHSOrig->getType()); + Value *ExactResult = Builder->CreateFRem(LHSOrig, RHSOrig); + if (Instruction *RI = dyn_cast(ExactResult)) + RI->copyFastMathFlags(OpI); + return CastInst::CreateFPCast(ExactResult, CI.getType()); } // (fptrunc (fneg x)) -> (fneg (fptrunc x)) diff --git a/test/Transforms/InstCombine/fpcast.ll b/test/Transforms/InstCombine/fpcast.ll index c4c8578198b..9be66fd42c6 100644 --- a/test/Transforms/InstCombine/fpcast.ll +++ b/test/Transforms/InstCombine/fpcast.ll @@ -53,13 +53,3 @@ define half @test5(float %a, float %b, float %c) { } declare float @llvm.fabs.f32(float) nounwind readonly - -define <1 x float> @test6(<1 x double> %V) { - %frem = frem <1 x double> %V, %V - %trunc = fptrunc <1 x double> %frem to <1 x float> - ret <1 x float> %trunc -; CHECK-LABEL: @test6 -; CHECK-NEXT: %[[frem:.*]] = frem <1 x double> %V, %V -; CHECK-NEXT: %[[trunc:.*]] = fptrunc <1 x double> %[[frem]] to <1 x float> -; CHECK-NEXT: ret <1 x float> %trunc -}