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
diff --git a/lib/Target/X86/InstSelectSimple.cpp b/lib/Target/X86/InstSelectSimple.cpp
index 8745090..984257c 100644
--- a/lib/Target/X86/InstSelectSimple.cpp
+++ b/lib/Target/X86/InstSelectSimple.cpp
@@ -1664,6 +1664,7 @@
           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 @@
     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;