|
reference, declaration → definition
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;