Home
last modified time | relevance | path

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

1234

/openbsd-src/regress/sys/altivec_ast/
H A Dvecast.c38 #define VF(a, b, c, d) (vector float)(a, b, c, d) macro
148 in1 = VF(10, 0x10p-140, 0x20p-130, -0x2000p-134); in main()
149 in2 = VF( 4, 0x5p-140, -0x1p-130, 0x1fffp-134); in main()
150 ans = VF(14, 0x15p-140, 0x1fp-130, -0x1p-134); in main()
154 in1 = VF(0x4000p-134, 10, 0x10p-140, 0x3p-130); in main()
155 in2 = VF(0x3ffep-134, 4, 0x5p-140, 0x40p-130); in main()
156 ans = VF( 0x2p-134, 6, 0xbp-140, -0x3dp-130); in main()
160 in1 = VF( 0x6p-70, 0x6p-140, 6, 0x6p-100); in main()
161 in2 = VF( 0x7p-70, 0x7p50, 7, 0x7p-30); in main()
162 in3 = VF( 0, 0, 1, -0x20p-130); in main()
[all …]
/openbsd-src/gnu/llvm/llvm/lib/Transforms/Vectorize/
H A DLoopVectorize.cpp457 AC(AC), ORE(ORE), VF(VecWidth), UF(UnrollFactor), in InnerLoopVectorizer()
675 ElementCount VF; member in llvm::InnerLoopVectorizer
953 Value *createStepForVF(IRBuilderBase &B, Type *Ty, ElementCount VF, in createStepForVF() argument
956 Constant *StepVal = ConstantInt::get(Ty, Step * VF.getKnownMinValue()); in createStepForVF()
957 return VF.isScalable() ? B.CreateVScale(StepVal) : StepVal; in createStepForVF()
961 Value *getRuntimeVF(IRBuilderBase &B, Type *Ty, ElementCount VF) { in getRuntimeVF() argument
962 Constant *EC = ConstantInt::get(Ty, VF.getKnownMinValue()); in getRuntimeVF()
963 return VF.isScalable() ? B.CreateVScale(EC) : EC; in getRuntimeVF()
988 ElementCount VF) { in getRuntimeVFAsFloat() argument
991 Value *RuntimeVF = getRuntimeVF(B, IntTy, VF); in getRuntimeVFAsFloat()
[all …]
H A DVPlanRecipes.cpp138 auto Lane = VPLane::getLastLaneForVF(State.VF); in fixPhi()
235 auto *PredTy = VectorType::get(Int1Ty, State.VF); in generateInstruction()
276 createStepForVF(Builder, Phi->getType(), State.VF, State.UF); in generateInstruction()
297 Value *Step = createStepForVF(Builder, IV->getType(), State.VF, Part); in generateInstruction()
449 ToVectorTy(ArgOperand->getType(), State.VF.getKnownMinValue())); in execute()
471 if (State.VF.isVector()) in execute()
473 VectorType::get(CI.getType()->getScalarType(), State.VF); in execute()
479 const VFShape Shape = VFShape::get(CI, State.VF, false /*HasGlobalPred*/); in execute()
666 Type *DestTy = (State.VF.isScalar()) in execute()
668 : VectorType::get(CI->getType(), State.VF); in execute()
[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()
217 .PerPartScalars[Def][Instance.Part][Instance.Lane.mapToCacheIndex(VF)]; in get()
227 Value *Lane = Instance.Lane.getAsRuntimeExpr(Builder, VF); in get()
271 DIL->cloneByMultiplyingDuplicationFactor(UF * VF.getKnownMinValue()); in setDebugLocFromInst()
548 assert(!State->VF.isScalable() && "VF is assumed to be non scalable."); in execute()
549 for (unsigned Lane = 0, VF = State->VF.getKnownMinValue(); Lane < VF; in execute() local
625 auto VF = State.VF; in prepareToExecute() local
627 VF.isScalar() ? TCMO : Builder.CreateVectorSplat(VF, TCMO, "broadcast"); in prepareToExecute()
[all …]
H A DVPlan.h73 Value *getRuntimeVF(IRBuilderBase &B, Type *Ty, ElementCount VF);
76 Value *createStepForVF(IRBuilderBase &B, Type *Ty, ElementCount VF,
139 static VPLane getLastLaneForVF(const ElementCount &VF) { in getLastLaneForVF() argument
140 unsigned LaneOffset = VF.getKnownMinValue() - 1; in getLastLaneForVF()
142 if (VF.isScalable()) in getLastLaneForVF()
160 Value *getAsRuntimeExpr(IRBuilderBase &Builder, const ElementCount &VF) const;
169 unsigned mapToCacheIndex(const ElementCount &VF) const { in mapToCacheIndex() argument
172 assert(VF.isScalable() && Lane < VF.getKnownMinValue()); in mapToCacheIndex()
173 return VF.getKnownMinValue() + Lane; in mapToCacheIndex()
175 assert(Lane < VF.getKnownMinValue()); in mapToCacheIndex()
[all …]
H A DLoadStoreVectorizer.cpp851 unsigned VF = VecRegSize / TySize; in collectInstructions() local
856 (VecTy && TTI.getLoadVectorFactor(VF, TySize, TySize / 8, VecTy) == 0)) in collectInstructions()
891 unsigned VF = VecRegSize / TySize; in collectInstructions() local
896 (VecTy && TTI.getStoreVectorFactor(VF, TySize, TySize / 8, VecTy) == 0)) in collectInstructions()
1021 unsigned VF = VecRegSize / Sz; in vectorizeStoreChain() local
1025 if (!isPowerOf2_32(Sz) || VF < 2 || ChainSize < 2) { in vectorizeStoreChain()
1061 unsigned TargetVF = TTI.getStoreVectorFactor(VF, Sz, SzInBytes, VecTy); in vectorizeStoreChain()
1062 if (ChainSize > VF || (VF != TargetVF && TargetVF < ChainSize)) { in vectorizeStoreChain()
1187 unsigned VF = VecRegSize / Sz; in vectorizeLoadChain() local
1191 if (!isPowerOf2_32(Sz) || VF < 2 || ChainSize < 2) { in vectorizeLoadChain()
[all …]
H A DLoopVectorizationPlanner.h307 VPlan &getBestPlanFor(ElementCount VF) const;
314 void executePlan(ElementCount VF, unsigned UF, VPlan &BestPlan,
324 bool hasPlanWithVF(ElementCount VF) const { in hasPlanWithVF() argument
326 [&](const VPlanPtr &Plan) { return Plan->hasVF(VF); }); in hasPlanWithVF()
H A DSLPVectorizer.cpp342 static SmallBitVector buildUseMask(int VF, ArrayRef<int> Mask, in buildUseMask() argument
344 SmallBitVector UseMask(VF, true); in buildUseMask()
351 if (MaskArg == UseMask::FirstArg && P.value() < VF) in buildUseMask()
353 else if (MaskArg == UseMask::SecondArg && P.value() >= VF) in buildUseMask()
354 UseMask.reset(P.value() - VF); in buildUseMask()
757 Mappings.front().Shape.VF != BaseMappings.front().Shape.VF || in getSameOpcode()
3930 unsigned VF = TE.getVectorFactor(); in getReorderingData() local
3944 for (unsigned I = 0; I < VF; ++I) { in getReorderingData()
3955 OrdersType ResOrder(VF); in getReorderingData()
3958 for (unsigned K = 0; K < VF; K += Sz) { in getReorderingData()
[all …]
H A DLoopVectorizationLegality.cpp643 for (ElementCount VF = ElementCount::getFixed(2); in isTLIScalarize() local
644 ElementCount::isKnownLE(VF, WidestFixedVF); VF *= 2) in isTLIScalarize()
645 Scalarize &= !TLI.isFunctionVectorizable(ScalarName, VF); in isTLIScalarize()
646 for (ElementCount VF = ElementCount::getScalable(1); in isTLIScalarize() local
647 ElementCount::isKnownLE(VF, WidestScalableVF); VF *= 2) in isTLIScalarize()
648 Scalarize &= !TLI.isFunctionVectorizable(ScalarName, VF); in isTLIScalarize()
/openbsd-src/gnu/llvm/llvm/lib/Transforms/Utils/
H A DInjectTLIMappings.cpp42 static void addVariantDeclaration(CallInst &CI, const ElementCount &VF, in addVariantDeclaration() argument
47 Type *RetTy = ToVectorTy(CI.getType(), VF); in addVariantDeclaration()
50 Tys.push_back(ToVectorTy(ArgOperand->getType(), VF)); in addVariantDeclaration()
92 auto AddVariantDecl = [&](const ElementCount &VF) { in addMappingsFromTLI() argument
94 std::string(TLI.getVectorizedFunction(ScalarName, VF)); in addMappingsFromTLI()
97 VFABI::mangleTLIVectorName(TLIName, ScalarName, CI.arg_size(), VF); in addMappingsFromTLI()
104 addVariantDeclaration(CI, VF, TLIName); in addMappingsFromTLI()
112 for (ElementCount VF = ElementCount::getFixed(2); in addMappingsFromTLI() local
113 ElementCount::isKnownLE(VF, WidestFixedVF); VF *= 2) in addMappingsFromTLI()
114 AddVariantDecl(VF); in addMappingsFromTLI()
/openbsd-src/gnu/llvm/llvm/lib/Target/SystemZ/
H A DSystemZTargetTransformInfo.cpp521 unsigned VF = VTy->getNumElements(); in getArithmeticInstrCost() local
535 return VF * DivMulSeqCost + in getArithmeticInstrCost()
538 if ((SignedDivRem || UnsignedDivRem) && VF > 4) in getArithmeticInstrCost()
562 (VF * ScalarCost) + in getArithmeticInstrCost()
566 if (VF == 2) in getArithmeticInstrCost()
581 InstructionCost Cost = (VF * LIBCALL_COST) + in getArithmeticInstrCost()
584 if (VF == 2 && ScalarBits == 32) in getArithmeticInstrCost()
672 unsigned VF = cast<FixedVectorType>(SrcTy)->getNumElements(); in getVectorTruncCost() local
682 if (VF == 8 && SrcTy->getScalarSizeInBits() == 64 && in getVectorTruncCost()
716 static Type *getCmpOpsType(const Instruction *I, unsigned VF = 1) { in getCmpOpsType() argument
[all …]
/openbsd-src/gnu/llvm/llvm/lib/CodeGen/
H A DReplaceWithVeclib.cpp106 ElementCount VF = ElementCount::getFixed(0); in replaceWithCallToVeclib() local
129 if (VF.isNonZero() && VF != NumElements) { in replaceWithCallToVeclib()
133 VF = NumElements; in replaceWithCallToVeclib()
159 std::string(TLI.getVectorizedFunction(ScalarName, VF)); in replaceWithCallToVeclib()
162 << ScalarName << "` and vector width " << VF << ".\n"); in replaceWithCallToVeclib()
/openbsd-src/gnu/llvm/llvm/lib/Analysis/
H A DVFABIDemangling.cpp69 ParseRet tryParseVLEN(StringRef &ParseString, unsigned &VF, bool &IsScalable) { in tryParseVLEN() argument
74 VF = 0; in tryParseVLEN()
79 if (ParseString.consumeInteger(10, VF)) in tryParseVLEN()
83 if (VF == 0) in tryParseVLEN()
341 unsigned VF; in tryDemangleForVFABI() local
343 if (tryParseVLEN(MangledName, VF, IsScalable) != ParseRet::OK) in tryDemangleForVFABI()
443 VF = EC.getKnownMinValue(); in tryDemangleForVFABI()
449 if (VF == 0) in tryDemangleForVFABI()
454 const VFShape Shape({ElementCount::get(VF, IsScalable), Parameters}); in tryDemangleForVFABI()
H A DVectorUtils.cpp614 for (int Idx = 0, VF = FirstMask.size(); Idx < VF; ++Idx) { in processShuffleMasks() local
618 FirstMask[Idx] = SecondMask[Idx] + VF; in processShuffleMasks()
623 for (int Idx = 0, VF = Mask.size(); Idx < VF; ++Idx) { in processShuffleMasks() local
937 llvm::createBitMaskForGaps(IRBuilderBase &Builder, unsigned VF, in createBitMaskForGaps() argument
947 for (unsigned i = 0; i < VF; i++) in createBitMaskForGaps()
957 llvm::createReplicatedMask(unsigned ReplicationFactor, unsigned VF) { in createReplicatedMask() argument
959 for (unsigned i = 0; i < VF; i++) in createReplicatedMask()
966 llvm::SmallVector<int, 16> llvm::createInterleaveMask(unsigned VF, in createInterleaveMask() argument
969 for (unsigned i = 0; i < VF; i++) in createInterleaveMask()
971 Mask.push_back(j * VF + i); in createInterleaveMask()
[all …]
H A DTargetTransformInfo.cpp682 unsigned TargetTransformInfo::getStoreMinimumVF(unsigned VF, Type *ScalarMemTy, in getStoreMinimumVF() argument
684 return TTIImpl->getStoreMinimumVF(VF, ScalarMemTy, ScalarValTy); in getStoreMinimumVF()
731 unsigned TargetTransformInfo::getMaxInterleaveFactor(unsigned VF) const { in getMaxInterleaveFactor()
732 return TTIImpl->getMaxInterleaveFactor(VF); in getMaxInterleaveFactor()
926 Type *EltTy, int ReplicationFactor, int VF, const APInt &DemandedDstElts, in getReplicationShuffleCost() argument
929 EltTy, ReplicationFactor, VF, DemandedDstElts, CostKind); in getReplicationShuffleCost()
1125 const RecurrenceDescriptor &RdxDesc, ElementCount VF) const { in isLegalToVectorizeReduction()
1126 return TTIImpl->isLegalToVectorizeReduction(RdxDesc, VF); in isLegalToVectorizeReduction()
1133 unsigned TargetTransformInfo::getLoadVectorFactor(unsigned VF, in getLoadVectorFactor() argument
1137 return TTIImpl->getLoadVectorFactor(VF, LoadSize, ChainSizeInBytes, VecTy); in getLoadVectorFactor()
[all …]
/openbsd-src/gnu/llvm/llvm/include/llvm/Analysis/
H A DVectorUtils.h83 ElementCount VF; // Vectorization factor. member
87 return std::tie(VF, Parameters) == std::tie(Other.VF, Other.Parameters);
188 unsigned numArgs, ElementCount VF);
306 inline Type *ToVectorTy(Type *Scalar, unsigned VF) { in ToVectorTy() argument
307 return ToVectorTy(Scalar, ElementCount::getFixed(VF)); in ToVectorTy()
508 Constant *createBitMaskForGaps(IRBuilderBase &Builder, unsigned VF,
524 unsigned VF);
537 llvm::SmallVector<int, 16> createInterleaveMask(unsigned VF, unsigned NumVecs);
552 unsigned VF);
H A DTargetLibraryInfo.h163 bool isFunctionVectorizable(StringRef F, const ElementCount &VF) const { in isFunctionVectorizable() argument
164 return !getVectorizedFunction(F, VF).empty(); in isFunctionVectorizable()
173 StringRef getVectorizedFunction(StringRef F, const ElementCount &VF) const;
343 bool isFunctionVectorizable(StringRef F, const ElementCount &VF) const { in isFunctionVectorizable() argument
344 return Impl->isFunctionVectorizable(F, VF); in isFunctionVectorizable()
349 StringRef getVectorizedFunction(StringRef F, const ElementCount &VF) const { in getVectorizedFunction() argument
350 return Impl->getVectorizedFunction(F, VF); in getVectorizedFunction()
H A DTargetTransformInfo.h1012 unsigned getStoreMinimumVF(unsigned VF, Type *ScalarMemTy,
1080 unsigned getMaxInterleaveFactor(unsigned VF) const;
1219 int VF,
1444 ElementCount VF) const;
1451 unsigned getLoadVectorFactor(unsigned VF, unsigned LoadSize,
1457 unsigned getStoreVectorFactor(unsigned VF, unsigned StoreSize,
1733 virtual unsigned getStoreMinimumVF(unsigned VF, Type *ScalarMemTy,
1769 virtual unsigned getMaxInterleaveFactor(unsigned VF) = 0;
1804 getReplicationShuffleCost(Type *EltTy, int ReplicationFactor, int VF,
1888 ElementCount VF) const = 0;
[all …]
H A DTargetTransformInfoImpl.h452 unsigned getStoreMinimumVF(unsigned VF, Type *, Type *) const { return VF; } in getStoreMinimumVF() argument
494 unsigned getMaxInterleaveFactor(unsigned VF) const { return 1; } in getMaxInterleaveFactor() argument
604 unsigned getReplicationShuffleCost(Type *EltTy, int ReplicationFactor, int VF, in getReplicationShuffleCost() argument
811 ElementCount VF) const { in isLegalToVectorizeReduction() argument
817 unsigned getLoadVectorFactor(unsigned VF, unsigned LoadSize, in getLoadVectorFactor() argument
820 return VF; in getLoadVectorFactor()
823 unsigned getStoreVectorFactor(unsigned VF, unsigned StoreSize, in getStoreVectorFactor() argument
826 return VF; in getStoreVectorFactor()
1213 int ReplicationFactor, VF; in getInstructionCost() local
1214 if (Shuffle->isReplicationMask(ReplicationFactor, VF)) { in getInstructionCost()
[all …]
/openbsd-src/gnu/llvm/llvm/lib/Target/AArch64/
H A DAArch64TargetTransformInfo.h140 unsigned getMaxNumElements(ElementCount VF) const { in getMaxNumElements() argument
141 if (!VF.isScalable()) in getMaxNumElements()
142 return VF.getFixedValue(); in getMaxNumElements()
144 return VF.getKnownMinValue() * ST->getVScaleForTuning(); in getMaxNumElements()
147 unsigned getMaxInterleaveFactor(unsigned VF);
367 ElementCount VF) const;
/openbsd-src/gnu/llvm/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()
/openbsd-src/gnu/llvm/llvm/lib/Target/RISCV/
H A DRISCVTargetTransformInfo.h256 ElementCount VF) const { in isLegalToVectorizeReduction() argument
257 if (!VF.isScalable()) in isLegalToVectorizeReduction()
285 unsigned getMaxInterleaveFactor(unsigned VF) { in getMaxInterleaveFactor() argument
288 return VF == 1 ? 1 : ST->getMaxInterleaveFactor(); in getMaxInterleaveFactor()
/openbsd-src/gnu/llvm/llvm/lib/Target/AMDGPU/
H A DR600TargetTransformInfo.cpp85 unsigned R600TTIImpl::getMaxInterleaveFactor(unsigned VF) { in getMaxInterleaveFactor() argument
88 if (VF == 1) in getMaxInterleaveFactor()
H A DAMDGPUTargetTransformInfo.h122 unsigned getLoadVectorFactor(unsigned VF, unsigned LoadSize,
125 unsigned getStoreVectorFactor(unsigned VF, unsigned StoreSize,
146 unsigned getMaxInterleaveFactor(unsigned VF);
/openbsd-src/gnu/llvm/llvm/lib/Target/PowerPC/MCTargetDesc/
H A DPPCMCTargetDesc.h187 static const MCPhysReg VFRegs[32] = PPC_REGS0_31(PPC::VF); \
196 PPC_REGS_LO_HI(PPC::F, PPC::VF); \
198 PPC_REGS_LO_HI(PPC::F, PPC::VF); \

1234