Revert last patch. ConstantInt isn't quite ready for signlessness.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32650 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Reid Spencer 2006-12-18 04:22:56 +00:00
parent af58cae8cb
commit fdf15e1dc8

View File

@ -875,14 +875,16 @@ Constant *llvm::ConstantFoldCastInstruction(unsigned opc, const Constant *V,
// A ZExt always produces an unsigned value so we need to cast the value
// now before we try to cast it to the destination type
if (isa<ConstantInt>(V))
V = ConstantInt::get(SrcTy, cast<ConstantIntegral>(V)->getZExtValue());
V = ConstantInt::get(SrcTy->getUnsignedVersion(),
cast<ConstantIntegral>(V)->getZExtValue());
break;
case Instruction::SIToFP:
case Instruction::SExt:
// A SExt always produces a signed value so we need to cast the value
// now before we try to cast it to the destiniation type.
if (isa<ConstantInt>(V))
V = ConstantInt::get(SrcTy, cast<ConstantIntegral>(V)->getSExtValue());
V = ConstantInt::get(SrcTy->getSignedVersion(),
cast<ConstantIntegral>(V)->getSExtValue());
else if (const ConstantBool *CB = dyn_cast<ConstantBool>(V))
V = ConstantInt::get(Type::SByteTy, CB->getValue() ? -1 : 0);