mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-08-27 15:29:51 +00:00
Added IRBuilder::CreateFPExtOrFPTrunc.
This method serves an analogous purpose to CreateZExtOrTrunc/CreateSExtOrTrunc but for floating point types. In detail, it provides a manner when one is handling conversions of floating point types of automatically selecting fpext, fptrunc, or identity depending on the relative bitsize of the source and destination types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172957 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
fe311dba3e
commit
8b28998777
@ -1048,6 +1048,20 @@ public:
|
||||
return CreateTrunc(V, DestTy, Name);
|
||||
return V;
|
||||
}
|
||||
/// CreateFPExtOrFPTrunc - Create a FPExt or FPTrunc from the float value V to
|
||||
/// DestTy. Return the value untouched if the type of V is already DestTy.
|
||||
Value *CreateFPExtOrFPTrunc(Value *V, Type *DestTy,
|
||||
const Twine &Name = "") {
|
||||
assert(V->getType()->isFPOrFPVectorTy() &&
|
||||
DestTy->isFPOrFPVectorTy() &&
|
||||
"Can only FPExt/FPTrunc floating point types!");
|
||||
Type *Ty = V->getType();
|
||||
if (Ty->getScalarSizeInBits() < DestTy->getScalarSizeInBits())
|
||||
return CreateFPExt(V, DestTy, Name);
|
||||
if (Ty->getScalarSizeInBits() > DestTy->getScalarSizeInBits())
|
||||
return CreateFPTrunc(V, DestTy, Name);
|
||||
return V;
|
||||
}
|
||||
Value *CreateFPToUI(Value *V, Type *DestTy, const Twine &Name = ""){
|
||||
return CreateCast(Instruction::FPToUI, V, DestTy, Name);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user