HomeSort by: relevance | last modified time | path
    Searched refs:VF (Results 1 - 25 of 55) sorted by relevancy

1 2 3

  /src/external/apache2/llvm/dist/llvm/lib/Transforms/Utils/
InjectTLIMappings.cpp 39 /// vectorizes the CallInst CI with a vectorization factor of VF
41 /// CI (other than void) need to be widened to a VectorType of VF
43 static void addVariantDeclaration(CallInst &CI, const ElementCount &VF,
48 Type *RetTy = ToVectorTy(CI.getType(), VF);
51 Tys.push_back(ToVectorTy(ArgOperand->getType(), VF));
93 auto AddVariantDecl = [&](const ElementCount &VF) {
95 std::string(TLI.getVectorizedFunction(ScalarName, VF));
98 TLIName, ScalarName, CI.getNumArgOperands(), VF);
105 addVariantDeclaration(CI, VF, TLIName);
113 for (ElementCount VF = ElementCount::getFixed(2)
    [all...]
  /src/external/apache2/llvm/dist/llvm/lib/Transforms/Vectorize/
LoopVectorize.cpp 183 "epilogue-vectorization-force-VF", cl::init(1), cl::Hidden,
185 "1 is specified, forces the given VF for all applicable epilogue "
189 "epilogue-vectorization-minimum-VF", cl::init(16), cl::Hidden,
441 /// block to a specified vectorization factor (VF).
465 AC(AC), ORE(ORE), VF(VecWidth), UF(UnrollFactor),
511 unsigned UF, ElementCount VF, bool IsPtrLoopInvariant,
515 /// variable canonicalization. It supports both VF = 1 for unrolled loops and
579 /// original loop, when scalarized, is represented by UF x VF scalar values
580 /// in the new unrolled loop, where UF is the unroll factor and VF is the
802 ElementCount VF;
    [all...]
VPlan.cpp 64 const ElementCount &VF) const {
67 // Lane = RuntimeVF - VF.getKnownMinValue() + Lane
68 return Builder.CreateSub(getRuntimeVF(Builder, Builder.getInt32Ty(), VF),
69 Builder.getInt32(VF.getKnownMinValue() - Lane));
233 .PerPartScalars[Def][Instance.Part][Instance.Lane.mapToCacheIndex(VF)];
243 Value *Lane = Instance.Lane.getAsRuntimeExpr(Builder, VF);
477 assert(!State->VF.isScalable() && "VF is assumed to be non scalable.");
478 for (unsigned Lane = 0, VF = State->VF.getKnownMinValue(); Lane < VF
    [all...]
VPlan.h 64 /// Returns a calculation for the total number of elements for a given \p VF.
67 Value *getRuntimeVF(IRBuilder<> &B, Type *Ty, ElementCount VF);
116 /// in [0..VF)
127 static VPLane getLastLaneForVF(const ElementCount &VF) {
128 unsigned LaneOffset = VF.getKnownMinValue() - 1;
130 if (VF.isScalable())
132 // last subvector with VF.getKnownMinValue() elements.
148 Value *getAsRuntimeExpr(IRBuilder<> &Builder, const ElementCount &VF) const;
156 /// Maps the lane to a cache index based on \p VF.
157 unsigned mapToCacheIndex(const ElementCount &VF) const
    [all...]
LoopVectorizationPlanner.h 206 /// fixed and/or scalable VFs in order to find the most cost-effective VF to
227 /// \return true if either fixed- or scalable VF is non-zero.
230 /// \return true if either fixed- or scalable VF is a valid vector VF.
290 /// Plan how to best vectorize, return the best VF and its cost, or None if
295 /// VF and its cost.
299 void setBestPlan(ElementCount VF, unsigned UF);
313 return all_of(VFs, [&](const ElementCount &VF) {
314 return Plan->hasVF(VF);
319 /// Test a \p Predicate on a \p Range of VF's. Return the value of applyin
    [all...]
LoadStoreVectorizer.cpp 829 unsigned VF = VecRegSize / TySize;
834 (VecTy && TTI.getLoadVectorFactor(VF, TySize, TySize / 8, VecTy) == 0))
876 unsigned VF = VecRegSize / TySize;
881 (VecTy && TTI.getStoreVectorFactor(VF, TySize, TySize / 8, VecTy) == 0))
1012 unsigned VF = VecRegSize / Sz;
1016 if (!isPowerOf2_32(Sz) || VF < 2 || ChainSize < 2) {
1052 unsigned TargetVF = TTI.getStoreVectorFactor(VF, Sz, SzInBytes, VecTy);
1053 if (ChainSize > VF || (VF != TargetVF && TargetVF < ChainSize)) {
1165 unsigned VF = VecRegSize / Sz
    [all...]
LoopVectorizationLegality.cpp 588 for (ElementCount VF = ElementCount::getFixed(2);
589 ElementCount::isKnownLE(VF, WidestFixedVF); VF *= 2)
590 Scalarize &= !TLI.isFunctionVectorizable(ScalarName, VF);
591 for (ElementCount VF = ElementCount::getScalable(1);
592 ElementCount::isKnownLE(VF, WidestScalableVF); VF *= 2)
593 Scalarize &= !TLI.isFunctionVectorizable(ScalarName, VF);
595 "Caller may decide to scalarize a variant using a scalable VF");
  /src/external/apache2/llvm/dist/llvm/lib/CodeGen/
ReplaceWithVeclib.cpp 107 ElementCount VF = ElementCount::getFixed(0);
130 if (VF.isNonZero() && VF != NumElements) {
134 VF = NumElements;
160 std::string(TLI.getVectorizedFunction(ScalarName, VF));
163 << ScalarName << "` and vector width " << VF << ".\n");
  /src/external/apache2/llvm/dist/llvm/lib/Analysis/
VFABIDemangling.cpp 67 /// sets `VF` accordingly. A `<vlen> == "x"` token is interpreted as a scalable
71 ParseRet tryParseVLEN(StringRef &ParseString, unsigned &VF, bool &IsScalable) {
73 // Set VF to 0, to be later adjusted to a value grater than zero
76 VF = 0;
81 if (ParseString.consumeInteger(10, VF))
85 if (VF == 0)
343 unsigned VF;
345 if (tryParseVLEN(MangledName, VF, IsScalable) != ParseRet::OK)
431 // Adjust the VF for scalable signatures. The EC.Min is not encoded
436 // need to make sure that the VF field of the VFShape class is neve
    [all...]
VectorUtils.cpp 756 llvm::createBitMaskForGaps(IRBuilderBase &Builder, unsigned VF,
766 for (unsigned i = 0; i < VF; i++)
776 llvm::createReplicatedMask(unsigned ReplicationFactor, unsigned VF) {
778 for (unsigned i = 0; i < VF; i++)
785 llvm::SmallVector<int, 16> llvm::createInterleaveMask(unsigned VF,
788 for (unsigned i = 0; i < VF; i++)
790 Mask.push_back(j * VF + i);
796 llvm::createStrideMask(unsigned Start, unsigned Stride, unsigned VF) {
798 for (unsigned i = 0; i < VF; i++)
1303 ElementCount VF) {
    [all...]
  /src/external/apache2/llvm/dist/llvm/lib/Target/SystemZ/
SystemZTargetTransformInfo.cpp 486 unsigned VF = VTy->getNumElements();
500 return VF * DivMulSeqCost + getScalarizationOverhead(VTy, Args, Tys);
502 if ((SignedDivRem || UnsignedDivRem) && VF > 4)
526 (VF * ScalarCost) + getScalarizationOverhead(VTy, Args, Tys);
527 // FIXME: VF 2 for these FP operations are currently just as
528 // expensive as for VF 4.
529 if (VF == 2)
545 (VF * LIBCALL_COST) + getScalarizationOverhead(VTy, Args, Tys);
546 // FIXME: VF 2 for float is currently just as expensive as for VF 4
    [all...]
  /src/external/apache2/llvm/dist/llvm/include/llvm/Analysis/
TargetLibraryInfo.h 155 /// factor VF.
156 bool isFunctionVectorizable(StringRef F, const ElementCount &VF) const {
157 return !getVectorizedFunction(F, VF).empty();
164 /// Return the name of the equivalent of F, vectorized with factor VF. If no
166 StringRef getVectorizedFunction(StringRef F, const ElementCount &VF) const;
315 bool isFunctionVectorizable(StringRef F, const ElementCount &VF) const {
316 return Impl->isFunctionVectorizable(F, VF);
321 StringRef getVectorizedFunction(StringRef F, const ElementCount &VF) const {
322 return Impl->getVectorizedFunction(F, VF);
VectorUtils.h 83 unsigned VF; // Vectorization factor.
88 return std::tie(VF, IsScalable, Parameters) ==
89 std::tie(Other.VF, Other.IsScalable, Other.Parameters);
100 // with VF = 1.
189 unsigned numArgs, ElementCount VF);
307 inline Type *ToVectorTy(Type *Scalar, unsigned VF) {
308 return ToVectorTy(Scalar, ElementCount::getFixed(VF));
466 /// and \p VF 4, that has only its first member present is:
473 Constant *createBitMaskForGaps(IRBuilderBase &Builder, unsigned VF,
478 /// This function creates a shuffle mask for replicating each of the \p VF
    [all...]
TargetTransformInfo.h 950 /// bit width, or 0 if there is no minimum VF. The returned value only
952 /// If IsScalable is true, the returned ElementCount must be a scalable VF.
956 /// bit width and opcode, or 0 if there is no maximum VF.
1022 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
    [all...]
TargetTransformInfoImpl.h 446 unsigned getMaxInterleaveFactor(unsigned VF) const { return 1; }
719 ElementCount VF) const {
723 unsigned getLoadVectorFactor(unsigned VF, unsigned LoadSize,
726 return VF;
729 unsigned getStoreVectorFactor(unsigned VF, unsigned StoreSize,
732 return VF;
  /src/usr.sbin/lpr/common_source/
lp.h 77 extern const char *VF; /* name of raster filter (per job) */
  /src/external/apache2/llvm/dist/llvm/lib/Target/AMDGPU/
AMDGPUTargetTransformInfo.h 127 unsigned getLoadVectorFactor(unsigned VF, unsigned LoadSize,
130 unsigned getStoreVectorFactor(unsigned VF, unsigned StoreSize,
152 unsigned getMaxInterleaveFactor(unsigned VF);
256 unsigned getMaxInterleaveFactor(unsigned VF);
AMDGPUTargetTransformInfo.cpp 342 unsigned GCNTTIImpl::getLoadVectorFactor(unsigned VF, unsigned LoadSize,
345 unsigned VecRegBitWidth = VF * LoadSize;
350 return VF;
353 unsigned GCNTTIImpl::getStoreVectorFactor(unsigned VF, unsigned StoreSize,
356 unsigned VecRegBitWidth = VF * StoreSize;
360 return VF;
473 unsigned GCNTTIImpl::getMaxInterleaveFactor(unsigned VF) {
476 if (VF == 1)
760 // intrinsic. A vectorizer will pass a scalar RetTy and VF > 1, while
761 // CostModel will pass a vector RetTy and VF is 1
    [all...]
  /src/external/apache2/llvm/dist/llvm/lib/Target/RISCV/
RISCVTargetTransformInfo.h 144 ElementCount VF) const {
148 if (!VF.isScalable())
  /src/bin/pax/
options.h 73 #define VF 0x000008000ULL
  /src/external/apache2/llvm/dist/llvm/lib/Target/PowerPC/MCTargetDesc/
PPCMCTargetDesc.h 166 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); \
  /src/external/apache2/llvm/dist/llvm/lib/Target/X86/
X86InterleavedAccess.cpp 201 // [0,1...,VF/2-1,VF/2+VF,VF/2+VF+1,...,2VF-1]
432 // {0, Stride%(VF/Lane), (2*Stride%(VF/Lane))...(VF*Stride/Lane)%(VF/Lane)
    [all...]
  /src/external/apache2/llvm/dist/clang/lib/Basic/
FileManager.cpp 441 llvm::Optional<FileEntryRef> FileManager::getBypassFile(FileEntryRef VF) {
444 if (getStatValue(VF.getName(), Status, /*isFile=*/true, /*F=*/nullptr))
453 {VF.getName(), std::errc::no_such_file_or_directory});
459 const FileEntry &VFE = VF.getFileEntry();
461 Insertion.first->second = FileEntryRef::MapValue(BFE, VF.getDir());
  /src/external/apache2/llvm/dist/llvm/lib/Target/AArch64/
AArch64TargetTransformInfo.h 134 unsigned getMaxInterleaveFactor(unsigned VF);
296 ElementCount VF) const;
  /src/external/apache2/llvm/dist/llvm/lib/Transforms/IPO/
WholeProgramDevirt.cpp 2076 for (FunctionSummary::VFuncId VF : FS->type_test_assume_vcalls()) {
2077 for (Metadata *MD : MetadataByGUID[VF.GUID]) {
2078 CallSlots[{MD, VF.Offset}].CSInfo.addSummaryTypeTestAssumeUser(FS);
2081 for (FunctionSummary::VFuncId VF : FS->type_checked_load_vcalls()) {
2082 for (Metadata *MD : MetadataByGUID[VF.GUID]) {
2083 CallSlots[{MD, VF.Offset}].CSInfo.addSummaryTypeCheckedLoadUser(FS);
2205 for (FunctionSummary::VFuncId VF : FS->type_test_assume_vcalls()) {
2206 for (StringRef Name : NameByGUID[VF.GUID]) {
2207 CallSlots[{Name, VF.Offset}].CSInfo.addSummaryTypeTestAssumeUser(FS);
2210 for (FunctionSummary::VFuncId VF : FS->type_checked_load_vcalls())
    [all...]

Completed in 86 milliseconds

1 2 3