Home
last modified time | relevance | path

Searched refs:VF (Results 1 – 25 of 91) sorted by relevance

1234

/netbsd-src/external/apache2/llvm/dist/llvm/lib/Transforms/Vectorize/
H A DLoopVectorize.cpp465 AC(AC), ORE(ORE), VF(VecWidth), UF(UnrollFactor), in InnerLoopVectorizer()
511 unsigned UF, ElementCount VF, bool IsPtrLoopInvariant,
802 ElementCount VF; member in llvm::InnerLoopVectorizer
1057 DIL->cloneByMultiplyingDuplicationFactor(UF * VF.getKnownMinValue()); in setDebugLocFromInst()
1109 static Value *createStepForVF(IRBuilder<> &B, Constant *Step, ElementCount VF) { in createStepForVF() argument
1113 cast<ConstantInt>(Step)->getSExtValue() * VF.getKnownMinValue()); in createStepForVF()
1114 return VF.isScalable() ? B.CreateVScale(StepVal) : StepVal; in createStepForVF()
1120 Value *getRuntimeVF(IRBuilder<> &B, Type *Ty, ElementCount VF) { in getRuntimeVF() argument
1121 Constant *EC = ConstantInt::get(Ty, VF.getKnownMinValue()); in getRuntimeVF()
1122 return VF.isScalable() ? B.CreateVScale(EC) : EC; in getRuntimeVF()
[all …]
H A DVPlan.cpp64 const ElementCount &VF) const { in getAsRuntimeExpr()
68 return Builder.CreateSub(getRuntimeVF(Builder, Builder.getInt32Ty(), VF), in getAsRuntimeExpr()
69 Builder.getInt32(VF.getKnownMinValue() - Lane)); in getAsRuntimeExpr()
233 .PerPartScalars[Def][Instance.Part][Instance.Lane.mapToCacheIndex(VF)]; in get()
243 Value *Lane = Instance.Lane.getAsRuntimeExpr(Builder, VF); in get()
477 assert(!State->VF.isScalable() && "VF is assumed to be non scalable."); in execute()
478 for (unsigned Lane = 0, VF = State->VF.getKnownMinValue(); Lane < VF; in execute() local
612 auto *PredTy = FixedVectorType::get(Int1Ty, State.VF.getKnownMinValue()); in generateInstruction()
683 auto VF = State->VF; in execute() local
685 VF.isScalar() ? TCMO : Builder.CreateVectorSplat(VF, TCMO, "broadcast"); in execute()
[all …]
H A DVPlan.h67 Value *getRuntimeVF(IRBuilder<> &B, Type *Ty, ElementCount VF);
127 static VPLane getLastLaneForVF(const ElementCount &VF) { in getLastLaneForVF() argument
128 unsigned LaneOffset = VF.getKnownMinValue() - 1; in getLastLaneForVF()
130 if (VF.isScalable()) in getLastLaneForVF()
148 Value *getAsRuntimeExpr(IRBuilder<> &Builder, const ElementCount &VF) const;
157 unsigned mapToCacheIndex(const ElementCount &VF) const { in mapToCacheIndex() argument
160 assert(VF.isScalable() && Lane < VF.getKnownMinValue()); in mapToCacheIndex()
161 return VF.getKnownMinValue() + Lane; in mapToCacheIndex()
163 assert(Lane < VF.getKnownMinValue()); in mapToCacheIndex()
170 static unsigned getNumCachedLanes(const ElementCount &VF) { in getNumCachedLanes() argument
[all …]
H A DLoadStoreVectorizer.cpp829 unsigned VF = VecRegSize / TySize; in collectInstructions() local
834 (VecTy && TTI.getLoadVectorFactor(VF, TySize, TySize / 8, VecTy) == 0)) in collectInstructions()
876 unsigned VF = VecRegSize / TySize; in collectInstructions() local
881 (VecTy && TTI.getStoreVectorFactor(VF, TySize, TySize / 8, VecTy) == 0)) in collectInstructions()
1012 unsigned VF = VecRegSize / Sz; in vectorizeStoreChain() local
1016 if (!isPowerOf2_32(Sz) || VF < 2 || ChainSize < 2) { in vectorizeStoreChain()
1052 unsigned TargetVF = TTI.getStoreVectorFactor(VF, Sz, SzInBytes, VecTy); in vectorizeStoreChain()
1053 if (ChainSize > VF || (VF != TargetVF && TargetVF < ChainSize)) { in vectorizeStoreChain()
1165 unsigned VF = VecRegSize / Sz; in vectorizeLoadChain() local
1169 if (!isPowerOf2_32(Sz) || VF < 2 || ChainSize < 2) { in vectorizeLoadChain()
[all …]
H A DLoopVectorizationLegality.cpp588 for (ElementCount VF = ElementCount::getFixed(2); in isTLIScalarize() local
589 ElementCount::isKnownLE(VF, WidestFixedVF); VF *= 2) in isTLIScalarize()
590 Scalarize &= !TLI.isFunctionVectorizable(ScalarName, VF); in isTLIScalarize()
591 for (ElementCount VF = ElementCount::getScalable(1); in isTLIScalarize() local
592 ElementCount::isKnownLE(VF, WidestScalableVF); VF *= 2) in isTLIScalarize()
593 Scalarize &= !TLI.isFunctionVectorizable(ScalarName, VF); in isTLIScalarize()
H A DLoopVectorizationPlanner.h299 void setBestPlan(ElementCount VF, unsigned UF);
313 return all_of(VFs, [&](const ElementCount &VF) { in hasPlanWithVFs()
314 return Plan->hasVF(VF); in hasPlanWithVFs()
/netbsd-src/external/apache2/llvm/dist/llvm/lib/Transforms/Utils/
H A DInjectTLIMappings.cpp43 static void addVariantDeclaration(CallInst &CI, const ElementCount &VF, in addVariantDeclaration() argument
48 Type *RetTy = ToVectorTy(CI.getType(), VF); in addVariantDeclaration()
51 Tys.push_back(ToVectorTy(ArgOperand->getType(), VF)); in addVariantDeclaration()
93 auto AddVariantDecl = [&](const ElementCount &VF) { in addMappingsFromTLI() argument
95 std::string(TLI.getVectorizedFunction(ScalarName, VF)); in addMappingsFromTLI()
98 TLIName, ScalarName, CI.getNumArgOperands(), VF); in addMappingsFromTLI()
105 addVariantDeclaration(CI, VF, TLIName); in addMappingsFromTLI()
113 for (ElementCount VF = ElementCount::getFixed(2); in addMappingsFromTLI() local
114 ElementCount::isKnownLE(VF, WidestFixedVF); VF *= 2) in addMappingsFromTLI()
115 AddVariantDecl(VF); in addMappingsFromTLI()
/netbsd-src/external/apache2/llvm/dist/llvm/lib/Target/SystemZ/
H A DSystemZTargetTransformInfo.cpp486 unsigned VF = VTy->getNumElements(); in getArithmeticInstrCost() local
500 return VF * DivMulSeqCost + getScalarizationOverhead(VTy, Args, Tys); in getArithmeticInstrCost()
502 if ((SignedDivRem || UnsignedDivRem) && VF > 4) in getArithmeticInstrCost()
526 (VF * ScalarCost) + getScalarizationOverhead(VTy, Args, Tys); in getArithmeticInstrCost()
529 if (VF == 2) in getArithmeticInstrCost()
545 (VF * LIBCALL_COST) + getScalarizationOverhead(VTy, Args, Tys); in getArithmeticInstrCost()
547 if (VF == 2 && ScalarBits == 32) in getArithmeticInstrCost()
633 unsigned VF = cast<FixedVectorType>(SrcTy)->getNumElements(); in getVectorTruncCost() local
643 if (VF == 8 && SrcTy->getScalarSizeInBits() == 64 && in getVectorTruncCost()
677 static Type *getCmpOpsType(const Instruction *I, unsigned VF = 1) { in getCmpOpsType() argument
[all …]
/netbsd-src/external/apache2/llvm/dist/llvm/lib/Analysis/
H A DVFABIDemangling.cpp71 ParseRet tryParseVLEN(StringRef &ParseString, unsigned &VF, bool &IsScalable) { in tryParseVLEN() argument
76 VF = 0; in tryParseVLEN()
81 if (ParseString.consumeInteger(10, VF)) in tryParseVLEN()
85 if (VF == 0) in tryParseVLEN()
343 unsigned VF; in tryDemangleForVFABI() local
345 if (tryParseVLEN(MangledName, VF, IsScalable) != ParseRet::OK) in tryDemangleForVFABI()
445 VF = EC.getKnownMinValue(); in tryDemangleForVFABI()
452 if (VF == 0) in tryDemangleForVFABI()
457 const VFShape Shape({VF, IsScalable, Parameters}); in tryDemangleForVFABI()
H A DVectorUtils.cpp756 llvm::createBitMaskForGaps(IRBuilderBase &Builder, unsigned VF, in createBitMaskForGaps() argument
766 for (unsigned i = 0; i < VF; i++) in createBitMaskForGaps()
776 llvm::createReplicatedMask(unsigned ReplicationFactor, unsigned VF) { in createReplicatedMask() argument
778 for (unsigned i = 0; i < VF; i++) in createReplicatedMask()
785 llvm::SmallVector<int, 16> llvm::createInterleaveMask(unsigned VF, in createInterleaveMask() argument
788 for (unsigned i = 0; i < VF; i++) in createInterleaveMask()
790 Mask.push_back(j * VF + i); in createInterleaveMask()
796 llvm::createStrideMask(unsigned Start, unsigned Stride, unsigned VF) { in createStrideMask() argument
798 for (unsigned i = 0; i < VF; i++) in createStrideMask()
1303 ElementCount VF) { in mangleTLIVectorName() argument
[all …]
/netbsd-src/external/apache2/llvm/dist/llvm/lib/CodeGen/
H A DReplaceWithVeclib.cpp107 ElementCount VF = ElementCount::getFixed(0); in replaceWithCallToVeclib() local
130 if (VF.isNonZero() && VF != NumElements) { in replaceWithCallToVeclib()
134 VF = NumElements; in replaceWithCallToVeclib()
160 std::string(TLI.getVectorizedFunction(ScalarName, VF)); in replaceWithCallToVeclib()
163 << ScalarName << "` and vector width " << VF << ".\n"); in replaceWithCallToVeclib()
/netbsd-src/external/apache2/llvm/dist/llvm/include/llvm/Analysis/
H A DVectorUtils.h83 unsigned VF; // Vectorization factor. member
88 return std::tie(VF, IsScalable, Parameters) ==
89 std::tie(Other.VF, Other.IsScalable, Other.Parameters);
189 unsigned numArgs, ElementCount VF);
307 inline Type *ToVectorTy(Type *Scalar, unsigned VF) { in ToVectorTy() argument
308 return ToVectorTy(Scalar, ElementCount::getFixed(VF)); in ToVectorTy()
473 Constant *createBitMaskForGaps(IRBuilderBase &Builder, unsigned VF,
489 unsigned VF);
502 llvm::SmallVector<int, 16> createInterleaveMask(unsigned VF, unsigned NumVecs);
517 unsigned VF);
H A DTargetLibraryInfo.h156 bool isFunctionVectorizable(StringRef F, const ElementCount &VF) const { in isFunctionVectorizable() argument
157 return !getVectorizedFunction(F, VF).empty(); in isFunctionVectorizable()
166 StringRef getVectorizedFunction(StringRef F, const ElementCount &VF) const;
315 bool isFunctionVectorizable(StringRef F, const ElementCount &VF) const { in isFunctionVectorizable() argument
316 return Impl->isFunctionVectorizable(F, VF); in isFunctionVectorizable()
321 StringRef getVectorizedFunction(StringRef F, const ElementCount &VF) const { in getVectorizedFunction() argument
322 return Impl->getVectorizedFunction(F, VF); in getVectorizedFunction()
H A DTargetTransformInfo.h1022 unsigned getMaxInterleaveFactor(unsigned VF) const;
1325 ElementCount VF) const;
1329 unsigned getLoadVectorFactor(unsigned VF, unsigned LoadSize,
1335 unsigned getStoreVectorFactor(unsigned VF, unsigned StoreSize,
1611 virtual unsigned getMaxInterleaveFactor(unsigned VF) = 0;
1709 ElementCount VF) const = 0;
1710 virtual unsigned getLoadVectorFactor(unsigned VF, unsigned LoadSize,
1713 virtual unsigned getStoreVectorFactor(unsigned VF, unsigned StoreSize,
2081 unsigned getMaxInterleaveFactor(unsigned VF) override { in getMaxInterleaveFactor() argument
2082 return Impl.getMaxInterleaveFactor(VF); in getMaxInterleaveFactor()
[all …]
H A DTargetTransformInfoImpl.h446 unsigned getMaxInterleaveFactor(unsigned VF) const { return 1; } in getMaxInterleaveFactor() argument
719 ElementCount VF) const { in isLegalToVectorizeReduction() argument
723 unsigned getLoadVectorFactor(unsigned VF, unsigned LoadSize, in getLoadVectorFactor() argument
726 return VF; in getLoadVectorFactor()
729 unsigned getStoreVectorFactor(unsigned VF, unsigned StoreSize, in getStoreVectorFactor() argument
732 return VF; in getStoreVectorFactor()
/netbsd-src/external/gpl3/gcc/dist/gcc/config/arm/
H A Dvec-common.md218 [(set (match_operand:VF 0 "register_operand")
219 (unspec:VF [(match_operand:VF 1 "register_operand")
220 (match_operand:VF 2 "register_operand")]
254 [(set (match_operand:VF 0 "register_operand")
255 (plus:VF (match_operand:VF 1 "register_operand")
256 (unspec:VF [(match_operand:VF 2 "register_operand")
257 (match_operand:VF 3 "register_operand")]
267 [(set (match_operand:VF 0 "register_operand")
268 (plus:VF (unspec:VF [(match_operand:VF 1 "register_operand")
269 (match_operand:VF 2 "register_operand")]
[all …]
/netbsd-src/external/apache2/llvm/dist/llvm/lib/Target/X86/
H A DX86InterleavedAccess.cpp443 int VF = VT.getVectorNumElements(); in createShuffleStride() local
446 for (int i = 0, LaneSize = VF / LaneCount; i != LaneSize; ++i) in createShuffleStride()
456 int VF = VT.getVectorNumElements() / std::max(VectorSize / 128, 1); in setGroupSize() local
458 int GroupSize = std::ceil((VF - FirstGroupElement) / 3.0); in setGroupSize()
460 FirstGroupElement = ((GroupSize)*3 + FirstGroupElement) % VF; in setGroupSize()
615 int VF = VT.getVectorNumElements(); in group2Shuffle() local
619 IndexGroup[(Index * 3) % (VF / Lane)] = Index; in group2Shuffle()
623 for (int i = 0; i < VF / Lane; i++) { in group2Shuffle()
/netbsd-src/external/apache2/llvm/dist/llvm/lib/Target/AMDGPU/
H A DAMDGPUTargetTransformInfo.h127 unsigned getLoadVectorFactor(unsigned VF, unsigned LoadSize,
130 unsigned getStoreVectorFactor(unsigned VF, unsigned StoreSize,
152 unsigned getMaxInterleaveFactor(unsigned VF);
256 unsigned getMaxInterleaveFactor(unsigned VF);
H A DAMDGPUTargetTransformInfo.cpp342 unsigned GCNTTIImpl::getLoadVectorFactor(unsigned VF, unsigned LoadSize, in getLoadVectorFactor() argument
345 unsigned VecRegBitWidth = VF * LoadSize; in getLoadVectorFactor()
350 return VF; in getLoadVectorFactor()
353 unsigned GCNTTIImpl::getStoreVectorFactor(unsigned VF, unsigned StoreSize, in getStoreVectorFactor() argument
356 unsigned VecRegBitWidth = VF * StoreSize; in getStoreVectorFactor()
360 return VF; in getStoreVectorFactor()
473 unsigned GCNTTIImpl::getMaxInterleaveFactor(unsigned VF) { in getMaxInterleaveFactor() argument
476 if (VF == 1) in getMaxInterleaveFactor()
1309 unsigned R600TTIImpl::getMaxInterleaveFactor(unsigned VF) { in getMaxInterleaveFactor() argument
1312 if (VF == 1) in getMaxInterleaveFactor()
/netbsd-src/external/apache2/llvm/dist/llvm/lib/Target/PowerPC/MCTargetDesc/
H A DPPCMCTargetDesc.h166 static const MCPhysReg VFRegs[32] = PPC_REGS0_31(PPC::VF); \
175 PPC_REGS_LO_HI(PPC::F, PPC::VF); \
177 PPC_REGS_LO_HI(PPC::F, PPC::VF); \
/netbsd-src/external/apache2/llvm/dist/llvm/docs/Proposals/
H A DVectorizationPlan.rst46 according to a loop Vectorization Factor (VF), and/or loop unroll-and-jammed
67 VF and UF), mixed vectorization: vectorizing a loop with SLP patterns
72 related to a range of possible VF's and UF's must be represented efficiently.
82 replicated VF*UF times to handle scalarized and predicated instructions.
99 Once the best VPlan is determined, including the best VF and UF, this VPlan
138 multiple candidate VF's and UF's.
146 according to selected VF.
/netbsd-src/external/apache2/llvm/dist/llvm/lib/Target/RISCV/
H A DRISCVTargetTransformInfo.h144 ElementCount VF) const { in isLegalToVectorizeReduction() argument
148 if (!VF.isScalable()) in isLegalToVectorizeReduction()
/netbsd-src/external/apache2/llvm/dist/clang/lib/Basic/
H A DFileManager.cpp441 llvm::Optional<FileEntryRef> FileManager::getBypassFile(FileEntryRef VF) { in getBypassFile() argument
444 if (getStatValue(VF.getName(), Status, /*isFile=*/true, /*F=*/nullptr)) in getBypassFile()
453 {VF.getName(), std::errc::no_such_file_or_directory}); in getBypassFile()
459 const FileEntry &VFE = VF.getFileEntry(); in getBypassFile()
461 Insertion.first->second = FileEntryRef::MapValue(BFE, VF.getDir()); in getBypassFile()
/netbsd-src/external/apache2/llvm/dist/llvm/lib/Target/PowerPC/
H A DPPCRegisterInfo.td61 // VF - One of the 32 64-bit floating-point subregisters of the vector
63 class VF<bits<5> num, string n> : PPCReg<n> {
69 class VR<VF SubReg, string n> : PPCReg<n> {
149 def VF#Index : VF<Index, "v" #Index>,
155 def V#Index : VR<!cast<VF>("VF"#Index), "v"#Index>,
369 (sequence "VF%u", 31, 20),
/netbsd-src/external/apache2/llvm/dist/llvm/lib/Transforms/IPO/
H A DWholeProgramDevirt.cpp2076 for (FunctionSummary::VFuncId VF : FS->type_test_assume_vcalls()) { in run() local
2077 for (Metadata *MD : MetadataByGUID[VF.GUID]) { in run()
2078 CallSlots[{MD, VF.Offset}].CSInfo.addSummaryTypeTestAssumeUser(FS); in run()
2081 for (FunctionSummary::VFuncId VF : FS->type_checked_load_vcalls()) { in run() local
2082 for (Metadata *MD : MetadataByGUID[VF.GUID]) { in run()
2083 CallSlots[{MD, VF.Offset}].CSInfo.addSummaryTypeCheckedLoadUser(FS); in run()
2205 for (FunctionSummary::VFuncId VF : FS->type_test_assume_vcalls()) { in run() local
2206 for (StringRef Name : NameByGUID[VF.GUID]) { in run()
2207 CallSlots[{Name, VF.Offset}].CSInfo.addSummaryTypeTestAssumeUser(FS); in run()
2210 for (FunctionSummary::VFuncId VF : FS->type_checked_load_vcalls()) { in run() local
[all …]

1234