Searched refs:VPInstruction (Results 1 – 11 of 11) sorted by relevance
| /openbsd/src/gnu/llvm/llvm/lib/Transforms/Vectorize/ |
| D | VPlanSLP.cpp | 42 VPInstruction *VPlanSlp::markFailed() { in markFailed() 49 void VPlanSlp::addCombined(ArrayRef<VPValue *> Operands, VPInstruction *New) { in addCombined() 51 return cast<VPInstruction>(V)->getUnderlyingInstr(); in addCombined() 55 Type *T = cast<VPInstruction>(V)->getUnderlyingInstr()->getType(); in addCombined() 71 return Op && isa<VPInstruction>(Op) && in areVectorizable() 72 cast<VPInstruction>(Op)->getUnderlyingInstr(); in areVectorizable() 83 cast<VPInstruction>(Operands[0])->getUnderlyingInstr(); in areVectorizable() 87 const Instruction *I = cast<VPInstruction>(Op)->getUnderlyingInstr(); in areVectorizable() 97 return cast<VPInstruction>(Op)->getParent() != &this->BB; in areVectorizable() 115 VPBasicBlock *Parent = cast<VPInstruction>(Operands[0])->getParent(); in areVectorizable() [all …]
|
| D | VPlanRecipes.cpp | 192 void VPInstruction::generateInstruction(VPTransformState &State, in generateInstruction() 207 case VPInstruction::Not: { in generateInstruction() 213 case VPInstruction::ICmpULE: { in generateInstruction() 228 case VPInstruction::ActiveLaneMask: { in generateInstruction() 242 case VPInstruction::FirstOrderRecurrenceSplice: { in generateInstruction() 267 case VPInstruction::CanonicalIVIncrement: in generateInstruction() 268 case VPInstruction::CanonicalIVIncrementNUW: { in generateInstruction() 271 bool IsNUW = getOpcode() == VPInstruction::CanonicalIVIncrementNUW; in generateInstruction() 286 case VPInstruction::CanonicalIVIncrementForPart: in generateInstruction() 287 case VPInstruction::CanonicalIVIncrementForPartNUW: { in generateInstruction() [all …]
|
| D | LoopVectorizationPlanner.h | 47 VPInstruction *createInstruction(unsigned Opcode, 50 VPInstruction *Instr = new VPInstruction(Opcode, Operands, DL, Name); 56 VPInstruction *createInstruction(unsigned Opcode, 119 VPInstruction *insert(VPInstruction *I) const { in insert() 131 VPInstruction *NewVPInst = createInstruction(Opcode, Operands, DL, Name); 141 return createInstruction(VPInstruction::Not, {Operand}, DL, Name);
|
| D | VPlanTransforms.cpp | 63 assert(isa<VPInstruction>(&Ingredient) && in VPInstructionsToVPRecipes() 487 static bool canSimplifyBranchOnCond(VPInstruction *Term) { in canSimplifyBranchOnCond() 488 VPInstruction *Not = dyn_cast<VPInstruction>(Term->getOperand(0)); in canSimplifyBranchOnCond() 489 if (!Not || Not->getOpcode() != VPInstruction::Not) in canSimplifyBranchOnCond() 492 VPInstruction *ALM = dyn_cast<VPInstruction>(Not->getOperand(0)); in canSimplifyBranchOnCond() 493 return ALM && ALM->getOpcode() == VPInstruction::ActiveLaneMask; in canSimplifyBranchOnCond() 503 auto *Term = dyn_cast<VPInstruction>(&ExitingVPBB->back()); in optimizeForVFAndUF() 509 if (!Term || (Term->getOpcode() != VPInstruction::BranchOnCount && in optimizeForVFAndUF() 510 (Term->getOpcode() != VPInstruction::BranchOnCond || in optimizeForVFAndUF() 526 new VPInstruction(VPInstruction::BranchOnCond, in optimizeForVFAndUF()
|
| D | VPlan.h | 779 class VPInstruction : public VPRecipeBase, public VPValue { 820 VPInstruction(unsigned Opcode, ArrayRef<VPValue *> Operands, DebugLoc DL, 825 VPInstruction(unsigned Opcode, std::initializer_list<VPValue *> Operands, 827 : VPInstruction(Opcode, ArrayRef<VPValue *>(Operands), DL, Name) {} in VPInstruction() function 831 VPInstruction *clone() const { in VP_CLASSOF_IMPL() 833 return new VPInstruction(Opcode, Operands, DL, Name); in VP_CLASSOF_IMPL() 874 case VPInstruction::BranchOnCond: in hasResult() 875 case VPInstruction::BranchOnCount: in hasResult() 894 case VPInstruction::ActiveLaneMask: in onlyFirstLaneUsed() 895 case VPInstruction::CanonicalIVIncrement: in onlyFirstLaneUsed() [all …]
|
| D | VPlanVerifier.cpp | 290 auto *LastInst = dyn_cast<VPInstruction>(std::prev(Exiting->end())); in verifyPlanIsValid() 291 if (!LastInst || (LastInst->getOpcode() != VPInstruction::BranchOnCount && in verifyPlanIsValid() 292 LastInst->getOpcode() != VPInstruction::BranchOnCond)) { in verifyPlanIsValid()
|
| D | VPlan.cpp | 55 const VPInstruction *Instr = dyn_cast<VPInstruction>(&V); in operator <<() 443 auto *VPI = dyn_cast<VPInstruction>(R); in hasConditionalTerminator() 446 (VPI && (VPI->getOpcode() == VPInstruction::BranchOnCond || in hasConditionalTerminator() 447 VPI->getOpcode() == VPInstruction::BranchOnCount)); in hasConditionalTerminator() 646 auto *VPI = cast<VPInstruction>(U); in prepareToExecute() 648 VPInstruction::CanonicalIVIncrement || in prepareToExecute() 650 VPInstruction::CanonicalIVIncrementNUW; in prepareToExecute() 1052 assert(isa<VPInstruction>(&VPI) && "Can only handle VPInstructions"); in visitBlock() 1053 auto *VPInst = cast<VPInstruction>(&VPI); in visitBlock() 1064 Old2New[IG] = new InterleaveGroup<VPInstruction>( in visitBlock()
|
| D | VPlanHCFGBuilder.cpp | 224 new VPInstruction(VPInstruction::BranchOnCond, {Cond})); in createVPInstructionsForVPBB() 248 NewVPV = cast<VPInstruction>( in createVPInstructionsForVPBB()
|
| D | LoopVectorize.cpp | 8125 BlockMask = Builder.createNaryOp(VPInstruction::ActiveLaneMask, {IV, TC}, in createBlockInMask() 8129 BlockMask = Builder.createNaryOp(VPInstruction::ICmpULE, {IV, BTC}); in createBlockInMask() 8417 new VPInstruction(Instruction::Select, {Mask, Ops[1], One}, in tryToWiden() 8734 new VPInstruction(HasNUW ? VPInstruction::CanonicalIVIncrementNUW in addCanonicalIVRecipes() 8735 : VPInstruction::CanonicalIVIncrement, in addCanonicalIVRecipes() 8750 new VPInstruction(HasNUW ? VPInstruction::CanonicalIVIncrementForPartNUW in addCanonicalIVRecipes() 8751 : VPInstruction::CanonicalIVIncrementForPart, in addCanonicalIVRecipes() 8757 auto *EntryALM = new VPInstruction(VPInstruction::ActiveLaneMask, in addCanonicalIVRecipes() 8769 new VPInstruction(HasNUW ? VPInstruction::CanonicalIVIncrementForPartNUW in addCanonicalIVRecipes() 8770 : VPInstruction::CanonicalIVIncrementForPart, in addCanonicalIVRecipes() [all …]
|
| D | VPlanValue.h | 47 friend class VPInstruction; variable
|
| /openbsd/src/gnu/llvm/llvm/docs/Proposals/ |
| D | VectorizationPlan.rst | 162 :VPInstruction: 163 A VPInstruction is both a VPRecipe and a VPUser. It models a single
|