| /freebsd-14.2/contrib/llvm-project/llvm/lib/Transforms/Utils/ |
| H A D | InjectTLIMappings.cpp | 41 static void addVariantDeclaration(CallInst &CI, const ElementCount &VF, in addVariantDeclaration() argument 52 assert(Info->Shape.VF == VF && "Mangled name does not match VF"); in addVariantDeclaration() 94 auto AddVariantDecl = [&](const ElementCount &VF, bool Predicate) { in addMappingsFromTLI() argument 95 const VecDesc *VD = TLI.getVectorMappingInfo(ScalarName, VF, Predicate); in addMappingsFromTLI() 104 addVariantDeclaration(CI, VF, VD); in addMappingsFromTLI() 113 for (ElementCount VF = ElementCount::getFixed(2); in addMappingsFromTLI() local 114 ElementCount::isKnownLE(VF, WidestFixedVF); VF *= 2) in addMappingsFromTLI() 115 AddVariantDecl(VF, Predicated); in addMappingsFromTLI() 117 for (ElementCount VF = ElementCount::getScalable(2); in addMappingsFromTLI() local 118 ElementCount::isKnownLE(VF, WidestScalableVF); VF *= 2) in addMappingsFromTLI() [all …]
|
| /freebsd-14.2/contrib/llvm-project/llvm/lib/Transforms/Vectorize/ |
| H A D | LoopVectorize.cpp | 1485 if (VF.isScalar() || Uniforms.contains(VF)) in collectUniformsAndScalars() 3770 assert(VF.isVector() && !Scalars.contains(VF) && in collectLoopScalars() 3777 Scalars[VF].insert(Uniforms[VF].begin(), Uniforms[VF].end()); in collectLoopScalars() 3847 Worklist.insert(Uniforms[VF].begin(), Uniforms[VF].end()); in collectLoopScalars() 4203 assert(VF.isVector() && !Uniforms.contains(VF) && in collectLoopUniforms() 5829 if (VF.isScalar() || VF.isZero() || InstsToScalarize.contains(VF)) in collectInstsToScalarize() 6427 if (VF.isVector() && isProfitableToScalarize(I, VF)) in getInstructionCost() 6750 if (Info.Shape.VF != VF) in setVectorizedCallDecision() 7334 buildVPlans(VF, VF); in planInVPlanNativePath() 7433 return VF; in plan() [all …]
|
| H A D | VPlanRecipes.cpp | 173 auto Lane = VPLane::getLastLaneForVF(State.VF); in fixPhi() 464 if (State.VF.isVector() && !PhiR->isInLoop()) { in generateInstruction() 579 assert(State.VF.isVector() && "not widening"); in execute() 957 Value *RuntimeVF = getRuntimeVF(B, IntTy, VF); in getRuntimeVFAsFloat() 1150 if (!FirstLaneOnly && State.VF.isScalable()) { in execute() 1213 assert(State.VF.isVector() && "not widening"); in execute() 1652 ElementCount VF = State.VF; in execute() local 1653 Value *VStart = VF.isScalar() in execute() 1658 if (VF.isVector()) { in execute() 1683 Type *VecTy = State.VF.isScalar() in execute() [all …]
|
| H A D | VPlan.cpp | 67 const ElementCount &VF) const { in getAsRuntimeExpr() 231 Value *Lane = Instance.Lane.getAsRuntimeExpr(Builder, VF); in get() 244 if (VF.isScalar()) in get() 257 Value *Shuf = Builder.CreateVectorSplat(VF, V, "broadcast"); in get() 275 if (VF.isScalar()) { in get() 661 for (unsigned Lane = 0, VF = State->VF.getKnownMinValue(); Lane < VF; in execute() local 735 auto VF = State.VF; in prepareToExecute() local 737 VF.isScalar() ? TCMO : Builder.CreateVectorSplat(VF, TCMO, "broadcast"); in prepareToExecute() 808 if (WidenPhi->onlyScalarsGenerated(State->VF)) in execute() 915 for (ElementCount VF : drop_begin(VFs)) in getName() local [all …]
|
| H A D | VPlan.h | 112 ElementCount VF; member 115 iterator(ElementCount VF) : VF(VF) {} in iterator() 117 bool operator==(const iterator &Other) const { return VF == Other.VF; } 122 VF *= 2; 172 if (VF.isScalable()) in getLastLaneForVF() 202 assert(VF.isScalable() && Lane < VF.getKnownMinValue()); in mapToCacheIndex() 213 return VF.getKnownMinValue() * (VF.isScalable() ? 2 : 1); in getNumCachedLanes() 244 ElementCount VF; member 2763 void addVF(ElementCount VF) { VFs.insert(VF); } in addVF() argument 2768 VFs.insert(VF); in setVF() [all …]
|
| H A D | LoopVectorizationLegality.cpp | 571 if (VF.isScalable()) in isUniform() 573 if (VF.isScalar()) in isUniform() 585 unsigned FixedVF = VF.getKnownMinValue(); in isUniform() 602 ElementCount VF) const { in isUniformMemOp() 610 return isUniform(Ptr, VF) && !blockNeedsPredication(I.getParent()); in isUniformMemOp() 776 for (ElementCount VF = ElementCount::getFixed(2); in isTLIScalarize() local 777 ElementCount::isKnownLE(VF, WidestFixedVF); VF *= 2) in isTLIScalarize() 778 Scalarize &= !TLI.isFunctionVectorizable(ScalarName, VF); in isTLIScalarize() 779 for (ElementCount VF = ElementCount::getScalable(1); in isTLIScalarize() local 780 ElementCount::isKnownLE(VF, WidestScalableVF); VF *= 2) in isTLIScalarize() [all …]
|
| H A D | SLPVectorizer.cpp | 6986 for (; VF >= MinVF; VF /= 2) { in getBuildVectorCost() 7074 for (int I = VF, E = VL.size(); I < E; I += VF) in getBuildVectorCost() 7348 if (E2->Scalars.size() == VF && VF != CommonVF) { in createShuffle() 7374 if (E1->Scalars.size() == VF && VF != CommonVF) { in createShuffle() 7628 VF = std::max<unsigned>(VF, CommonMask.size()); in add() 7631 VF = std::max(VF, InTE->getVectorFactor()); in add() 7650 VF = std::min(VF, MaskVF); in gather() 10300 VF = std::max(VF, SubVecVF); in adjustExtracts() 13435 if (!isPowerOf2_32(Sz) || !isPowerOf2_32(VF) || VF < 2 || VF < MinVF) in vectorizeStoreChain() 13775 for (unsigned VF = MaxVF; NextInst + 1 < MaxInst && VF >= MinVF; VF /= 2) { in tryToVectorizeList() local [all …]
|
| H A D | LoopVectorizationPlanner.h | 348 VPlan &getBestPlanFor(ElementCount VF) const; 364 executePlan(ElementCount VF, unsigned UF, VPlan &BestPlan, 375 bool hasPlanWithVF(ElementCount VF) const { in hasPlanWithVF() argument 377 [&](const VPlanPtr &Plan) { return Plan->hasVF(VF); }); in hasPlanWithVF() 439 bool isCandidateForEpilogueVectorization(const ElementCount VF) const;
|
| /freebsd-14.2/contrib/llvm-project/llvm/lib/Target/SystemZ/ |
| H A D | SystemZTargetTransformInfo.cpp | 528 unsigned VF = VTy->getNumElements(); in getArithmeticInstrCost() local 542 return VF * DivMulSeqCost + in getArithmeticInstrCost() 569 (VF * ScalarCost) + in getArithmeticInstrCost() 573 if (VF == 2) in getArithmeticInstrCost() 591 if (VF == 2 && ScalarBits == 32) in getArithmeticInstrCost() 734 if (VF == 1) { in getCmpOpsType() 753 unsigned VF = DstVTy->getNumElements(); in getBoolVecToIntConversionCost() local 925 return VF /*ldxbr/lexbr*/ + in getCastInstrCost() 929 return VF / 2 /*vledb*/ + std::max(1U, VF / 4 /*vperm*/); in getCastInstrCost() 937 return VF * 2; in getCastInstrCost() [all …]
|
| /freebsd-14.2/contrib/llvm-project/llvm/include/llvm/Analysis/ |
| H A D | VectorUtils.h | 82 std::optional<ElementCount> VF = std::nullopt) { 88 if (!VF || Info.Shape.VF == *VF) 139 inline Type *ToVectorTy(Type *Scalar, unsigned VF) { in ToVectorTy() argument 140 return ToVectorTy(Scalar, ElementCount::getFixed(VF)); in ToVectorTy() 324 Constant *createBitMaskForGaps(IRBuilderBase &Builder, unsigned VF, 340 unsigned VF); 353 llvm::SmallVector<int, 16> createInterleaveMask(unsigned VF, unsigned NumVecs); 368 unsigned VF);
|
| H A D | TargetLibraryInfo.h | 201 bool isFunctionVectorizable(StringRef F, const ElementCount &VF) const { in isFunctionVectorizable() argument 202 return !(getVectorizedFunction(F, VF, false).empty() && in isFunctionVectorizable() 203 getVectorizedFunction(F, VF, true).empty()); in isFunctionVectorizable() 212 StringRef getVectorizedFunction(StringRef F, const ElementCount &VF, 218 const VecDesc *getVectorMappingInfo(StringRef F, const ElementCount &VF, 395 bool isFunctionVectorizable(StringRef F, const ElementCount &VF) const { in isFunctionVectorizable() argument 396 return Impl->isFunctionVectorizable(F, VF); in isFunctionVectorizable() 401 StringRef getVectorizedFunction(StringRef F, const ElementCount &VF, 403 return Impl->getVectorizedFunction(F, VF, Masked); 405 const VecDesc *getVectorMappingInfo(StringRef F, const ElementCount &VF, in getVectorMappingInfo() argument [all …]
|
| H A D | TargetTransformInfo.h | 1155 unsigned getStoreMinimumVF(unsigned VF, Type *ScalarMemTy, 1226 unsigned getMaxInterleaveFactor(ElementCount VF) const; 1377 int VF, 1611 ElementCount VF) const; 1618 unsigned getLoadVectorFactor(unsigned VF, unsigned LoadSize, 1965 virtual unsigned getMaxInterleaveFactor(ElementCount VF) = 0; 2519 unsigned getStoreMinimumVF(unsigned VF, Type *ScalarMemTy, in getStoreMinimumVF() argument 2575 unsigned getMaxInterleaveFactor(ElementCount VF) override { in getMaxInterleaveFactor() argument 2576 return Impl.getMaxInterleaveFactor(VF); in getMaxInterleaveFactor() 2791 return Impl.isLegalToVectorizeReduction(RdxDesc, VF); in isLegalToVectorizeReduction() [all …]
|
| H A D | TargetTransformInfoImpl.h | 481 unsigned getStoreMinimumVF(unsigned VF, Type *, Type *) const { return VF; } in getStoreMinimumVF() argument 525 unsigned getMaxInterleaveFactor(ElementCount VF) const { return 1; } in getMaxInterleaveFactor() argument 655 unsigned getReplicationShuffleCost(Type *EltTy, int ReplicationFactor, int VF, in getReplicationShuffleCost() argument 871 ElementCount VF) const { in isLegalToVectorizeReduction() argument 877 unsigned getLoadVectorFactor(unsigned VF, unsigned LoadSize, in getLoadVectorFactor() argument 880 return VF; in getLoadVectorFactor() 883 unsigned getStoreVectorFactor(unsigned VF, unsigned StoreSize, in getStoreVectorFactor() argument 886 return VF; in getStoreVectorFactor() 1334 int ReplicationFactor, VF; in getInstructionCost() local 1335 if (Shuffle->isReplicationMask(ReplicationFactor, VF)) { in getInstructionCost() [all …]
|
| /freebsd-14.2/contrib/llvm-project/llvm/lib/Target/AArch64/ |
| H A D | AArch64TargetTransformInfo.h | 151 unsigned getMaxNumElements(ElementCount VF) const { in getMaxNumElements() argument 152 if (!VF.isScalable()) in getMaxNumElements() 153 return VF.getFixedValue(); in getMaxNumElements() 155 return VF.getKnownMinValue() * ST->getVScaleForTuning(); in getMaxNumElements() 158 unsigned getMaxInterleaveFactor(ElementCount VF); 381 ElementCount VF) const; 417 unsigned getStoreMinimumVF(unsigned VF, Type *ScalarMemTy, in getStoreMinimumVF() argument 420 if (ScalarMemTy->isIntegerTy(8) && isPowerOf2_32(VF) && VF >= 4) in getStoreMinimumVF() 423 return BaseT::getStoreMinimumVF(VF, ScalarMemTy, ScalarValTy); in getStoreMinimumVF()
|
| /freebsd-14.2/contrib/llvm-project/llvm/lib/IR/ |
| H A D | VFABIDemangler.cpp | 95 unsigned VF = 0; in tryParseVLEN() local 96 if (ParseString.consumeInteger(10, VF)) in tryParseVLEN() 100 if (VF == 0) in tryParseVLEN() 103 ParsedVF = {VF, false}; in tryParseVLEN() 551 ElementCount VF = Info.Shape.VF; in createFunctionType() local 556 VectorType::get(Type::getInt1Ty(ScalarFTy->getContext()), VF); in createFunctionType() 563 OperandTy = VectorType::get(OperandTy, VF); in createFunctionType() 569 RetTy = VectorType::get(RetTy, VF); in createFunctionType()
|
| /freebsd-14.2/contrib/llvm-project/llvm/include/llvm/IR/ |
| H A D | VFABIDemangler.h | 83 ElementCount VF; // Vectorization factor. member 87 return std::tie(VF, Parameters) == std::tie(Other.VF, Other.Parameters);
|
| /freebsd-14.2/contrib/llvm-project/llvm/lib/Target/X86/ |
| H A D | X86InterleavedAccess.cpp | 439 int VF = VT.getVectorNumElements(); in createShuffleStride() local 442 for (int i = 0, LaneSize = VF / LaneCount; i != LaneSize; ++i) in createShuffleStride() 452 int VF = VT.getVectorNumElements() / std::max(VectorSize / 128, 1); in setGroupSize() local 454 int GroupSize = std::ceil((VF - FirstGroupElement) / 3.0); in setGroupSize() 456 FirstGroupElement = ((GroupSize)*3 + FirstGroupElement) % VF; in setGroupSize() 611 int VF = VT.getVectorNumElements(); in group2Shuffle() local 615 IndexGroup[(Index * 3) % (VF / Lane)] = Index; in group2Shuffle() 619 for (int i = 0; i < VF / Lane; i++) { in group2Shuffle()
|
| /freebsd-14.2/contrib/llvm-project/llvm/lib/Target/RISCV/ |
| H A D | RISCVTargetTransformInfo.h | 272 ElementCount VF) const { in isLegalToVectorizeReduction() argument 273 if (!VF.isScalable()) in isLegalToVectorizeReduction() 301 unsigned getMaxInterleaveFactor(ElementCount VF) { in getMaxInterleaveFactor() argument 303 if (VF.isScalable()) in getMaxInterleaveFactor() 307 return VF.isScalar() ? 1 : ST->getMaxInterleaveFactor(); in getMaxInterleaveFactor()
|
| /freebsd-14.2/contrib/llvm-project/llvm/lib/Analysis/ |
| H A D | VectorUtils.cpp | 492 for (int Idx = 0, VF = FirstMask.size(); Idx < VF; ++Idx) { in processShuffleMasks() local 496 FirstMask[Idx] = SecondMask[Idx] + VF; in processShuffleMasks() 501 for (int Idx = 0, VF = Mask.size(); Idx < VF; ++Idx) { in processShuffleMasks() local 832 llvm::createBitMaskForGaps(IRBuilderBase &Builder, unsigned VF, in createBitMaskForGaps() argument 842 for (unsigned i = 0; i < VF; i++) in createBitMaskForGaps() 852 llvm::createReplicatedMask(unsigned ReplicationFactor, unsigned VF) { in createReplicatedMask() argument 854 for (unsigned i = 0; i < VF; i++) in createReplicatedMask() 861 llvm::SmallVector<int, 16> llvm::createInterleaveMask(unsigned VF, in createInterleaveMask() argument 864 for (unsigned i = 0; i < VF; i++) in createInterleaveMask() 866 Mask.push_back(j * VF + i); in createInterleaveMask() [all …]
|
| H A D | TargetLibraryInfo.cpp | 1229 #define TLI_DEFINE_VECFUNC(SCAL, VEC, VF, VABI_PREFIX) \ in addVectorizableFunctionsFromVecLib() argument 1230 {SCAL, VEC, VF, /* MASK = */ false, VABI_PREFIX}, in addVectorizableFunctionsFromVecLib() 1236 {SCAL, VEC, VF, /* MASK = */ false, VABI_PREFIX}, in addVectorizableFunctionsFromVecLib() 1242 {SCAL, VEC, VF, MASK, VABI_PREFIX}, in addVectorizableFunctionsFromVecLib() 1262 {SCAL, VEC, VF, MASK, VABI_PREFIX}, in addVectorizableFunctionsFromVecLib() 1292 const ElementCount &VF, in getVectorizedFunction() argument 1294 const VecDesc *VD = getVectorMappingInfo(F, VF, Masked); in getVectorizedFunction() 1309 if ((I->getVectorizationFactor() == VF) && (I->isMasked() == Masked)) in getVectorMappingInfo() 1386 ElementCount *VF = in getWidestVF() local 1388 if (ElementCount::isKnownGT(I->getVectorizationFactor(), *VF)) in getWidestVF() [all …]
|
| H A D | TargetTransformInfo.cpp | 748 unsigned TargetTransformInfo::getStoreMinimumVF(unsigned VF, Type *ScalarMemTy, in getStoreMinimumVF() argument 750 return TTIImpl->getStoreMinimumVF(VF, ScalarMemTy, ScalarValTy); in getStoreMinimumVF() 802 unsigned TargetTransformInfo::getMaxInterleaveFactor(ElementCount VF) const { in getMaxInterleaveFactor() 803 return TTIImpl->getMaxInterleaveFactor(VF); in getMaxInterleaveFactor() 1006 Type *EltTy, int ReplicationFactor, int VF, const APInt &DemandedDstElts, in getReplicationShuffleCost() argument 1009 EltTy, ReplicationFactor, VF, DemandedDstElts, CostKind); in getReplicationShuffleCost() 1216 const RecurrenceDescriptor &RdxDesc, ElementCount VF) const { in isLegalToVectorizeReduction() 1217 return TTIImpl->isLegalToVectorizeReduction(RdxDesc, VF); in isLegalToVectorizeReduction() 1224 unsigned TargetTransformInfo::getLoadVectorFactor(unsigned VF, in getLoadVectorFactor() argument 1228 return TTIImpl->getLoadVectorFactor(VF, LoadSize, ChainSizeInBytes, VecTy); in getLoadVectorFactor() [all …]
|
| /freebsd-14.2/contrib/llvm-project/llvm/lib/Target/AMDGPU/ |
| H A D | R600TargetTransformInfo.cpp | 85 unsigned R600TTIImpl::getMaxInterleaveFactor(ElementCount VF) { in getMaxInterleaveFactor() argument 88 if (VF.isScalar()) in getMaxInterleaveFactor()
|
| H A D | AMDGPUTargetTransformInfo.h | 124 unsigned getLoadVectorFactor(unsigned VF, unsigned LoadSize, 127 unsigned getStoreVectorFactor(unsigned VF, unsigned StoreSize, 150 unsigned getMaxInterleaveFactor(ElementCount VF);
|
| /freebsd-14.2/tools/tools/vop_table/ |
| H A D | vop_table.pl | 167 @VF = <V>; 176 foreach $v (@VF) {
|
| /freebsd-14.2/contrib/llvm-project/llvm/lib/Target/PowerPC/MCTargetDesc/ |
| H A D | PPCMCTargetDesc.h | 263 static const MCPhysReg VFRegs[32] = PPC_REGS0_31(PPC::VF); \ 268 static const MCPhysReg VSFRegs[64] = PPC_REGS_LO_HI(PPC::F, PPC::VF); \ 269 static const MCPhysReg VSSRegs[64] = PPC_REGS_LO_HI(PPC::F, PPC::VF); \
|