Home
last modified time | relevance | path

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

1234

/freebsd/contrib/llvm-project/llvm/lib/Target/RISCV/
H A DRISCVGatherScatterLowering.cpp71 bool matchStridedRecurrence(Value *Index, Loop *L, Value *&Stride,
115 Value *Stride = ConstantInt::get(StartVal->getType(), StrideVal); in matchStridedConstant() local
117 return std::make_pair(StartVal, Stride); in matchStridedConstant()
156 Value *Stride; in matchStridedStart() local
157 std::tie(Start, Stride) = matchStridedStart(BO->getOperand(OtherIndex), in matchStridedStart()
178 Stride = Builder.CreateMul(Stride, Splat); in matchStridedStart()
182 Stride = Builder.CreateShl(Stride, Splat); in matchStridedStart()
186 return std::make_pair(Start, Stride); in matchStridedStart()
194 Value *&Stride, in matchStridedRecurrence() argument
219 std::tie(Start, Stride) = matchStridedStart(Start, Builder); in matchStridedRecurrence()
[all …]
H A DRISCVInterleavedAccess.cpp105 Value *Stride = ConstantInt::get(XLenTy, Factor * ScalarSizeInBytes); in lowerInterleavedLoad() local
113 {VTy, BasePtr->getType(), Stride->getType()}, in lowerInterleavedLoad()
114 {BasePtr, Stride, Mask, VL}); in lowerInterleavedLoad()
190 Value *Stride = ConstantInt::get(XLenTy, Factor * ScalarSizeInBytes); in lowerInterleavedStore() local
198 {Data->getType(), BasePtr->getType(), Stride->getType()}, in lowerInterleavedStore()
199 {Data, BasePtr, Stride, Mask, VL}); in lowerInterleavedStore()
/freebsd/contrib/llvm-project/llvm/include/llvm/Analysis/
H A DVectorUtils.h448 createStrideMask(unsigned Start, unsigned Stride, unsigned VF);
531 InterleaveGroup(InstTy *Instr, int32_t Stride, Align Alignment) in InterleaveGroup() argument
533 Factor = std::abs(Stride); in InterleaveGroup()
536 Reverse = Stride < 0; in InterleaveGroup()
762 StrideDescriptor(int64_t Stride, const SCEV *Scev, uint64_t Size, in StrideDescriptor()
764 : Stride(Stride), Scev(Scev), Size(Size), Alignment(Alignment) {} in StrideDescriptor()
767 int64_t Stride = 0; member
787 createInterleaveGroup(Instruction *Instr, int Stride, Align Alignment) { in createInterleaveGroup() argument
790 It->second = new InterleaveGroup<Instruction>(Instr, Stride, Alignment); in createInterleaveGroup()
817 LLVM_ABI static bool isStrided(int Stride);
[all …]
H A DDXILResource.h258 uint32_t Stride; member
266 return std::tie(Stride, AlignLog2) == std::tie(RHS.Stride, RHS.AlignLog2);
270 return std::tie(Stride, AlignLog2) < std::tie(RHS.Stride, RHS.AlignLog2);
/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()
473 bool IndexedReference::isConsecutive(const Loop &L, const SCEV *&Stride, in isConsecutive() argument
499 Stride = SE.getMulExpr(SE.getNoopOrSignExtend(Coeff, WiderType), in isConsecutive()
501 const SCEV *CacheLineSize = SE.getConstant(Stride->getType(), CLS); in isConsecutive()
503 Stride = SE.isKnownNegative(Stride) ? SE.getNegativeSCEV(Stride) : Stride; in isConsecutive()
[all …]
H A DVectorUtils.cpp1172 llvm::createStrideMask(unsigned Start, unsigned Stride, unsigned VF) { in createStrideMask() argument
1175 Mask.push_back(Start + i * Stride); in createStrideMask()
1359 bool InterleavedAccessInfo::isStrided(int Stride) { in isStrided() argument
1360 unsigned Factor = std::abs(Stride); in isStrided()
1397 int64_t Stride = in collectConstStrideAccesses() local
1402 AccessStrideInfo[&I] = StrideDescriptor(Stride, Scev, Size, in collectConstStrideAccesses()
1486 if (isStrided(DesB.Stride) && in analyzeInterleaving()
1492 GroupB = createInterleaveGroup(B, DesB.Stride, DesB.Alignment); in analyzeInterleaving()
1583 if (!isStrided(DesA.Stride) || !isStrided(DesB.Stride)) in analyzeInterleaving()
1599 if (DesA.Stride != DesB.Stride || DesA.Size != DesB.Size) in analyzeInterleaving()
H A DLoopAccessAnalysis.cpp964 std::optional<int64_t> Stride = std::nullopt) { in isNoWrap() argument
981 if (!Stride) in isNoWrap()
982 Stride = getStrideFromAddRec(AR, L, AccessTy, Ptr, PSE); in isNoWrap()
983 if (Stride) { in isNoWrap()
989 (Stride == 1 || Stride == -1)) in isNoWrap()
1590 std::optional<int64_t> Stride = in getPtrStride() local
1592 if (!ShouldCheckWrap || !Stride) in getPtrStride()
1593 return Stride; in getPtrStride()
1595 if (isNoWrap(PSE, AR, Ptr, AccessTy, Lp, Assume, Stride)) in getPtrStride()
1596 return Stride; in getPtrStride()
[all …]
H A DDXILResource.cpp488 uint32_t Stride = DL.getTypeAllocSize(ElTy); in getStruct() local
493 return {Stride, AlignLog2}; in getStruct()
601 OS << " Buffer Stride: " << Struct.Stride << "\n"; in print()
675 Tags.push_back(getIntMD(RTI.getStruct(DL).Stride)); in getAsMetadata()
719 Word1 = RTI.getStruct(DL).Stride; in getAnnotateProps()
/freebsd/contrib/llvm-project/llvm/lib/Object/
H A DDXContainer.cpp278 StaticSamplers.Stride = sizeof(dxbc::RTS0::v1::StaticSampler); in parse()
345 if (Error Err = readInteger(Data, Current, Resources.Stride)) in parse()
349 size_t BindingDataSize = Resources.Stride * ResourceCount; in parse()
358 Resources.Stride = sizeof(v2::ResourceBindInfo); in parse()
399 if (Error Err = readInteger(Data, Current, SigInputElements.Stride)) in parse()
403 SigOutputElements.Stride = SigPatchOrPrimElements.Stride = in parse()
404 SigInputElements.Stride; in parse()
407 (ptrdiff_t)(ElementCount * SigInputElements.Stride)) in parse()
411 size_t InputSize = SigInputElements.Stride * InputCount; in parse()
415 size_t OutputSize = SigOutputElements.Stride * OutputCount; in parse()
[all …]
/freebsd/contrib/llvm-project/llvm/include/llvm/Object/
H A DDXContainer.h54 uint32_t Stride = sizeof(T); // size of each element in the list. member
57 ViewArray(StringRef D, size_t S) : Data(D), Stride(S) {} in ViewArray()
66 uint32_t Stride; // size of each element in the list. member
70 : Data(A.Data), Stride(A.Stride), Current(C) {} in iterator()
81 memcpy(static_cast<void *>(&Val), Current, std::min(Stride, MaxStride()));
89 Current += Stride;
101 Current -= Stride;
119 size_t size() const { return Data.size() / Stride; } in size()
211 Table.NumRanges * Table.Ranges.Stride); in read()
345 uint32_t getResourceStride() const { return Resources.Stride; } in getResourceStride()
[all …]
H A DMinidump.h134 MemoryInfoIterator(ArrayRef<uint8_t> Storage, size_t Stride) in MemoryInfoIterator() argument
135 : Storage(Storage), Stride(Stride) { in MemoryInfoIterator()
136 assert(Storage.size() % Stride == 0); in MemoryInfoIterator()
149 Storage = Storage.drop_front(Stride);
155 size_t Stride; variable
/freebsd/contrib/llvm-project/llvm/lib/Target/X86/
H A DX86InterleavedAccess.cpp286 unsigned VecElems, unsigned Stride, in reorderSubVector() argument
290 for (unsigned i = 0; i < Stride; i++) in reorderSubVector()
298 for (unsigned i = 0; i < (VecElems / 16) * Stride; i += 2) { in reorderSubVector()
299 genShuffleBland(VT, VPShuf, OptimizeShuf, (i / Stride) * 16, in reorderSubVector()
300 (i + 1) / Stride * 16); in reorderSubVector()
302 Vec[i % Stride], Vec[(i + 1) % Stride], OptimizeShuf); in reorderSubVector()
307 std::copy(Temp, Temp + Stride, TransposedMatrix.begin()); in reorderSubVector()
310 for (unsigned i = 0; i < Stride; i++) in reorderSubVector()
433 static void createShuffleStride(MVT VT, int Stride, in createShuffleStride() argument
440 Mask.push_back((i * Stride) % LaneSize + LaneSize * Lane); in createShuffleStride()
H A DX86LowerAMXType.cpp378 Value *Stride = Builder.getInt64(64); in combineLoadBitcast() local
380 std::array<Value *, 4> Args = {Row, Col, I8Ptr, Stride}; in combineLoadBitcast()
405 Value *Stride = Builder.getInt64(64); in combineBitcastStore() local
407 std::array<Value *, 5> Args = {Row, Col, I8Ptr, Stride, Tile}; in combineBitcastStore()
428 Value *I8Ptr, *Stride; in transformBitcast() local
434 Stride = Builder.getInt64(64); in transformBitcast()
456 std::array<Value *, 4> Args = {Row, Col, I8Ptr, Stride}; in transformBitcast()
474 std::array<Value *, 5> Args = {Row, Col, I8Ptr, Stride, Src}; in transformBitcast()
611 Value *Stride = Builder.getInt64(64); in createTileStore() local
612 std::array<Value *, 5> Args = {Row, Col, Ptr, Stride, TileDef}; in createTileStore()
[all …]
H A DX86LowerAMXIntrinsics.cpp76 Value *Ptr, Value *Stride, Value *Tile);
148 Value *Col, Value *Ptr, Value *Stride, Value *Tile) { in createTileLoadStoreLoops() argument
181 Value *CurrentRowZExt = B.CreateZExt(CurrentRow, Stride->getType()); in createTileLoadStoreLoops()
182 Value *CurrentColZExt = B.CreateZExt(CurrentCol, Stride->getType()); in createTileLoadStoreLoops()
184 B.CreateAdd(B.CreateMul(CurrentRowZExt, Stride), CurrentColZExt); in createTileLoadStoreLoops()
512 Value *M, *N, *Ptr, *Stride, *Tile; in lowerTileLoadStore() local
516 m_Value(M), m_Value(N), m_Value(Ptr), m_Value(Stride))); in lowerTileLoadStore()
520 m_Value(Stride), m_Value(Tile))); in lowerTileLoadStore()
526 Value *StrideDWord = PreBuilder.CreateLShr(Stride, PreBuilder.getInt64(2)); in lowerTileLoadStore()
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Scalar/
H A DStraightLineStrengthReduce.cpp148 : CandidateKind(CT), Base(B), Index(Idx), Stride(S), Ins(I) {} in Candidate()
159 Value *Stride = nullptr; member
281 Basis.Base == C.Base && Basis.Stride == C.Stride && in isBasisFor()
293 static bool isAddFoldable(const SCEV *Base, ConstantInt *Index, Value *Stride, in isAddFoldable() argument
305 return isAddFoldable(C.Base, C.Index, C.Stride, TTI); in isFoldable()
590 return C.Stride; in emitBump()
593 return Builder.CreateNeg(C.Stride); in emitBump()
599 Value *ExtendedStride = Builder.CreateSExtOrTrunc(C.Stride, DeltaType); in emitBump()
621 C.Stride == Basis.Stride); in rewriteCandidateWithBasis()
H A DLowerMatrixIntrinsics.cpp171 Value *computeVectorAddr(Value *BasePtr, Value *VecIdx, Value *Stride, in computeVectorAddr() argument
175 assert((!isa<ConstantInt>(Stride) || in computeVectorAddr()
176 cast<ConstantInt>(Stride)->getZExtValue() >= NumElements) && in computeVectorAddr()
180 Value *VecStart = Builder.CreateMul(VecIdx, Stride, "vec.start"); in computeVectorAddr()
1283 Align getAlignForIndex(unsigned Idx, Value *Stride, Type *ElementTy, in getAlignForIndex() argument
1290 if (auto *ConstStride = dyn_cast<ConstantInt>(Stride)) { in getAlignForIndex()
1300 MatrixTy loadMatrix(Type *Ty, Value *Ptr, MaybeAlign MAlign, Value *Stride, in loadMatrix() argument
1309 EltPtr, Builder.getIntN(Stride->getType()->getScalarSizeInBits(), I), in loadMatrix()
1310 Stride, Shape.getStride(), EltTy, Builder); in loadMatrix()
1312 VecTy, GEP, getAlignForIndex(I, Stride, EltTy, MAlign), in loadMatrix()
[all …]
H A DLoopIdiomRecognize.cpp467 const SCEVConstant *Stride; in isLegalStore() local
468 if (!match(StoreEv, m_scev_AffineAddRec(m_SCEV(), m_SCEVConstant(Stride), in isLegalStore()
506 APInt StrideAP = Stride->getAPInt(); in isLegalStore()
526 if (!match(LoadEv, m_scev_AffineAddRec(m_SCEV(), m_scev_Specific(Stride), in isLegalStore()
732 APInt Stride = getStoreStride(StoreEv); in processLoopStores() local
736 if (StoreSize != Stride && StoreSize != -Stride) in processLoopStores()
739 bool IsNegStride = StoreSize == -Stride; in processLoopStores()
879 const APInt *Stride; in processLoopMemSet() local
880 if (!match(PointerStrideSCEV, m_scev_APInt(Stride))) in processLoopMemSet()
883 if (SizeInBytes != *Stride && SizeInBytes != -*Stride) in processLoopMemSet()
[all …]
/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/include/llvm/ADT/
H A DSparseSet.h211 const unsigned Stride = std::numeric_limits<SparseT>::max() + 1u;
212 for (unsigned i = Sparse[Idx], e = size(); i < e; i += Stride) {
218 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/llvm/lib/IR/
H A DLLVMContextImpl.h397 Metadata *Stride;
400 Metadata *Stride)
402 Stride(Stride) {}
405 UpperBound(N->getRawUpperBound()), Stride(N->getRawStride()) {}
426 BoundsEqual(Stride, RHS->getRawStride());
433 LowerBound, UpperBound, Stride);
434 return hash_combine(CountNode, LowerBound, UpperBound, Stride);
442 Metadata *Stride;
445 Metadata *Stride)
447 Stride(Stride) {}
[all …]
/freebsd/contrib/llvm-project/llvm/lib/Transforms/AggressiveInstCombine/
H A DAggressiveInstCombine.cpp906 std::optional<APInt> Stride; in getStrideAndModOffsetOfGEP() local
920 if (!Stride) in getStrideAndModOffsetOfGEP()
921 Stride = Scale; in getStrideAndModOffsetOfGEP()
923 Stride = APIntOps::GreatestCommonDivisor(*Stride, Scale); in getStrideAndModOffsetOfGEP()
931 if (!isa<GlobalVariable>(PtrOp) || !Stride) in getStrideAndModOffsetOfGEP()
936 ModOffset = ModOffset.srem(*Stride); in getStrideAndModOffsetOfGEP()
938 ModOffset += *Stride; in getStrideAndModOffsetOfGEP()
940 return {*Stride, ModOffset}; in getStrideAndModOffsetOfGEP()
965 auto [Stride, ConstOffset] = getStrideAndModOffsetOfGEP(PtrOp, DL); in foldPatternedLoads()
971 LA <= GV->getAlign().valueOrOne() && Stride.getZExtValue() < LA.value()) { in foldPatternedLoads()
[all …]
/freebsd/contrib/llvm-project/llvm/lib/Target/AMDGPU/
H A DAMDGPUAsanInstrumentation.cpp285 Value *Stride = nullptr; in getInterestingMemoryOperands() local
288 Stride = VPI->getOperand(PtrOpNo + 1); in getInterestingMemoryOperands()
293 if (!isa<ConstantInt>(Stride) || in getInterestingMemoryOperands()
294 cast<ConstantInt>(Stride)->getZExtValue() % PointerAlign != 0) in getInterestingMemoryOperands()
299 Stride); in getInterestingMemoryOperands()
/freebsd/contrib/llvm-project/llvm/lib/CodeGen/
H A DMachineRegisterInfo.cpp347 int Stride = 1; in moveOperands() local
349 Stride = -1; in moveOperands()
378 Dst += Stride; in moveOperands()
379 Src += Stride; in moveOperands()
/freebsd/contrib/llvm-project/clang/lib/Interpreter/
H A DValue.cpp62 size_t Stride = AllocSize / Elements; in Release() local
64 (*Dtor)(getPayload() + Idx * Stride); in Release()

1234