Lines Matching defs:FPI

589   void visitConstrainedFPIntrinsic(ConstrainedFPIntrinsic &FPI);
605 void visitFuncletPadInst(FuncletPadInst &FPI);
4369 if (auto *FPI = dyn_cast<FuncletPadInst>(EHPad))
4370 return FPI->getParentPad();
4561 void Verifier::visitFuncletPadInst(FuncletPadInst &FPI) {
4564 SmallVector<FuncletPadInst *, 8> Worklist({&FPI});
4619 if (ExitedPad == &FPI) {
4622 // FPI, but not including FPI since we need to make sure
4623 // to check all direct users of FPI for consistency.
4624 UnresolvedAncestorPad = &FPI;
4639 UnwindPad = ConstantTokenNone::get(FPI.getContext());
4641 UnresolvedAncestorPad = &FPI;
4645 // This unwind edge exits FPI. Make sure it agrees with other
4652 &FPI, U, FirstUser);
4657 if (isa<CleanupPadInst>(&FPI) && !isa<ConstantTokenNone>(UnwindPad) &&
4658 getParentPad(UnwindPad) == getParentPad(&FPI))
4659 SiblingFuncletInfo[&FPI] = cast<Instruction>(U);
4662 // Make sure we visit all uses of FPI, but for nested pads stop as
4664 if (CurrentPad != &FPI)
4669 // When CurrentPad is FPI itself, we don't mark it as resolved even if
4671 // all direct uses of FPI.
4672 assert(CurrentPad == &FPI);
4704 if (auto *CatchSwitch = dyn_cast<CatchSwitchInst>(FPI.getParentPad())) {
4710 SwitchUnwindPad = ConstantTokenNone::get(FPI.getContext());
4714 &FPI, FirstUser, CatchSwitch);
4718 visitInstruction(FPI);
6599 void Verifier::visitConstrainedFPIntrinsic(ConstrainedFPIntrinsic &FPI) {
6600 unsigned NumOperands = FPI.getNonMetadataArgCount();
6602 Intrinsic::hasConstrainedFPRoundingModeOperand(FPI.getIntrinsicID());
6608 if (isa<ConstrainedFPCmpIntrinsic>(FPI))
6610 Check((FPI.arg_size() == NumOperands),
6611 "invalid arguments for constrained FP intrinsic", &FPI);
6613 switch (FPI.getIntrinsicID()) {
6616 Type *ValTy = FPI.getArgOperand(0)->getType();
6617 Type *ResultTy = FPI.getType();
6619 "Intrinsic does not support vectors", &FPI);
6625 Type *ValTy = FPI.getArgOperand(0)->getType();
6626 Type *ResultTy = FPI.getType();
6628 "Intrinsic does not support vectors", &FPI);
6634 auto Pred = cast<ConstrainedFPCmpIntrinsic>(&FPI)->getPredicate();
6636 "invalid predicate for constrained FP comparison intrinsic", &FPI);
6642 Value *Operand = FPI.getArgOperand(0);
6645 "Intrinsic first argument must be floating point", &FPI);
6650 Operand = &FPI;
6652 "Intrinsic first argument and result disagree on vector use", &FPI);
6654 "Intrinsic result must be an integer", &FPI);
6658 &FPI);
6665 Value *Operand = FPI.getArgOperand(0);
6668 "Intrinsic first argument must be integer", &FPI);
6673 Operand = &FPI;
6675 "Intrinsic first argument and result disagree on vector use", &FPI);
6677 "Intrinsic result must be a floating point", &FPI);
6681 &FPI);
6688 Value *Operand = FPI.getArgOperand(0);
6690 Value *Result = &FPI;
6693 "Intrinsic first argument must be FP or FP vector", &FPI);
6695 "Intrinsic result must be FP or FP vector", &FPI);
6697 "Intrinsic first argument and result disagree on vector use", &FPI);
6702 &FPI);
6704 if (FPI.getIntrinsicID() == Intrinsic::experimental_constrained_fptrunc) {
6707 &FPI);
6711 &FPI);
6725 Check(FPI.getExceptionBehavior().has_value(),
6726 "invalid exception behavior argument", &FPI);
6728 Check(FPI.getRoundingMode().has_value(), "invalid rounding mode argument",
6729 &FPI);