Home
last modified time | relevance | path

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

1234

/freebsd/contrib/llvm-project/llvm/lib/Target/RISCV/
H A DRISCVGatherScatterLowering.cpp73 bool matchStridedRecurrence(Value *Index, Loop *L, Value *&Stride,
117 Value *Stride = ConstantInt::get(StartVal->getType(), StrideVal); in matchStridedConstant() local
119 return std::make_pair(StartVal, Stride); in matchStridedConstant()
158 Value *Stride; in matchStridedStart() local
159 std::tie(Start, Stride) = matchStridedStart(BO->getOperand(OtherIndex), in matchStridedStart()
180 Stride = Builder.CreateMul(Stride, Splat); in matchStridedStart()
184 Stride = Builder.CreateShl(Stride, Splat); in matchStridedStart()
188 return std::make_pair(Start, Stride); in matchStridedStart()
196 Value *&Stride, in matchStridedRecurrence() argument
225 std::tie(Start, Stride) = matchStridedStart(Start, Builder); in matchStridedRecurrence()
[all …]
/freebsd/contrib/llvm-project/llvm/include/llvm/Analysis/
H A DVectorUtils.h393 llvm::SmallVector<int, 16> createStrideMask(unsigned Start, unsigned Stride,
476 InterleaveGroup(InstTy *Instr, int32_t Stride, Align Alignment) in InterleaveGroup() argument
478 Factor = std::abs(Stride); in InterleaveGroup()
481 Reverse = Stride < 0; in InterleaveGroup()
707 StrideDescriptor(int64_t Stride, const SCEV *Scev, uint64_t Size, in StrideDescriptor()
709 : Stride(Stride), Scev(Scev), Size(Size), Alignment(Alignment) {} in StrideDescriptor()
712 int64_t Stride = 0; member
732 createInterleaveGroup(Instruction *Instr, int Stride, Align Alignment) { in createInterleaveGroup() argument
736 new InterleaveGroup<Instruction>(Instr, Stride, Alignment); in createInterleaveGroup()
763 static bool isStrided(int Stride);
[all …]
/freebsd/contrib/llvm-project/llvm/include/llvm/Object/
H A DDXContainer.h48 uint32_t Stride = sizeof(T); // size of each element in the list. member
51 ViewArray(StringRef D, size_t S) : Data(D), Stride(S) {} in ViewArray()
60 uint32_t Stride; // size of each element in the list. member
64 : Data(A.Data), Stride(A.Stride), Current(C) {} in iterator()
75 memcpy(static_cast<void *>(&Val), Current, std::min(Stride, MaxStride()));
83 Current += Stride;
95 Current -= Stride;
113 size_t size() const { return Data.size() / Stride; } in size()
162 uint32_t getResourceStride() const { return Resources.Stride; } in getResourceStride()
217 uint32_t getSigElementStride() const { return SigInputElements.Stride; } in getSigElementStride()
H A DMinidump.h111 MemoryInfoIterator(ArrayRef<uint8_t> Storage, size_t Stride) in MemoryInfoIterator() argument
112 : Storage(Storage), Stride(Stride) { in MemoryInfoIterator()
113 assert(Storage.size() % Stride == 0); in MemoryInfoIterator()
126 Storage = Storage.drop_front(Stride);
132 size_t Stride; variable
/freebsd/contrib/llvm-project/llvm/lib/Analysis/
H A DLoopCacheAnalysis.cpp291 const SCEV *Stride = nullptr; in computeRefCost() local
292 if (isConsecutive(L, Stride, CLS)) { in computeRefCost()
295 assert(Stride != nullptr && in computeRefCost()
297 Type *WiderType = SE.getWiderType(Stride->getType(), TripCount->getType()); in computeRefCost()
299 Stride = SE.getNoopOrAnyExtend(Stride, WiderType); in computeRefCost()
301 const SCEV *Numerator = SE.getMulExpr(Stride, TripCount); in computeRefCost()
467 bool IndexedReference::isConsecutive(const Loop &L, const SCEV *&Stride, in isConsecutive() argument
493 Stride = SE.getMulExpr(SE.getNoopOrSignExtend(Coeff, WiderType), in isConsecutive()
495 const SCEV *CacheLineSize = SE.getConstant(Stride->getType(), CLS); in isConsecutive()
497 Stride = SE.isKnownNegative(Stride) ? SE.getNegativeSCEV(Stride) : Stride; in isConsecutive()
[all …]
H A DVectorUtils.cpp931 llvm::createStrideMask(unsigned Start, unsigned Stride, unsigned VF) { in createStrideMask() argument
934 Mask.push_back(Start + i * Stride); in createStrideMask()
1118 bool InterleavedAccessInfo::isStrided(int Stride) { in isStrided() argument
1119 unsigned Factor = std::abs(Stride); in isStrided()
1156 int64_t Stride = in collectConstStrideAccesses() local
1161 AccessStrideInfo[&I] = StrideDescriptor(Stride, Scev, Size, in collectConstStrideAccesses()
1245 if (isStrided(DesB.Stride) && in analyzeInterleaving()
1251 GroupB = createInterleaveGroup(B, DesB.Stride, DesB.Alignment); in analyzeInterleaving()
1342 if (!isStrided(DesA.Stride) || !isStrided(DesB.Stride)) in analyzeInterleaving()
1358 if (DesA.Stride != DesB.Stride || DesA.Size != DesB.Size) in analyzeInterleaving()
H A DLoopAccessAnalysis.cpp840 int64_t Stride = getPtrStride(PSE, AccessTy, Ptr, L, Strides).value_or(0); in isNoWrap() local
841 if (Stride == 1 || PSE.hasNoOverflow(Ptr, SCEVWrapPredicate::IncrementNUSW)) in isNoWrap()
1514 int64_t Stride = StepVal / Size; in getPtrStride() local
1520 return Stride; in getPtrStride()
1525 return Stride; in getPtrStride()
1532 GEP && GEP->isInBounds() && (Stride == 1 || Stride == -1)) in getPtrStride()
1533 return Stride; in getPtrStride()
1540 (Stride == 1 || Stride == -1)) in getPtrStride()
1541 return Stride; in getPtrStride()
1549 return Stride; in getPtrStride()
[all …]
/freebsd/contrib/llvm-project/llvm/lib/Object/
H A DDXContainer.cpp290 if (Error Err = readInteger(Data, Current, Resources.Stride)) in parse()
294 size_t BindingDataSize = Resources.Stride * ResourceCount; in parse()
303 Resources.Stride = sizeof(v2::ResourceBindInfo); in parse()
344 if (Error Err = readInteger(Data, Current, SigInputElements.Stride)) in parse()
348 SigOutputElements.Stride = SigPatchOrPrimElements.Stride = in parse()
349 SigInputElements.Stride; in parse()
352 (ptrdiff_t)(ElementCount * SigInputElements.Stride)) in parse()
356 size_t InputSize = SigInputElements.Stride * InputCount; in parse()
360 size_t OutputSize = SigOutputElements.Stride * OutputCount; in parse()
364 size_t PSize = SigPatchOrPrimElements.Stride * PatchOrPrimCount; in parse()
/freebsd/contrib/llvm-project/llvm/lib/Target/X86/
H A DX86LowerAMXType.cpp253 Value *Stride = Builder.getInt64(64); in combineLoadBitcast() local
255 std::array<Value *, 4> Args = {Row, Col, I8Ptr, Stride}; in combineLoadBitcast()
280 Value *Stride = Builder.getInt64(64); in combineBitcastStore() local
282 std::array<Value *, 5> Args = {Row, Col, I8Ptr, Stride, Tile}; in combineBitcastStore()
304 Value *I8Ptr, *Stride; in transformBitcast() local
310 Stride = Builder.getInt64(64); in transformBitcast()
332 std::array<Value *, 4> Args = {Row, Col, I8Ptr, Stride}; in transformBitcast()
350 std::array<Value *, 5> Args = {Row, Col, I8Ptr, Stride, Src}; in transformBitcast()
480 Value *Stride = Builder.getInt64(64); in createTileStore() local
481 std::array<Value *, 5> Args = {Row, Col, Ptr, Stride, TileDef}; in createTileStore()
[all …]
H A DX86InterleavedAccess.cpp289 unsigned VecElems, unsigned Stride, in reorderSubVector() argument
293 for (unsigned i = 0; i < Stride; i++) in reorderSubVector()
301 for (unsigned i = 0; i < (VecElems / 16) * Stride; i += 2) { in reorderSubVector()
302 genShuffleBland(VT, VPShuf, OptimizeShuf, (i / Stride) * 16, in reorderSubVector()
303 (i + 1) / Stride * 16); in reorderSubVector()
305 Vec[i % Stride], Vec[(i + 1) % Stride], OptimizeShuf); in reorderSubVector()
310 std::copy(Temp, Temp + Stride, TransposedMatrix.begin()); in reorderSubVector()
313 for (unsigned i = 0; i < Stride; i++) in reorderSubVector()
436 static void createShuffleStride(MVT VT, int Stride, in createShuffleStride() argument
443 Mask.push_back((i * Stride) % LaneSize + LaneSize * Lane); in createShuffleStride()
H A DX86LowerAMXIntrinsics.cpp78 Value *Ptr, Value *Stride, Value *Tile);
150 Value *Col, Value *Ptr, Value *Stride, Value *Tile) { in createTileLoadStoreLoops() argument
183 Value *CurrentRowZExt = B.CreateZExt(CurrentRow, Stride->getType()); in createTileLoadStoreLoops()
184 Value *CurrentColZExt = B.CreateZExt(CurrentCol, Stride->getType()); in createTileLoadStoreLoops()
186 B.CreateAdd(B.CreateMul(CurrentRowZExt, Stride), CurrentColZExt); in createTileLoadStoreLoops()
514 Value *M, *N, *Ptr, *Stride, *Tile; in lowerTileLoadStore() local
518 m_Value(M), m_Value(N), m_Value(Ptr), m_Value(Stride))); in lowerTileLoadStore()
522 m_Value(Stride), m_Value(Tile))); in lowerTileLoadStore()
528 Value *StrideDWord = PreBuilder.CreateLShr(Stride, PreBuilder.getInt64(2)); in lowerTileLoadStore()
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Scalar/
H A DStraightLineStrengthReduce.cpp144 : CandidateKind(CT), Base(B), Index(Idx), Stride(S), Ins(I) {} in Candidate()
155 Value *Stride = nullptr; member
277 Basis.Base == C.Base && Basis.Stride == C.Stride && in isBasisFor()
289 static bool isAddFoldable(const SCEV *Base, ConstantInt *Index, Value *Stride, in isAddFoldable() argument
301 return isAddFoldable(C.Base, C.Index, C.Stride, TTI); in isFoldable()
586 return C.Stride; in emitBump()
589 return Builder.CreateNeg(C.Stride); in emitBump()
595 Value *ExtendedStride = Builder.CreateSExtOrTrunc(C.Stride, DeltaType); in emitBump()
614 C.Stride == Basis.Stride); in rewriteCandidateWithBasis()
H A DLowerMatrixIntrinsics.cpp175 Value *computeVectorAddr(Value *BasePtr, Value *VecIdx, Value *Stride, in computeVectorAddr() argument
179 assert((!isa<ConstantInt>(Stride) || in computeVectorAddr()
180 cast<ConstantInt>(Stride)->getZExtValue() >= NumElements) && in computeVectorAddr()
184 Value *VecStart = Builder.CreateMul(VecIdx, Stride, "vec.start"); in computeVectorAddr()
1107 Align getAlignForIndex(unsigned Idx, Value *Stride, Type *ElementTy, in getAlignForIndex() argument
1114 if (auto *ConstStride = dyn_cast<ConstantInt>(Stride)) { in getAlignForIndex()
1124 MatrixTy loadMatrix(Type *Ty, Value *Ptr, MaybeAlign MAlign, Value *Stride, in loadMatrix() argument
1133 EltPtr, Builder.getIntN(Stride->getType()->getScalarSizeInBits(), I), in loadMatrix()
1134 Stride, Shape.getStride(), EltTy, Builder); in loadMatrix()
1136 VecTy, GEP, getAlignForIndex(I, Stride, EltTy, MAlign), in loadMatrix()
[all …]
H A DLoopIdiomRecognize.cpp479 APInt Stride = getStoreStride(StoreEv); in isLegalStore() local
481 if (StoreSize != Stride && StoreSize != -Stride) in isLegalStore()
708 APInt Stride = getStoreStride(StoreEv); in processLoopStores() local
712 if (StoreSize != Stride && StoreSize != -Stride) in processLoopStores()
715 bool IsNegStride = StoreSize == -Stride; in processLoopStores()
868 APInt Stride = ConstStride->getAPInt(); in processLoopMemSet() local
869 if (SizeInBytes != Stride && SizeInBytes != -Stride) in processLoopMemSet()
872 IsNegStride = SizeInBytes == -Stride; in processLoopMemSet()
1269 APInt Stride = getStoreStride(StoreEv); in processLoopStoreOfLoopLoad() local
1276 bool IsNegStride = StoreSize == -Stride; in processLoopStoreOfLoopLoad()
/freebsd/contrib/llvm-project/llvm/include/llvm/Transforms/Utils/
H A DDXILResource.h45 uint32_t Stride; member
49 return std::tie(Stride, Alignment) == std::tie(RHS.Stride, RHS.Alignment);
129 uint32_t UniqueID, uint32_t Stride,
150 uint32_t UniqueID, uint32_t Stride,
/freebsd/contrib/llvm-project/llvm/include/llvm/IR/
H A DMatrixBuilder.h67 Value *Stride, bool IsVolatile, unsigned Rows,
71 Value *Ops[] = {DataPtr, Stride, B.getInt1(IsVolatile), B.getInt32(Rows),
73 Type *OverloadedTypes[] = {RetType, Stride->getType()};
90 Value *Stride, bool IsVolatile,
94 Stride, B.getInt1(IsVolatile),
96 Type *OverloadedTypes[] = {Matrix->getType(), Stride->getType()};
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Utils/
H A DDXILResource.cpp87 uint32_t UniqueID, uint32_t Stride, in StructuredBuffer() argument
91 RI.Struct.Stride = Stride; in StructuredBuffer()
151 uint32_t Stride, Align Alignment, in RWStructuredBuffer() argument
156 RI.Struct.Stride = Stride; in RWStructuredBuffer()
313 Tags.push_back(getIntMD(Struct.Stride)); in getAsMetadata()
352 Word1 = Struct.Stride; in getAnnotateProps()
/freebsd/contrib/llvm-project/llvm/include/llvm/ADT/
H A DSparseSet.h207 const unsigned Stride = std::numeric_limits<SparseT>::max() + 1u;
208 for (unsigned i = Sparse[Idx], e = size(); i < e; i += Stride) {
213 // Stride is 0 when SparseT >= unsigned. We don't need to loop.
214 if (!Stride)
H A DSparseMultiSet.h356 const unsigned Stride = std::numeric_limits<SparseT>::max() + 1u; in findIndex() local
357 for (unsigned i = Sparse[Idx], e = Dense.size(); i < e; i += Stride) { in findIndex()
364 if (!Stride) in findIndex()
/freebsd/contrib/llvm-project/clang/lib/CodeGen/Targets/
H A DSparc.cpp298 CharUnits Stride; in EmitVAArg() local
306 Stride = SlotSize; in EmitVAArg()
314 Stride = CharUnits::fromQuantity(AllocSize).alignTo(SlotSize); in EmitVAArg()
321 Stride = SlotSize; in EmitVAArg()
332 Address NextPtr = Builder.CreateConstInBoundsByteGEP(Addr, Stride, "ap.next"); in EmitVAArg()
/freebsd/contrib/llvm-project/llvm/lib/Transforms/AggressiveInstCombine/
H A DAggressiveInstCombine.cpp844 std::optional<APInt> Stride; in getStrideAndModOffsetOfGEP() local
858 if (!Stride) in getStrideAndModOffsetOfGEP()
859 Stride = Scale; in getStrideAndModOffsetOfGEP()
861 Stride = APIntOps::GreatestCommonDivisor(*Stride, Scale); in getStrideAndModOffsetOfGEP()
869 if (!isa<GlobalVariable>(PtrOp) || !Stride) in getStrideAndModOffsetOfGEP()
874 ModOffset = ModOffset.srem(*Stride); in getStrideAndModOffsetOfGEP()
876 ModOffset += *Stride; in getStrideAndModOffsetOfGEP()
878 return {*Stride, ModOffset}; in getStrideAndModOffsetOfGEP()
903 auto [Stride, ConstOffset] = getStrideAndModOffsetOfGEP(PtrOp, DL); in foldPatternedLoads()
909 LA <= GV->getAlign().valueOrOne() && Stride.getZExtValue() < LA.value()) { in foldPatternedLoads()
[all …]
/freebsd/contrib/llvm-project/llvm/lib/IR/
H A DLLVMContextImpl.h368 Metadata *Stride;
371 Metadata *Stride)
373 Stride(Stride) {}
376 UpperBound(N->getRawUpperBound()), Stride(N->getRawStride()) {}
397 BoundsEqual(Stride, RHS->getRawStride());
404 LowerBound, UpperBound, Stride);
405 return hash_combine(CountNode, LowerBound, UpperBound, Stride);
413 Metadata *Stride;
416 Metadata *Stride)
418 Stride(Stride) {}
[all …]
/freebsd/contrib/llvm-project/llvm/lib/CodeGen/
H A DMachineRegisterInfo.cpp350 int Stride = 1; in moveOperands() local
352 Stride = -1; in moveOperands()
381 Dst += Stride; in moveOperands()
382 Src += Stride; in moveOperands()
/freebsd/contrib/llvm-project/clang/lib/Interpreter/
H A DValue.cpp65 size_t Stride = AllocSize / Elements; in Release() local
67 (*Dtor)(getPayload() + Idx * Stride); in Release()
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Vectorize/
H A DLoopVectorizationLegality.cpp467 int Stride = getPtrStride(PSE, AccessTy, Ptr, TheLoop, Strides, in isConsecutivePtr() local
469 if (Stride == 1 || Stride == -1) in isConsecutivePtr()
470 return Stride; in isConsecutivePtr()

1234