diff options
author | Chris Lattner <sabre@nondot.org> | 2004-06-15 21:36:44 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2004-06-15 21:36:44 +0000 |
commit | dc5724478e4b5e7de8af822518040348d695f57f (patch) | |
tree | 45fd5a512a7a740fc561f23992ada785e67e7499 /lib/Target/X86/InstSelectSimple.cpp | |
parent | 5e9a7ca75a4c6c091f0b2aa7139bb17e7094ee87 (diff) |
Add basic support for the isunordered intrinsic. The isnan stuff still needs to go
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14185 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/X86/InstSelectSimple.cpp')
-rw-r--r-- | lib/Target/X86/InstSelectSimple.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/lib/Target/X86/InstSelectSimple.cpp b/lib/Target/X86/InstSelectSimple.cpp index 87450909b6..984257c4bc 100644 --- a/lib/Target/X86/InstSelectSimple.cpp +++ b/lib/Target/X86/InstSelectSimple.cpp @@ -1664,6 +1664,7 @@ void ISel::LowerUnknownIntrinsicFunctionCalls(Function &F) { case Intrinsic::memcpy: case Intrinsic::memset: case Intrinsic::isnan: + case Intrinsic::isunordered: case Intrinsic::readport: case Intrinsic::writeport: // We directly implement these intrinsics @@ -1742,6 +1743,14 @@ void ISel::visitIntrinsicCall(Intrinsic::ID ID, CallInst &CI) { BuildMI(BB, X86::SETPr, 0, TmpReg2); return; + case Intrinsic::isunordered: + TmpReg1 = getReg(CI.getOperand(1)); + TmpReg2 = getReg(CI.getOperand(2)); + emitUCOMr(BB, BB->end(), TmpReg2, TmpReg1); + TmpReg2 = getReg(CI); + BuildMI(BB, X86::SETPr, 0, TmpReg2); + return; + case Intrinsic::memcpy: { assert(CI.getNumOperands() == 5 && "Illegal llvm.memcpy call!"); unsigned Align = 1; |