From 826e9831a7f6f1a414d83373d1207c516c88089d Mon Sep 17 00:00:00 2001 From: David Majnemer Date: Fri, 29 Apr 2016 21:22:04 +0000 Subject: [PATCH] [ValueTracking] Make the code in lookThroughCast No functionality change is intended. llvm-svn: 268108 --- llvm/lib/Analysis/ValueTracking.cpp | 31 +++++++++++------------------ 1 file changed, 12 insertions(+), 19 deletions(-) diff --git a/llvm/lib/Analysis/ValueTracking.cpp b/llvm/lib/Analysis/ValueTracking.cpp index 4097322a2b9d..a0a294db5214 100644 --- a/llvm/lib/Analysis/ValueTracking.cpp +++ b/llvm/lib/Analysis/ValueTracking.cpp @@ -3714,30 +3714,23 @@ static Value *lookThroughCast(CmpInst *CmpI, Value *V1, Value *V2, return nullptr; } - if (isa(CI) && CmpI->isUnsigned()) - return ConstantExpr::getTrunc(C, CI->getSrcTy()); - - if (isa(CI)) - return ConstantExpr::getIntegerCast(C, CI->getSrcTy(), CmpI->isSigned()); - - if (isa(CI)) - return ConstantExpr::getFPExtend(C, CI->getSrcTy(), true); - - if (isa(CI)) - return ConstantExpr::getFPTrunc(C, CI->getSrcTy(), true); - - // Sophisticated constants can have values which we cannot easily reason - // about. Skip them for the fp<->int case. - if (isa(C)) - return nullptr; - Constant *CastedTo = nullptr; - // This is only valid if the truncated value can be sign-extended - // back to the original value. + if (isa(CI) && CmpI->isUnsigned()) + CastedTo = ConstantExpr::getTrunc(C, CI->getSrcTy()); + if (isa(CI) && CmpI->isSigned()) CastedTo = ConstantExpr::getTrunc(C, CI->getSrcTy(), true); + if (isa(CI)) + CastedTo = ConstantExpr::getIntegerCast(C, CI->getSrcTy(), CmpI->isSigned()); + + if (isa(CI)) + CastedTo = ConstantExpr::getFPExtend(C, CI->getSrcTy(), true); + + if (isa(CI)) + CastedTo = ConstantExpr::getFPTrunc(C, CI->getSrcTy(), true); + if (isa(CI)) CastedTo = ConstantExpr::getUIToFP(C, CI->getSrcTy(), true);