mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-19 01:48:34 +00:00
Remove the last use of getUnsignedVersion and getSignedVersion from VMCore.
ConstantInt doesn't care about the sign of the type it represents. It only cares about the bitwidth so there is no need to make the sign of the type match the SExt or ZExt constant expression. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32646 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
b1788a341c
commit
d54d8fa45a
@ -875,16 +875,14 @@ 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->getUnsignedVersion(),
|
||||
cast<ConstantIntegral>(V)->getZExtValue());
|
||||
V = ConstantInt::get(SrcTy, 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->getSignedVersion(),
|
||||
cast<ConstantIntegral>(V)->getSExtValue());
|
||||
V = ConstantInt::get(SrcTy, cast<ConstantIntegral>(V)->getSExtValue());
|
||||
else if (const ConstantBool *CB = dyn_cast<ConstantBool>(V))
|
||||
V = ConstantInt::get(Type::SByteTy, CB->getValue() ? -1 : 0);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user