mirror of
https://github.com/RPCS3/llvm.git
synced 2025-01-20 17:03:09 +00:00
llvm 2.0 doesn't support llvm.isunordered.*
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32994 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
f1d71b537c
commit
f01da5939d
@ -161,10 +161,6 @@ let Properties = [IntrWriteArgMem] in {
|
||||
}
|
||||
|
||||
let Properties = [IntrNoMem] in {
|
||||
def int_isunordered_f32 : Intrinsic<[llvm_bool_ty,
|
||||
llvm_float_ty, llvm_float_ty]>;
|
||||
def int_isunordered_f64 : Intrinsic<[llvm_bool_ty,
|
||||
llvm_double_ty, llvm_double_ty]>;
|
||||
def int_sqrt_f32 : Intrinsic<[llvm_float_ty , llvm_float_ty]>;
|
||||
def int_sqrt_f64 : Intrinsic<[llvm_double_ty, llvm_double_ty]>;
|
||||
|
||||
|
@ -92,11 +92,6 @@ void IntrinsicLowering::AddPrototypes(Module &M) {
|
||||
Type::Int32Ty, (--(--I->arg_end()))->getType(),
|
||||
(Type *)0);
|
||||
break;
|
||||
case Intrinsic::isunordered_f32:
|
||||
case Intrinsic::isunordered_f64:
|
||||
EnsureFunctionExists(M, "isunordered", I->arg_begin(), I->arg_end(),
|
||||
Type::BoolTy);
|
||||
break;
|
||||
case Intrinsic::sqrt_f32:
|
||||
case Intrinsic::sqrt_f64:
|
||||
if(I->arg_begin()->getType() == Type::FloatTy)
|
||||
@ -392,18 +387,6 @@ void IntrinsicLowering::LowerIntrinsicCall(CallInst *CI) {
|
||||
(*(CI->op_begin()+1))->getType(), MemsetFCache);
|
||||
break;
|
||||
}
|
||||
case Intrinsic::isunordered_f32:
|
||||
case Intrinsic::isunordered_f64: {
|
||||
Value *L = CI->getOperand(1);
|
||||
Value *R = CI->getOperand(2);
|
||||
|
||||
Value *LIsNan = new FCmpInst(FCmpInst::FCMP_ONE, L, L, "LIsNan", CI);
|
||||
Value *RIsNan = new FCmpInst(FCmpInst::FCMP_ONE, R, R, "RIsNan", CI);
|
||||
CI->replaceAllUsesWith(
|
||||
BinaryOperator::create(Instruction::Or, LIsNan, RIsNan,
|
||||
"isunordered", CI));
|
||||
break;
|
||||
}
|
||||
case Intrinsic::sqrt_f32: {
|
||||
static Constant *sqrtfFCache = 0;
|
||||
ReplaceCallWith("sqrtf", CI, CI->op_begin()+1, CI->op_end(),
|
||||
|
Loading…
x
Reference in New Issue
Block a user