reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

Declarations

include/llvm/IR/Instruction.def
  207 HANDLE_OTHER_INST(54, FCmp   , FCmpInst   )  // Floating point comparison instr.

References

include/llvm/CodeGen/Analysis.h
  108 ISD::CondCode getFCmpCondCode(FCmpInst::Predicate Pred);
include/llvm/IR/IRBuilder.h
 2161     return CreateFCmp(FCmpInst::FCMP_OEQ, LHS, RHS, Name, FPMathTag);
 2166     return CreateFCmp(FCmpInst::FCMP_OGT, LHS, RHS, Name, FPMathTag);
 2171     return CreateFCmp(FCmpInst::FCMP_OGE, LHS, RHS, Name, FPMathTag);
 2176     return CreateFCmp(FCmpInst::FCMP_OLT, LHS, RHS, Name, FPMathTag);
 2181     return CreateFCmp(FCmpInst::FCMP_OLE, LHS, RHS, Name, FPMathTag);
 2186     return CreateFCmp(FCmpInst::FCMP_ONE, LHS, RHS, Name, FPMathTag);
 2191     return CreateFCmp(FCmpInst::FCMP_ORD, LHS, RHS, Name, FPMathTag);
 2196     return CreateFCmp(FCmpInst::FCMP_UNO, LHS, RHS, Name, FPMathTag);
 2201     return CreateFCmp(FCmpInst::FCMP_UEQ, LHS, RHS, Name, FPMathTag);
 2206     return CreateFCmp(FCmpInst::FCMP_UGT, LHS, RHS, Name, FPMathTag);
 2211     return CreateFCmp(FCmpInst::FCMP_UGE, LHS, RHS, Name, FPMathTag);
 2216     return CreateFCmp(FCmpInst::FCMP_ULT, LHS, RHS, Name, FPMathTag);
 2221     return CreateFCmp(FCmpInst::FCMP_ULE, LHS, RHS, Name, FPMathTag);
 2226     return CreateFCmp(FCmpInst::FCMP_UNE, LHS, RHS, Name, FPMathTag);
 2242     return Insert(setFPAttrs(new FCmpInst(P, LHS, RHS), FPMathTag, FMF), Name);
include/llvm/IR/InstVisitor.h
  169   RetTy visitFCmpInst(FCmpInst &I)                { DELEGATE(CmpInst);}
include/llvm/IR/Instructions.h
 1309   FCmpInst *cloneImpl() const;
include/llvm/IR/NoFolder.h
  306     return new FCmpInst(P, LHS, RHS);
include/llvm/IR/PatternMatch.h
 1133     if (auto *I = dyn_cast<Class>(V))
 1133     if (auto *I = dyn_cast<Class>(V))
 1157 inline CmpClass_match<LHS, RHS, FCmpInst, FCmpInst::Predicate>
 1157 inline CmpClass_match<LHS, RHS, FCmpInst, FCmpInst::Predicate>
 1158 m_FCmp(FCmpInst::Predicate &Pred, const LHS &L, const RHS &R) {
 1159   return CmpClass_match<LHS, RHS, FCmpInst, FCmpInst::Predicate>(Pred, L, R);
 1159   return CmpClass_match<LHS, RHS, FCmpInst, FCmpInst::Predicate>(Pred, L, R);
 1444     auto *Cmp = dyn_cast<CmpInst_t>(SI->getCondition());
 1444     auto *Cmp = dyn_cast<CmpInst_t>(SI->getCondition());
 1456     typename CmpInst_t::Predicate Pred =
 1497   static bool match(FCmpInst::Predicate Pred) {
 1504   static bool match(FCmpInst::Predicate Pred) {
 1511   static bool match(FCmpInst::Predicate Pred) {
 1518   static bool match(FCmpInst::Predicate Pred) {
 1557 inline MaxMin_match<FCmpInst, LHS, RHS, ofmax_pred_ty> m_OrdFMax(const LHS &L,
 1559   return MaxMin_match<FCmpInst, LHS, RHS, ofmax_pred_ty>(L, R);
 1572 inline MaxMin_match<FCmpInst, LHS, RHS, ofmin_pred_ty> m_OrdFMin(const LHS &L,
 1574   return MaxMin_match<FCmpInst, LHS, RHS, ofmin_pred_ty>(L, R);
 1587 inline MaxMin_match<FCmpInst, LHS, RHS, ufmax_pred_ty>
 1589   return MaxMin_match<FCmpInst, LHS, RHS, ufmax_pred_ty>(L, R);
 1602 inline MaxMin_match<FCmpInst, LHS, RHS, ufmin_pred_ty>
 1604   return MaxMin_match<FCmpInst, LHS, RHS, ufmin_pred_ty>(L, R);
include/llvm/Support/Casting.h
   58     return To::classof(&Val);
  106     return isa_impl<To, From>::doit(*Val);
  122     return isa_impl_wrap<To, SimpleFrom,
  132     return isa_impl_cl<To,FromTy>::doit(Val);
  142   return isa_impl_wrap<X, const Y,
  172   using ret_type = To *;       // Pointer arg case, return Ty*
  176   using ret_type = const To *; // Constant pointer arg case, return const Ty*
  198   using ret_type = typename cast_retty<To, SimpleFrom>::ret_type;
  204   using ret_type = typename cast_retty_impl<To,FromTy>::ret_type;
  210       To, From, typename simplify_type<From>::SimpleType>::ret_type;
  227   static typename cast_retty<To, FromTy>::ret_type doit(const FromTy &Val) {
  228     typename cast_retty<To, FromTy>::ret_type Res2
  256 inline typename cast_retty<X, Y>::ret_type cast(Y &Val) {
  263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
  265   return cast_convert_val<X, Y*,
  337 LLVM_NODISCARD inline typename cast_retty<X, Y>::ret_type dyn_cast(Y &Val) {
  342 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type dyn_cast(Y *Val) {
  343   return isa<X>(Val) ? cast<X>(Val) : nullptr;
  343   return isa<X>(Val) ? cast<X>(Val) : nullptr;
  366 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type
  368   return (Val && isa<X>(Val)) ? cast<X>(Val) : nullptr;
  368   return (Val && isa<X>(Val)) ? cast<X>(Val) : nullptr;
lib/Analysis/BranchProbabilityInfo.cpp
  784   FCmpInst *FCmp = dyn_cast<FCmpInst>(Cond);
  784   FCmpInst *FCmp = dyn_cast<FCmpInst>(Cond);
  795   } else if (FCmp->getPredicate() == FCmpInst::FCMP_ORD) {
  800   } else if (FCmp->getPredicate() == FCmpInst::FCMP_UNO) {
lib/Analysis/IVDescriptors.cpp
  292         !isa<ICmpInst>(Cur) && !isa<FCmpInst>(Cur) &&
  328     if (Kind == RK_FloatMinMax && (isa<FCmpInst>(Cur) || isa<SelectInst>(Cur)))
  377                  ((!isa<FCmpInst>(UI) && !isa<ICmpInst>(UI) &&
  470   if ((Cmp = dyn_cast<ICmpInst>(I)) || (Cmp = dyn_cast<FCmpInst>(I))) {
  480       !(Cmp = dyn_cast<FCmpInst>(I->getOperand(0))))
lib/Analysis/InstructionSimplify.cpp
 1757                                    FCmpInst *LHS, FCmpInst *RHS, bool IsAnd) {
 1757                                    FCmpInst *LHS, FCmpInst *RHS, bool IsAnd) {
 1763   FCmpInst::Predicate PredL = LHS->getPredicate(), PredR = RHS->getPredicate();
 1764   if ((PredL == FCmpInst::FCMP_ORD && PredR == FCmpInst::FCMP_ORD && IsAnd) ||
 1764   if ((PredL == FCmpInst::FCMP_ORD && PredR == FCmpInst::FCMP_ORD && IsAnd) ||
 1765       (PredL == FCmpInst::FCMP_UNO && PredR == FCmpInst::FCMP_UNO && !IsAnd)) {
 1765       (PredL == FCmpInst::FCMP_UNO && PredR == FCmpInst::FCMP_UNO && !IsAnd)) {
 1812   auto *FCmp0 = dyn_cast<FCmpInst>(Op0);
 1812   auto *FCmp0 = dyn_cast<FCmpInst>(Op0);
 1813   auto *FCmp1 = dyn_cast<FCmpInst>(Op1);
 1813   auto *FCmp1 = dyn_cast<FCmpInst>(Op1);
 3493   if (Pred == FCmpInst::FCMP_FALSE)
 3495   if (Pred == FCmpInst::FCMP_TRUE)
 3499   if (Pred == FCmpInst::FCMP_UNO || Pred == FCmpInst::FCMP_ORD)
 3499   if (Pred == FCmpInst::FCMP_UNO || Pred == FCmpInst::FCMP_ORD)
 3502       return ConstantInt::get(RetTy, Pred == FCmpInst::FCMP_ORD);
 3535         case FCmpInst::FCMP_OLT:
 3538         case FCmpInst::FCMP_UGE:
 3546         case FCmpInst::FCMP_OGT:
 3549         case FCmpInst::FCMP_ULE:
 3562       case FCmpInst::FCMP_UGE:
 3563       case FCmpInst::FCMP_UGT:
 3564       case FCmpInst::FCMP_UNE:
 3569       case FCmpInst::FCMP_OEQ:
 3570       case FCmpInst::FCMP_OLE:
 3571       case FCmpInst::FCMP_OLT:
 3592       case FCmpInst::FCMP_OEQ: case FCmpInst::FCMP_UEQ:
 3592       case FCmpInst::FCMP_OEQ: case FCmpInst::FCMP_UEQ:
 3596       case FCmpInst::FCMP_ONE: case FCmpInst::FCMP_UNE:
 3596       case FCmpInst::FCMP_ONE: case FCmpInst::FCMP_UNE:
 3600       case FCmpInst::FCMP_OGE: case FCmpInst::FCMP_UGE:
 3600       case FCmpInst::FCMP_OGE: case FCmpInst::FCMP_UGE:
 3601       case FCmpInst::FCMP_OGT: case FCmpInst::FCMP_UGT:
 3601       case FCmpInst::FCMP_OGT: case FCmpInst::FCMP_UGT:
 3607       case FCmpInst::FCMP_OLE: case FCmpInst::FCMP_ULE:
 3607       case FCmpInst::FCMP_OLE: case FCmpInst::FCMP_ULE:
 3608       case FCmpInst::FCMP_OLT: case FCmpInst::FCMP_ULT:
 3608       case FCmpInst::FCMP_OLT: case FCmpInst::FCMP_ULT:
 3623     case FCmpInst::FCMP_OGE:
 3624     case FCmpInst::FCMP_ULT:
 3629         return Pred == FCmpInst::FCMP_OGE ? getTrue(RetTy) : getFalse(RetTy);
 3631     case FCmpInst::FCMP_UGE:
 3632     case FCmpInst::FCMP_OLT:
 3636         return Pred == FCmpInst::FCMP_UGE ? getTrue(RetTy) : getFalse(RetTy);
 3907   FCmpInst::Predicate Pred;
 3920     if (Pred == FCmpInst::FCMP_OEQ)
 3925     if (Pred == FCmpInst::FCMP_UNE)
 5326         SimplifyFCmpInst(cast<FCmpInst>(I)->getPredicate(), I->getOperand(0),
lib/Analysis/ValueTracking.cpp
 4870     case FCmpInst::FCMP_UGT:
 4871     case FCmpInst::FCMP_UGE:
 4872     case FCmpInst::FCMP_OGT:
 4873     case FCmpInst::FCMP_OGE: return {SPF_FMAXNUM, NaNBehavior, Ordered};
 4874     case FCmpInst::FCMP_ULT:
 4875     case FCmpInst::FCMP_ULE:
 4876     case FCmpInst::FCMP_OLT:
 4877     case FCmpInst::FCMP_OLE: return {SPF_FMINNUM, NaNBehavior, Ordered};
 5115     return Ordered ? FCmpInst::FCMP_OLT : FCmpInst::FCMP_ULT;
 5115     return Ordered ? FCmpInst::FCMP_OLT : FCmpInst::FCMP_ULT;
 5117     return Ordered ? FCmpInst::FCMP_OGT : FCmpInst::FCMP_UGT;
 5117     return Ordered ? FCmpInst::FCMP_OGT : FCmpInst::FCMP_UGT;
lib/AsmParser/LLParser.cpp
 6525     Inst = new FCmpInst(CmpInst::Predicate(Pred), LHS, RHS);
lib/Bitcode/Reader/BitcodeReader.cpp
 4201         I = new FCmpInst((FCmpInst::Predicate)PredVal, LHS, RHS);
lib/CodeGen/Analysis.cpp
  201 ISD::CondCode llvm::getFCmpCondCode(FCmpInst::Predicate Pred) {
  203   case FCmpInst::FCMP_FALSE: return ISD::SETFALSE;
  204   case FCmpInst::FCMP_OEQ:   return ISD::SETOEQ;
  205   case FCmpInst::FCMP_OGT:   return ISD::SETOGT;
  206   case FCmpInst::FCMP_OGE:   return ISD::SETOGE;
  207   case FCmpInst::FCMP_OLT:   return ISD::SETOLT;
  208   case FCmpInst::FCMP_OLE:   return ISD::SETOLE;
  209   case FCmpInst::FCMP_ONE:   return ISD::SETONE;
  210   case FCmpInst::FCMP_ORD:   return ISD::SETO;
  211   case FCmpInst::FCMP_UNO:   return ISD::SETUO;
  212   case FCmpInst::FCMP_UEQ:   return ISD::SETUEQ;
  213   case FCmpInst::FCMP_UGT:   return ISD::SETUGT;
  214   case FCmpInst::FCMP_UGE:   return ISD::SETUGE;
  215   case FCmpInst::FCMP_ULT:   return ISD::SETULT;
  216   case FCmpInst::FCMP_ULE:   return ISD::SETULE;
  217   case FCmpInst::FCMP_UNE:   return ISD::SETUNE;
  218   case FCmpInst::FCMP_TRUE:  return ISD::SETTRUE;
lib/CodeGen/CodeGenPrepare.cpp
 1356   if (TLI.useSoftFloat() && isa<FCmpInst>(Cmp))
lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
 2047         const FCmpInst *FC = cast<FCmpInst>(Cond);
 2047         const FCmpInst *FC = cast<FCmpInst>(Cond);
 2048         FCmpInst::Predicate Pred =
 3224   FCmpInst::Predicate predicate = FCmpInst::BAD_FCMP_PREDICATE;
 3224   FCmpInst::Predicate predicate = FCmpInst::BAD_FCMP_PREDICATE;
 3225   if (const FCmpInst *FC = dyn_cast<FCmpInst>(&I))
 3225   if (const FCmpInst *FC = dyn_cast<FCmpInst>(&I))
lib/ExecutionEngine/Interpreter/Execution.cpp
  663 void Interpreter::visitFCmpInst(FCmpInst &I) {
  675   case FCmpInst::FCMP_FALSE: R = executeFCMP_BOOL(Src1, Src2, Ty, false);
  677   case FCmpInst::FCMP_TRUE:  R = executeFCMP_BOOL(Src1, Src2, Ty, true);
  679   case FCmpInst::FCMP_ORD:   R = executeFCMP_ORD(Src1, Src2, Ty); break;
  680   case FCmpInst::FCMP_UNO:   R = executeFCMP_UNO(Src1, Src2, Ty); break;
  681   case FCmpInst::FCMP_UEQ:   R = executeFCMP_UEQ(Src1, Src2, Ty); break;
  682   case FCmpInst::FCMP_OEQ:   R = executeFCMP_OEQ(Src1, Src2, Ty); break;
  683   case FCmpInst::FCMP_UNE:   R = executeFCMP_UNE(Src1, Src2, Ty); break;
  684   case FCmpInst::FCMP_ONE:   R = executeFCMP_ONE(Src1, Src2, Ty); break;
  685   case FCmpInst::FCMP_ULT:   R = executeFCMP_ULT(Src1, Src2, Ty); break;
  686   case FCmpInst::FCMP_OLT:   R = executeFCMP_OLT(Src1, Src2, Ty); break;
  687   case FCmpInst::FCMP_UGT:   R = executeFCMP_UGT(Src1, Src2, Ty); break;
  688   case FCmpInst::FCMP_OGT:   R = executeFCMP_OGT(Src1, Src2, Ty); break;
  689   case FCmpInst::FCMP_ULE:   R = executeFCMP_ULE(Src1, Src2, Ty); break;
  690   case FCmpInst::FCMP_OLE:   R = executeFCMP_OLE(Src1, Src2, Ty); break;
  691   case FCmpInst::FCMP_UGE:   R = executeFCMP_UGE(Src1, Src2, Ty); break;
  692   case FCmpInst::FCMP_OGE:   R = executeFCMP_OGE(Src1, Src2, Ty); break;
  712   case FCmpInst::FCMP_ORD:   return executeFCMP_ORD(Src1, Src2, Ty);
  713   case FCmpInst::FCMP_UNO:   return executeFCMP_UNO(Src1, Src2, Ty);
  714   case FCmpInst::FCMP_OEQ:   return executeFCMP_OEQ(Src1, Src2, Ty);
  715   case FCmpInst::FCMP_UEQ:   return executeFCMP_UEQ(Src1, Src2, Ty);
  716   case FCmpInst::FCMP_ONE:   return executeFCMP_ONE(Src1, Src2, Ty);
  717   case FCmpInst::FCMP_UNE:   return executeFCMP_UNE(Src1, Src2, Ty);
  718   case FCmpInst::FCMP_OLT:   return executeFCMP_OLT(Src1, Src2, Ty);
  719   case FCmpInst::FCMP_ULT:   return executeFCMP_ULT(Src1, Src2, Ty);
  720   case FCmpInst::FCMP_OGT:   return executeFCMP_OGT(Src1, Src2, Ty);
  721   case FCmpInst::FCMP_UGT:   return executeFCMP_UGT(Src1, Src2, Ty);
  722   case FCmpInst::FCMP_OLE:   return executeFCMP_OLE(Src1, Src2, Ty);
  723   case FCmpInst::FCMP_ULE:   return executeFCMP_ULE(Src1, Src2, Ty);
  724   case FCmpInst::FCMP_OGE:   return executeFCMP_OGE(Src1, Src2, Ty);
  725   case FCmpInst::FCMP_UGE:   return executeFCMP_UGE(Src1, Src2, Ty);
  726   case FCmpInst::FCMP_FALSE: return executeFCMP_BOOL(Src1, Src2, Ty, false);
  727   case FCmpInst::FCMP_TRUE:  return executeFCMP_BOOL(Src1, Src2, Ty, true);
lib/ExecutionEngine/Interpreter/Interpreter.h
  130   void visitFCmpInst(FCmpInst &I);
lib/IR/ConstantFold.cpp
 1446 static FCmpInst::Predicate evaluateFCmpRelation(Constant *V1, Constant *V2) {
 1452   if (V1 == V2) return FCmpInst::FCMP_UEQ;
 1459                       ConstantExpr::getFCmp(FCmpInst::FCMP_OEQ, V1, V2));
 1461         return FCmpInst::FCMP_OEQ;
 1463                       ConstantExpr::getFCmp(FCmpInst::FCMP_OLT, V1, V2));
 1465         return FCmpInst::FCMP_OLT;
 1467                       ConstantExpr::getFCmp(FCmpInst::FCMP_OGT, V1, V2));
 1469         return FCmpInst::FCMP_OGT;
 1472       return FCmpInst::BAD_FCMP_PREDICATE;
 1476     FCmpInst::Predicate SwappedRelation = evaluateFCmpRelation(V2, V1);
 1477     if (SwappedRelation != FCmpInst::BAD_FCMP_PREDICATE)
 1478       return FCmpInst::getSwappedPredicate(SwappedRelation);
 1496   return FCmpInst::BAD_FCMP_PREDICATE;
 1795   if (pred == FCmpInst::FCMP_FALSE)
 1798   if (pred == FCmpInst::FCMP_TRUE)
 1883     case FCmpInst::FCMP_FALSE: return Constant::getNullValue(ResultTy);
 1884     case FCmpInst::FCMP_TRUE:  return Constant::getAllOnesValue(ResultTy);
 1885     case FCmpInst::FCMP_UNO:
 1887     case FCmpInst::FCMP_ORD:
 1889     case FCmpInst::FCMP_UEQ:
 1892     case FCmpInst::FCMP_OEQ:
 1894     case FCmpInst::FCMP_UNE:
 1896     case FCmpInst::FCMP_ONE:
 1899     case FCmpInst::FCMP_ULT:
 1902     case FCmpInst::FCMP_OLT:
 1904     case FCmpInst::FCMP_UGT:
 1907     case FCmpInst::FCMP_OGT:
 1909     case FCmpInst::FCMP_ULE:
 1911     case FCmpInst::FCMP_OLE:
 1914     case FCmpInst::FCMP_UGE:
 1916     case FCmpInst::FCMP_OGE:
 1945     case FCmpInst::FCMP_UNO:
 1946     case FCmpInst::FCMP_ORD:
 1947     case FCmpInst::FCMP_UNE:
 1948     case FCmpInst::FCMP_ULT:
 1949     case FCmpInst::FCMP_UGT:
 1950     case FCmpInst::FCMP_ULE:
 1951     case FCmpInst::FCMP_UGE:
 1952     case FCmpInst::FCMP_TRUE:
 1953     case FCmpInst::FCMP_FALSE:
 1954     case FCmpInst::BAD_FCMP_PREDICATE:
 1956     case FCmpInst::FCMP_OEQ: // We know that C1 == C2
 1957       Result = (pred == FCmpInst::FCMP_UEQ || pred == FCmpInst::FCMP_OEQ ||
 1957       Result = (pred == FCmpInst::FCMP_UEQ || pred == FCmpInst::FCMP_OEQ ||
 1958                 pred == FCmpInst::FCMP_ULE || pred == FCmpInst::FCMP_OLE ||
 1958                 pred == FCmpInst::FCMP_ULE || pred == FCmpInst::FCMP_OLE ||
 1959                 pred == FCmpInst::FCMP_UGE || pred == FCmpInst::FCMP_OGE);
 1959                 pred == FCmpInst::FCMP_UGE || pred == FCmpInst::FCMP_OGE);
 1961     case FCmpInst::FCMP_OLT: // We know that C1 < C2
 1962       Result = (pred == FCmpInst::FCMP_UNE || pred == FCmpInst::FCMP_ONE ||
 1962       Result = (pred == FCmpInst::FCMP_UNE || pred == FCmpInst::FCMP_ONE ||
 1963                 pred == FCmpInst::FCMP_ULT || pred == FCmpInst::FCMP_OLT ||
 1963                 pred == FCmpInst::FCMP_ULT || pred == FCmpInst::FCMP_OLT ||
 1964                 pred == FCmpInst::FCMP_ULE || pred == FCmpInst::FCMP_OLE);
 1964                 pred == FCmpInst::FCMP_ULE || pred == FCmpInst::FCMP_OLE);
 1966     case FCmpInst::FCMP_OGT: // We know that C1 > C2
 1967       Result = (pred == FCmpInst::FCMP_UNE || pred == FCmpInst::FCMP_ONE ||
 1967       Result = (pred == FCmpInst::FCMP_UNE || pred == FCmpInst::FCMP_ONE ||
 1968                 pred == FCmpInst::FCMP_UGT || pred == FCmpInst::FCMP_OGT ||
 1968                 pred == FCmpInst::FCMP_UGT || pred == FCmpInst::FCMP_OGT ||
 1969                 pred == FCmpInst::FCMP_UGE || pred == FCmpInst::FCMP_OGE);
 1969                 pred == FCmpInst::FCMP_UGE || pred == FCmpInst::FCMP_OGE);
 1971     case FCmpInst::FCMP_OLE: // We know that C1 <= C2
 1973       if (pred == FCmpInst::FCMP_UGT || pred == FCmpInst::FCMP_OGT)
 1973       if (pred == FCmpInst::FCMP_UGT || pred == FCmpInst::FCMP_OGT)
 1975       else if (pred == FCmpInst::FCMP_ULT || pred == FCmpInst::FCMP_OLT)
 1975       else if (pred == FCmpInst::FCMP_ULT || pred == FCmpInst::FCMP_OLT)
 1978     case FCmpInst::FCMP_OGE: // We known that C1 >= C2
 1980       if (pred == FCmpInst::FCMP_ULT || pred == FCmpInst::FCMP_OLT)
 1980       if (pred == FCmpInst::FCMP_ULT || pred == FCmpInst::FCMP_OLT)
 1982       else if (pred == FCmpInst::FCMP_UGT || pred == FCmpInst::FCMP_OGT)
 1982       else if (pred == FCmpInst::FCMP_UGT || pred == FCmpInst::FCMP_OGT)
 1985     case FCmpInst::FCMP_ONE: // We know that C1 != C2
 1987       if (pred == FCmpInst::FCMP_OEQ || pred == FCmpInst::FCMP_UEQ)
 1987       if (pred == FCmpInst::FCMP_OEQ || pred == FCmpInst::FCMP_UEQ)
 1989       else if (pred == FCmpInst::FCMP_ONE || pred == FCmpInst::FCMP_UNE)
 1989       else if (pred == FCmpInst::FCMP_ONE || pred == FCmpInst::FCMP_UNE)
 1992     case FCmpInst::FCMP_UEQ: // We know that C1 == C2 || isUnordered(C1, C2).
 1994       if (pred == FCmpInst::FCMP_ONE)
 1996       else if (pred == FCmpInst::FCMP_UEQ)
lib/IR/Core.cpp
 2745   if (FCmpInst *I = dyn_cast<FCmpInst>(unwrap(Inst)))
 2745   if (FCmpInst *I = dyn_cast<FCmpInst>(unwrap(Inst)))
lib/IR/Instructions.cpp
 3501     return new FCmpInst(InsertBefore, CmpInst::Predicate(predicate),
 3504     return new FCmpInst(CmpInst::Predicate(predicate),
 3515   return new FCmpInst(*InsertAtEnd, CmpInst::Predicate(predicate),
 3523     cast<FCmpInst>(this)->swapOperands();
 3529   return cast<FCmpInst>(this)->isCommutative();
 3535   return cast<FCmpInst>(this)->isEquality();
 3574   case FCmpInst::FCMP_FALSE: return "false";
 3575   case FCmpInst::FCMP_OEQ:   return "oeq";
 3576   case FCmpInst::FCMP_OGT:   return "ogt";
 3577   case FCmpInst::FCMP_OGE:   return "oge";
 3578   case FCmpInst::FCMP_OLT:   return "olt";
 3579   case FCmpInst::FCMP_OLE:   return "ole";
 3580   case FCmpInst::FCMP_ONE:   return "one";
 3581   case FCmpInst::FCMP_ORD:   return "ord";
 3582   case FCmpInst::FCMP_UNO:   return "uno";
 3583   case FCmpInst::FCMP_UEQ:   return "ueq";
 3584   case FCmpInst::FCMP_UGT:   return "ugt";
 3585   case FCmpInst::FCMP_UGE:   return "uge";
 3586   case FCmpInst::FCMP_ULT:   return "ult";
 3587   case FCmpInst::FCMP_ULE:   return "ule";
 3588   case FCmpInst::FCMP_UNE:   return "une";
 3589   case FCmpInst::FCMP_TRUE:  return "true";
 3732     case FCmpInst::FCMP_OEQ: case FCmpInst::FCMP_ONE: case FCmpInst::FCMP_OGT:
 3732     case FCmpInst::FCMP_OEQ: case FCmpInst::FCMP_ONE: case FCmpInst::FCMP_OGT:
 3732     case FCmpInst::FCMP_OEQ: case FCmpInst::FCMP_ONE: case FCmpInst::FCMP_OGT:
 3733     case FCmpInst::FCMP_OLT: case FCmpInst::FCMP_OGE: case FCmpInst::FCMP_OLE:
 3733     case FCmpInst::FCMP_OLT: case FCmpInst::FCMP_OGE: case FCmpInst::FCMP_OLE:
 3733     case FCmpInst::FCMP_OLT: case FCmpInst::FCMP_OGE: case FCmpInst::FCMP_OLE:
 3734     case FCmpInst::FCMP_ORD: return true;
 3741     case FCmpInst::FCMP_UEQ: case FCmpInst::FCMP_UNE: case FCmpInst::FCMP_UGT:
 3741     case FCmpInst::FCMP_UEQ: case FCmpInst::FCMP_UNE: case FCmpInst::FCMP_UGT:
 3741     case FCmpInst::FCMP_UEQ: case FCmpInst::FCMP_UNE: case FCmpInst::FCMP_UGT:
 3742     case FCmpInst::FCMP_ULT: case FCmpInst::FCMP_UGE: case FCmpInst::FCMP_ULE:
 3742     case FCmpInst::FCMP_ULT: case FCmpInst::FCMP_UGE: case FCmpInst::FCMP_ULE:
 3742     case FCmpInst::FCMP_ULT: case FCmpInst::FCMP_UGE: case FCmpInst::FCMP_ULE:
 3743     case FCmpInst::FCMP_UNO: return true;
 4113 FCmpInst *FCmpInst::cloneImpl() const {
 4114   return new FCmpInst(getPredicate(), Op<0>(), Op<1>());
lib/IR/Verifier.cpp
  455   void visitFCmpInst(FCmpInst &FC);
 3236 void Verifier::visitFCmpInst(FCmpInst &FC) {
lib/Target/AMDGPU/SIISelLowering.cpp
 4223   if (CondCode < FCmpInst::Predicate::FIRST_FCMP_PREDICATE ||
 4224       CondCode > FCmpInst::Predicate::LAST_FCMP_PREDICATE) {
 4238   FCmpInst::Predicate IcInput = static_cast<FCmpInst::Predicate>(CondCode);
lib/Target/WebAssembly/WebAssemblyFastISel.cpp
 1061   const auto *FCmp = cast<FCmpInst>(I);
 1061   const auto *FCmp = cast<FCmpInst>(I);
 1075   case FCmpInst::FCMP_OEQ:
 1078   case FCmpInst::FCMP_UNE:
 1081   case FCmpInst::FCMP_OGT:
 1084   case FCmpInst::FCMP_OGE:
 1087   case FCmpInst::FCMP_OLT:
 1090   case FCmpInst::FCMP_OLE:
 1093   case FCmpInst::FCMP_UGT:
 1097   case FCmpInst::FCMP_UGE:
 1101   case FCmpInst::FCMP_ULT:
 1105   case FCmpInst::FCMP_ULE:
lib/Target/X86/X86FastISel.cpp
 2150   const auto *CI = dyn_cast<FCmpInst>(I->getOperand(0));
 2150   const auto *CI = dyn_cast<FCmpInst>(I->getOperand(0));
lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
   27 static unsigned getFCmpCode(FCmpInst::Predicate CC) {
   32   static_assert(FCmpInst::FCMP_FALSE ==  0, "");  // 0 0 0 0
   33   static_assert(FCmpInst::FCMP_OEQ   ==  1, "");  // 0 0 0 1
   34   static_assert(FCmpInst::FCMP_OGT   ==  2, "");  // 0 0 1 0
   35   static_assert(FCmpInst::FCMP_OGE   ==  3, "");  // 0 0 1 1
   36   static_assert(FCmpInst::FCMP_OLT   ==  4, "");  // 0 1 0 0
   37   static_assert(FCmpInst::FCMP_OLE   ==  5, "");  // 0 1 0 1
   38   static_assert(FCmpInst::FCMP_ONE   ==  6, "");  // 0 1 1 0
   39   static_assert(FCmpInst::FCMP_ORD   ==  7, "");  // 0 1 1 1
   40   static_assert(FCmpInst::FCMP_UNO   ==  8, "");  // 1 0 0 0
   41   static_assert(FCmpInst::FCMP_UEQ   ==  9, "");  // 1 0 0 1
   42   static_assert(FCmpInst::FCMP_UGT   == 10, "");  // 1 0 1 0
   43   static_assert(FCmpInst::FCMP_UGE   == 11, "");  // 1 0 1 1
   44   static_assert(FCmpInst::FCMP_ULT   == 12, "");  // 1 1 0 0
   45   static_assert(FCmpInst::FCMP_ULE   == 13, "");  // 1 1 0 1
   46   static_assert(FCmpInst::FCMP_UNE   == 14, "");  // 1 1 1 0
   47   static_assert(FCmpInst::FCMP_TRUE  == 15, "");  // 1 1 1 1
   70   if (Pred == FCmpInst::FCMP_FALSE)
   72   if (Pred == FCmpInst::FCMP_TRUE)
 1360 Value *InstCombiner::foldLogicOfFCmps(FCmpInst *LHS, FCmpInst *RHS, bool IsAnd) {
 1360 Value *InstCombiner::foldLogicOfFCmps(FCmpInst *LHS, FCmpInst *RHS, bool IsAnd) {
 1363   FCmpInst::Predicate PredL = LHS->getPredicate(), PredR = RHS->getPredicate();
 1367     PredR = FCmpInst::getSwappedPredicate(PredR);
 1392   if ((PredL == FCmpInst::FCMP_ORD && PredR == FCmpInst::FCMP_ORD && IsAnd) ||
 1392   if ((PredL == FCmpInst::FCMP_ORD && PredR == FCmpInst::FCMP_ORD && IsAnd) ||
 1393       (PredL == FCmpInst::FCMP_UNO && PredR == FCmpInst::FCMP_UNO && !IsAnd)) {
 1393       (PredL == FCmpInst::FCMP_UNO && PredR == FCmpInst::FCMP_UNO && !IsAnd)) {
 1422   FCmpInst::Predicate Pred;
 1428   FCmpInst::Predicate NanPred = Opcode == Instruction::And ? FCmpInst::FCMP_ORD
 1428   FCmpInst::Predicate NanPred = Opcode == Instruction::And ? FCmpInst::FCMP_ORD
 1429                                                            : FCmpInst::FCMP_UNO;
 1447   if (auto *NewFCmpInst = dyn_cast<FCmpInst>(NewFCmp)) {
 1447   if (auto *NewFCmpInst = dyn_cast<FCmpInst>(NewFCmp)) {
 1592   FCmpInst *FCmp0 = dyn_cast<FCmpInst>(Cast0Src);
 1592   FCmpInst *FCmp0 = dyn_cast<FCmpInst>(Cast0Src);
 1593   FCmpInst *FCmp1 = dyn_cast<FCmpInst>(Cast1Src);
 1593   FCmpInst *FCmp1 = dyn_cast<FCmpInst>(Cast1Src);
 1942   if (FCmpInst *LHS = dyn_cast<FCmpInst>(I.getOperand(0)))
 1942   if (FCmpInst *LHS = dyn_cast<FCmpInst>(I.getOperand(0)))
 1943     if (FCmpInst *RHS = dyn_cast<FCmpInst>(I.getOperand(1)))
 1943     if (FCmpInst *RHS = dyn_cast<FCmpInst>(I.getOperand(1)))
 2667   if (FCmpInst *LHS = dyn_cast<FCmpInst>(I.getOperand(0)))
 2667   if (FCmpInst *LHS = dyn_cast<FCmpInst>(I.getOperand(0)))
 2668     if (FCmpInst *RHS = dyn_cast<FCmpInst>(I.getOperand(1)))
 2668     if (FCmpInst *RHS = dyn_cast<FCmpInst>(I.getOperand(1)))
lib/Transforms/InstCombine/InstCombineCompares.cpp
 5604 Instruction *InstCombiner::foldFCmpIntToFPConst(FCmpInst &I, Instruction *LHSI,
 5619     FCmpInst::Predicate P = I.getPredicate();
 5631         if (P == FCmpInst::FCMP_OEQ || P == FCmpInst::FCMP_UEQ)
 5631         if (P == FCmpInst::FCMP_OEQ || P == FCmpInst::FCMP_UEQ)
 5676   case FCmpInst::FCMP_UEQ:
 5677   case FCmpInst::FCMP_OEQ:
 5680   case FCmpInst::FCMP_UGT:
 5681   case FCmpInst::FCMP_OGT:
 5684   case FCmpInst::FCMP_UGE:
 5685   case FCmpInst::FCMP_OGE:
 5688   case FCmpInst::FCMP_ULT:
 5689   case FCmpInst::FCMP_OLT:
 5692   case FCmpInst::FCMP_ULE:
 5693   case FCmpInst::FCMP_OLE:
 5696   case FCmpInst::FCMP_UNE:
 5697   case FCmpInst::FCMP_ONE:
 5700   case FCmpInst::FCMP_ORD:
 5702   case FCmpInst::FCMP_UNO:
 5843 static Instruction *foldFCmpReciprocalAndZero(FCmpInst &I, Instruction *LHSI,
 5858   FCmpInst::Predicate Pred = I.getPredicate();
 5861   if ((Pred != FCmpInst::FCMP_OGT) && (Pred != FCmpInst::FCMP_OLT) &&
 5861   if ((Pred != FCmpInst::FCMP_OGT) && (Pred != FCmpInst::FCMP_OLT) &&
 5862       (Pred != FCmpInst::FCMP_OGE) && (Pred != FCmpInst::FCMP_OLE))
 5862       (Pred != FCmpInst::FCMP_OGE) && (Pred != FCmpInst::FCMP_OLE))
 5886   return new FCmpInst(Pred, LHSI->getOperand(1), RHSC, "", &I);
 5890 static Instruction *foldFabsWithFcmpZero(FCmpInst &I) {
 5903   case FCmpInst::FCMP_UGE:
 5904   case FCmpInst::FCMP_OLT:
 5909   case FCmpInst::FCMP_OGT:
 5911     return replacePredAndOp0(&I, FCmpInst::FCMP_ONE, X);
 5913   case FCmpInst::FCMP_UGT:
 5915     return replacePredAndOp0(&I, FCmpInst::FCMP_UNE, X);
 5917   case FCmpInst::FCMP_OLE:
 5919     return replacePredAndOp0(&I, FCmpInst::FCMP_OEQ, X);
 5921   case FCmpInst::FCMP_ULE:
 5923     return replacePredAndOp0(&I, FCmpInst::FCMP_UEQ, X);
 5925   case FCmpInst::FCMP_OGE:
 5928     return replacePredAndOp0(&I, FCmpInst::FCMP_ORD, X);
 5930   case FCmpInst::FCMP_ULT:
 5933     return replacePredAndOp0(&I, FCmpInst::FCMP_UNO, X);
 5935   case FCmpInst::FCMP_OEQ:
 5936   case FCmpInst::FCMP_UEQ:
 5937   case FCmpInst::FCMP_ONE:
 5938   case FCmpInst::FCMP_UNE:
 5939   case FCmpInst::FCMP_ORD:
 5940   case FCmpInst::FCMP_UNO:
 5953 Instruction *InstCombiner::visitFCmpInst(FCmpInst &I) {
 5976     case FCmpInst::FCMP_UNO:    // True if unordered: isnan(X) | isnan(Y)
 5977     case FCmpInst::FCMP_ULT:    // True if unordered or less than
 5978     case FCmpInst::FCMP_UGT:    // True if unordered or greater than
 5979     case FCmpInst::FCMP_UNE:    // True if unordered or not equal
 5981       I.setPredicate(FCmpInst::FCMP_UNO);
 5985     case FCmpInst::FCMP_ORD:    // True if ordered (no nans)
 5986     case FCmpInst::FCMP_OEQ:    // True if ordered and equal
 5987     case FCmpInst::FCMP_OGE:    // True if ordered and greater than or equal
 5988     case FCmpInst::FCMP_OLE:    // True if ordered and less than or equal
 5990       I.setPredicate(FCmpInst::FCMP_ORD);
 6012     return new FCmpInst(I.getSwappedPredicate(), X, Y, "", &I);
 6077       return new FCmpInst(I.getSwappedPredicate(), X, NegC, "", &I);
 6084       return new FCmpInst(Pred, X, Y, "", &I);
 6103         return new FCmpInst(Pred, X, NewC, "", &I);
lib/Transforms/InstCombine/InstCombineInternal.h
  403   Instruction *visitFCmpInst(FCmpInst &I);
  626   Value *foldLogicOfFCmps(FCmpInst *LHS, FCmpInst *RHS, bool IsAnd);
  626   Value *foldLogicOfFCmps(FCmpInst *LHS, FCmpInst *RHS, bool IsAnd);
  908   Instruction *foldFCmpIntToFPConst(FCmpInst &I, Instruction *LHSI,
lib/Transforms/InstCombine/InstCombineSelect.cpp
   70   else if (Pred == FCmpInst::FCMP_OEQ)
   72   else if (Pred == FCmpInst::FCMP_UNE)
 2305   if (FCmpInst *FCI = dyn_cast<FCmpInst>(CondVal)) {
 2305   if (FCmpInst *FCI = dyn_cast<FCmpInst>(CondVal)) {
 2312       if (FCI->hasOneUse() && FCmpInst::isUnordered(FCI->getPredicate())) {
 2313         FCmpInst::Predicate InvPred = FCI->getInversePredicate();
 2330       if (FCI->hasOneUse() && FCmpInst::isUnordered(FCI->getPredicate())) {
 2331         FCmpInst::Predicate InvPred = FCI->getInversePredicate();
 2356       (Pred == FCmpInst::FCMP_OLE || Pred == FCmpInst::FCMP_ULE)) {
 2356       (Pred == FCmpInst::FCMP_OLE || Pred == FCmpInst::FCMP_ULE)) {
 2364       (Pred == FCmpInst::FCMP_OGT || Pred == FCmpInst::FCMP_UGT)) {
 2364       (Pred == FCmpInst::FCMP_OGT || Pred == FCmpInst::FCMP_UGT)) {
 2376       (Pred == FCmpInst::FCMP_OLT || Pred == FCmpInst::FCMP_OLE ||
 2376       (Pred == FCmpInst::FCMP_OLT || Pred == FCmpInst::FCMP_OLE ||
 2377        Pred == FCmpInst::FCMP_ULT || Pred == FCmpInst::FCMP_ULE)) {
 2377        Pred == FCmpInst::FCMP_ULT || Pred == FCmpInst::FCMP_ULE)) {
 2388       (Pred == FCmpInst::FCMP_OGT || Pred == FCmpInst::FCMP_OGE ||
 2388       (Pred == FCmpInst::FCMP_OGT || Pred == FCmpInst::FCMP_OGE ||
 2389        Pred == FCmpInst::FCMP_UGT || Pred == FCmpInst::FCMP_UGE)) {
 2389        Pred == FCmpInst::FCMP_UGT || Pred == FCmpInst::FCMP_UGE)) {
lib/Transforms/InstCombine/InstCombineVectorOps.cpp
 1257       return new FCmpInst(I, cast<FCmpInst>(I)->getPredicate(),
 1257       return new FCmpInst(I, cast<FCmpInst>(I)->getPredicate(),
lib/Transforms/Instrumentation/MemorySanitizer.cpp
 2373   void visitFCmpInst(FCmpInst &I) {
lib/Transforms/Scalar/IndVarSimplify.cpp
  341   FCmpInst *Compare = dyn_cast<FCmpInst>(U1);
  341   FCmpInst *Compare = dyn_cast<FCmpInst>(U1);
  343     Compare = dyn_cast<FCmpInst>(U2);
lib/Transforms/Scalar/Scalarizer.cpp
  104   FCmpSplitter(FCmpInst &fci) : FCI(fci) {}
  111   FCmpInst &FCI;
  187   bool visitFCmpInst(FCmpInst &FCI);
  586 bool ScalarizerVisitor::visitFCmpInst(FCmpInst &FCI) {
lib/Transforms/Utils/SimplifyCFG.cpp
 1960   if (isa<FCmpInst>(BrCond))
tools/clang/lib/CodeGen/CGBuiltin.cpp
 7790     case NEON::BI__builtin_neon_vceqd_f64: P = llvm::FCmpInst::FCMP_OEQ; break;
 7791     case NEON::BI__builtin_neon_vcled_f64: P = llvm::FCmpInst::FCMP_OLE; break;
 7792     case NEON::BI__builtin_neon_vcltd_f64: P = llvm::FCmpInst::FCMP_OLT; break;
 7793     case NEON::BI__builtin_neon_vcged_f64: P = llvm::FCmpInst::FCMP_OGE; break;
 7794     case NEON::BI__builtin_neon_vcgtd_f64: P = llvm::FCmpInst::FCMP_OGT; break;
 7810     case NEON::BI__builtin_neon_vceqs_f32: P = llvm::FCmpInst::FCMP_OEQ; break;
 7811     case NEON::BI__builtin_neon_vcles_f32: P = llvm::FCmpInst::FCMP_OLE; break;
 7812     case NEON::BI__builtin_neon_vclts_f32: P = llvm::FCmpInst::FCMP_OLT; break;
 7813     case NEON::BI__builtin_neon_vcges_f32: P = llvm::FCmpInst::FCMP_OGE; break;
 7814     case NEON::BI__builtin_neon_vcgts_f32: P = llvm::FCmpInst::FCMP_OGT; break;
 7830     case NEON::BI__builtin_neon_vceqh_f16: P = llvm::FCmpInst::FCMP_OEQ; break;
 7831     case NEON::BI__builtin_neon_vcleh_f16: P = llvm::FCmpInst::FCMP_OLE; break;
 7832     case NEON::BI__builtin_neon_vclth_f16: P = llvm::FCmpInst::FCMP_OLT; break;
 7833     case NEON::BI__builtin_neon_vcgeh_f16: P = llvm::FCmpInst::FCMP_OGE; break;
 7834     case NEON::BI__builtin_neon_vcgth_f16: P = llvm::FCmpInst::FCMP_OGT; break;
12055     FCmpInst::Predicate Pred;
12057     case 0x00: Pred = FCmpInst::FCMP_OEQ;   break;
12058     case 0x01: Pred = FCmpInst::FCMP_OLT;   break;
12059     case 0x02: Pred = FCmpInst::FCMP_OLE;   break;
12060     case 0x03: Pred = FCmpInst::FCMP_UNO;   break;
12061     case 0x04: Pred = FCmpInst::FCMP_UNE;   break;
12062     case 0x05: Pred = FCmpInst::FCMP_UGE;   break;
12063     case 0x06: Pred = FCmpInst::FCMP_UGT;   break;
12064     case 0x07: Pred = FCmpInst::FCMP_ORD;   break;
12065     case 0x08: Pred = FCmpInst::FCMP_UEQ;   break;
12066     case 0x09: Pred = FCmpInst::FCMP_ULT;   break;
12067     case 0x0a: Pred = FCmpInst::FCMP_ULE;   break;
12068     case 0x0b: Pred = FCmpInst::FCMP_FALSE; break;
12069     case 0x0c: Pred = FCmpInst::FCMP_ONE;   break;
12070     case 0x0d: Pred = FCmpInst::FCMP_OGE;   break;
12071     case 0x0e: Pred = FCmpInst::FCMP_OGT;   break;
12072     case 0x0f: Pred = FCmpInst::FCMP_TRUE;  break;
12073     case 0x10: Pred = FCmpInst::FCMP_OEQ;   break;
12074     case 0x11: Pred = FCmpInst::FCMP_OLT;   break;
12075     case 0x12: Pred = FCmpInst::FCMP_OLE;   break;
12076     case 0x13: Pred = FCmpInst::FCMP_UNO;   break;
12077     case 0x14: Pred = FCmpInst::FCMP_UNE;   break;
12078     case 0x15: Pred = FCmpInst::FCMP_UGE;   break;
12079     case 0x16: Pred = FCmpInst::FCMP_UGT;   break;
12080     case 0x17: Pred = FCmpInst::FCMP_ORD;   break;
12081     case 0x18: Pred = FCmpInst::FCMP_UEQ;   break;
12082     case 0x19: Pred = FCmpInst::FCMP_ULT;   break;
12083     case 0x1a: Pred = FCmpInst::FCMP_ULE;   break;
12084     case 0x1b: Pred = FCmpInst::FCMP_FALSE; break;
12085     case 0x1c: Pred = FCmpInst::FCMP_ONE;   break;
12086     case 0x1d: Pred = FCmpInst::FCMP_OGE;   break;
12087     case 0x1e: Pred = FCmpInst::FCMP_OGT;   break;
12088     case 0x1f: Pred = FCmpInst::FCMP_TRUE;  break;
tools/clang/lib/CodeGen/CGExprAgg.cpp
  944     using FI = llvm::FCmpInst;