Lines Matching defs:VPInstruction
17 /// 4. VPInstruction, a concrete Recipe and VPUser modeling a single planned
1187 /// the VPInstruction is also a single def-use vertex.
1188 class VPInstruction : public VPRecipeWithIRFlags,
1235 /// Returns true if this VPInstruction generates scalar values for all lanes.
1258 /// Return true if the VPInstruction is a floating point math operation, i.e.
1264 VPInstruction(unsigned Opcode, ArrayRef<VPValue *> Operands, DebugLoc DL,
1269 VPInstruction(unsigned Opcode, std::initializer_list<VPValue *> Operands,
1271 : VPInstruction(Opcode, ArrayRef<VPValue *>(Operands), DL, Name) {}
1273 VPInstruction(unsigned Opcode, CmpInst::Predicate Pred, VPValue *A,
1276 VPInstruction(unsigned Opcode, std::initializer_list<VPValue *> Operands,
1281 VPInstruction(unsigned Opcode, std::initializer_list<VPValue *> Operands,
1289 VPInstruction(VPValue *Ptr, VPValue *Offset, GEPNoWrapFlags Flags,
1293 Opcode(VPInstruction::PtrAdd), Name(Name.str()) {}
1295 VPInstruction(unsigned Opcode, std::initializer_list<VPValue *> Operands,
1300 VPInstruction *clone() override {
1302 auto *New = new VPInstruction(Opcode, Operands, getDebugLoc(), Name);
1314 /// Return the cost of this VPInstruction.
1322 /// Print the VPInstruction to \p O.
1326 /// Print the VPInstruction to dbgs() (for debugging).
1344 case VPInstruction::BranchOnCond:
1345 case VPInstruction::BranchOnCount:
1361 /// Returns true if this VPInstruction produces a scalar value from a vector,
1365 /// Returns true if this VPInstruction's operands are single scalars and the
1369 /// Returns the symbolic name assigned to the VPInstruction.
4211 DenseMap<VPInstruction *, InterleaveGroup<VPInstruction> *>
4214 /// Type for mapping of instruction based interleave groups to VPInstruction
4217 InterleaveGroup<VPInstruction> *>;
4232 SmallPtrSet<InterleaveGroup<VPInstruction> *, 4> DelSet;
4243 InterleaveGroup<VPInstruction> *
4244 getInterleaveGroup(VPInstruction *Instr) const {
4275 /// Mapping of values in the original VPlan to a combined VPInstruction.
4276 DenseMap<SmallVector<VPValue *, 4>, VPInstruction *, BundleDenseMapInfo>
4292 typename std::pair<VPInstruction *, SmallVector<VPValue *, 4>>;
4307 void addCombined(ArrayRef<VPValue *> Operands, VPInstruction *New);
4310 VPInstruction *markFailed();
4334 /// VPInstruction combining \p Operands, if they can be combined.
4335 VPInstruction *buildGraph(ArrayRef<VPValue *> Operands);