| /netbsd-src/external/apache2/llvm/dist/llvm/lib/Transforms/Vectorize/ |
| H A D | LoopVectorize.cpp | 465 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 D | VPlan.cpp | 64 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 D | VPlan.h | 67 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 D | LoadStoreVectorizer.cpp | 829 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 D | LoopVectorizationLegality.cpp | 588 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 D | LoopVectorizationPlanner.h | 299 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 D | InjectTLIMappings.cpp | 43 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 D | SystemZTargetTransformInfo.cpp | 486 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 D | VFABIDemangling.cpp | 71 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 D | VectorUtils.cpp | 756 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 D | ReplaceWithVeclib.cpp | 107 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 D | VectorUtils.h | 83 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 D | TargetLibraryInfo.h | 156 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 D | TargetTransformInfo.h | 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, 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 D | TargetTransformInfoImpl.h | 446 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 D | vec-common.md | 218 [(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 D | X86InterleavedAccess.cpp | 443 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 D | 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);
|
| H A D | AMDGPUTargetTransformInfo.cpp | 342 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 D | 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); \
|
| /netbsd-src/external/apache2/llvm/dist/llvm/docs/Proposals/ |
| H A D | VectorizationPlan.rst | 46 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 D | RISCVTargetTransformInfo.h | 144 ElementCount VF) const { in isLegalToVectorizeReduction() argument 148 if (!VF.isScalable()) in isLegalToVectorizeReduction()
|
| /netbsd-src/external/apache2/llvm/dist/clang/lib/Basic/ |
| H A D | FileManager.cpp | 441 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 D | PPCRegisterInfo.td | 61 // 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 D | WholeProgramDevirt.cpp | 2076 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 …]
|