Lines Matching defs:VPInstruction

55     return cast<VPInstruction>(this)->opcodeMayReadOrWriteFromMemory();
103 return cast<VPInstruction>(this)->opcodeMayReadOrWriteFromMemory();
380 VPInstruction::VPInstruction(unsigned Opcode, CmpInst::Predicate Pred,
390 VPInstruction::VPInstruction(unsigned Opcode,
395 // Make sure the VPInstruction is a floating-point operation.
399 bool VPInstruction::doesGeneratePerAllLanes() const {
400 return Opcode == VPInstruction::PtrAdd && !vputils::onlyFirstLaneUsed(this);
403 bool VPInstruction::canGenerateScalarForFirstLane() const {
411 case VPInstruction::BranchOnCond:
412 case VPInstruction::BranchOnCount:
413 case VPInstruction::CalculateTripCountMinusVF:
414 case VPInstruction::CanonicalIVIncrementForPart:
415 case VPInstruction::PtrAdd:
416 case VPInstruction::ExplicitVectorLength:
417 case VPInstruction::AnyOf:
424 Value *VPInstruction::generatePerLane(VPTransformState &State,
428 assert(getOpcode() == VPInstruction::PtrAdd &&
434 Value *VPInstruction::generate(VPTransformState &State) {
449 case VPInstruction::Not: {
466 case VPInstruction::ActiveLaneMask: {
484 case VPInstruction::FirstOrderRecurrenceSplice: {
503 case VPInstruction::CalculateTripCountMinusVF: {
512 case VPInstruction::ExplicitVectorLength: {
528 case VPInstruction::CanonicalIVIncrementForPart: {
538 case VPInstruction::BranchOnCond: {
556 case VPInstruction::BranchOnCount: {
578 case VPInstruction::ComputeReductionResult: {
648 case VPInstruction::ExtractFromEnd: {
666 case VPInstruction::LogicalAnd: {
671 case VPInstruction::PtrAdd: {
678 case VPInstruction::ResumePhi: {
696 case VPInstruction::AnyOf: {
706 bool VPInstruction::isVectorToScalar() const {
707 return getOpcode() == VPInstruction::ExtractFromEnd ||
708 getOpcode() == VPInstruction::ComputeReductionResult ||
709 getOpcode() == VPInstruction::AnyOf;
712 bool VPInstruction::isSingleScalar() const {
713 return getOpcode() == VPInstruction::ResumePhi;
717 bool VPInstruction::isFPMathOp() const {
727 void VPInstruction::execute(VPTransformState &State) {
728 assert(!State.Lane && "VPInstruction executing an Lane");
762 bool VPInstruction::opcodeMayReadOrWriteFromMemory() const {
768 case VPInstruction::AnyOf:
769 case VPInstruction::CalculateTripCountMinusVF:
770 case VPInstruction::CanonicalIVIncrementForPart:
771 case VPInstruction::ExtractFromEnd:
772 case VPInstruction::FirstOrderRecurrenceSplice:
773 case VPInstruction::LogicalAnd:
774 case VPInstruction::Not:
775 case VPInstruction::PtrAdd:
782 bool VPInstruction::onlyFirstLaneUsed(const VPValue *Op) const {
793 case VPInstruction::PtrAdd:
796 case VPInstruction::ActiveLaneMask:
797 case VPInstruction::ExplicitVectorLength:
798 case VPInstruction::CalculateTripCountMinusVF:
799 case VPInstruction::CanonicalIVIncrementForPart:
800 case VPInstruction::BranchOnCount:
801 case VPInstruction::BranchOnCond:
802 case VPInstruction::ResumePhi:
808 bool VPInstruction::onlyFirstPartUsed(const VPValue *Op) const {
819 case VPInstruction::BranchOnCount:
820 case VPInstruction::BranchOnCond:
821 case VPInstruction::CanonicalIVIncrementForPart:
828 void VPInstruction::dump() const {
833 void VPInstruction::print(raw_ostream &O, const Twine &Indent,
843 case VPInstruction::Not:
846 case VPInstruction::SLPLoad:
849 case VPInstruction::SLPStore:
852 case VPInstruction::ActiveLaneMask:
855 case VPInstruction::ResumePhi:
858 case VPInstruction::ExplicitVectorLength:
861 case VPInstruction::FirstOrderRecurrenceSplice:
864 case VPInstruction::BranchOnCond:
867 case VPInstruction::CalculateTripCountMinusVF:
870 case VPInstruction::CanonicalIVIncrementForPart:
873 case VPInstruction::BranchOnCount:
876 case VPInstruction::ExtractFromEnd:
879 case VPInstruction::ComputeReductionResult:
882 case VPInstruction::LogicalAnd:
885 case VPInstruction::PtrAdd:
888 case VPInstruction::AnyOf:
950 VPInstruction::ExtractFromEnd,