From 7be1c454c96dc5fa41ac10d014f76350df94f9cf Mon Sep 17 00:00:00 2001 From: Chris Lattner <sabre@nondot.org> Date: Mon, 19 May 2008 21:17:23 +0000 Subject: [PATCH] switch to Type::getFPMantissaWidth instead of reinventing it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51275 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Transforms/Scalar/InstructionCombining.cpp | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/lib/Transforms/Scalar/InstructionCombining.cpp b/lib/Transforms/Scalar/InstructionCombining.cpp index 10d3344598d..0c459cf1430 100644 --- a/lib/Transforms/Scalar/InstructionCombining.cpp +++ b/lib/Transforms/Scalar/InstructionCombining.cpp @@ -420,18 +420,6 @@ static const Type *getPromotedType(const Type *Ty) { return Ty; } -/// GetFPMantissaWidth - Return the width of the mantissa (aka significand) of -/// the specified floating point type in bits. This returns -1 if unknown. -static int GetFPMantissaWidth(const Type *FPType) { - if (FPType == Type::FloatTy) - return 24; - if (FPType == Type::DoubleTy) - return 53; - if (FPType == Type::X86_FP80Ty) - return 64; - return -1; // Unknown/crazy type. -} - /// getBitCastOperand - If the specified operand is a CastInst or a constant /// expression bitcast, return the operand value, otherwise return null. static Value *getBitCastOperand(Value *V) { @@ -5257,7 +5245,7 @@ Instruction *InstCombiner::FoldFCmp_IntToFP_Cst(FCmpInst &I, // Get the width of the mantissa. We don't want to hack on conversions that // might lose information from the integer, e.g. "i64 -> float" - int MantissaWidth = GetFPMantissaWidth(LHSI->getType()); + int MantissaWidth = LHSI->getType()->getFPMantissaWidth(); if (MantissaWidth == -1) return 0; // Unknown. // Check to see that the input is converted from an integer type that is small @@ -8007,7 +7995,7 @@ Instruction *InstCombiner::visitFPToUI(FPToUIInst &FI) { if (UIToFPInst *SrcI = dyn_cast<UIToFPInst>(FI.getOperand(0))) if (SrcI->getOperand(0)->getType() == FI.getType() && (int)FI.getType()->getPrimitiveSizeInBits() < /*extra bit for sign */ - GetFPMantissaWidth(SrcI->getType())) + SrcI->getType()->getFPMantissaWidth()) return ReplaceInstUsesWith(FI, SrcI->getOperand(0)); return commonCastTransforms(FI); @@ -8020,7 +8008,7 @@ Instruction *InstCombiner::visitFPToSI(FPToSIInst &FI) { if (SIToFPInst *SrcI = dyn_cast<SIToFPInst>(FI.getOperand(0))) if (SrcI->getOperand(0)->getType() == FI.getType() && (int)FI.getType()->getPrimitiveSizeInBits() <= - GetFPMantissaWidth(SrcI->getType())) + SrcI->getType()->getFPMantissaWidth()) return ReplaceInstUsesWith(FI, SrcI->getOperand(0)); return commonCastTransforms(FI);