GlobalISel: correctly handle trivial fcmp predicates.

It makes sense to only do them once in IRTranslator rather than making everyone
deal with them.

llvm-svn: 297304
diff --git a/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp b/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
index 488869f..4d1ac68 100644
--- a/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
+++ b/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
@@ -193,9 +193,12 @@
   CmpInst::Predicate Pred =
       CI ? CI->getPredicate() : static_cast<CmpInst::Predicate>(
                                     cast<ConstantExpr>(U).getPredicate());
-
   if (CmpInst::isIntPredicate(Pred))
     MIRBuilder.buildICmp(Pred, Res, Op0, Op1);
+  else if (Pred == CmpInst::FCMP_FALSE)
+    MIRBuilder.buildConstant(Res, 0);
+  else if  (Pred == CmpInst::FCMP_TRUE)
+    MIRBuilder.buildConstant(Res, 1);
   else
     MIRBuilder.buildFCmp(Pred, Res, Op0, Op1);