/freebsd/contrib/llvm-project/llvm/lib/Target/RISCV/ |
H A D | RISCVGatherScatterLowering.cpp | 73 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 D | VectorUtils.h | 393 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 D | DXContainer.h | 48 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 D | Minidump.h | 111 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 D | LoopCacheAnalysis.cpp | 291 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 D | VectorUtils.cpp | 931 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 D | LoopAccessAnalysis.cpp | 840 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 D | DXContainer.cpp | 290 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 D | X86LowerAMXType.cpp | 253 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 D | X86InterleavedAccess.cpp | 289 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 D | X86LowerAMXIntrinsics.cpp | 78 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 D | StraightLineStrengthReduce.cpp | 144 : 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 D | LowerMatrixIntrinsics.cpp | 175 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 D | LoopIdiomRecognize.cpp | 479 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 D | DXILResource.h | 45 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 D | MatrixBuilder.h | 67 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 D | DXILResource.cpp | 87 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 D | SparseSet.h | 207 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 D | SparseMultiSet.h | 356 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 D | Sparc.cpp | 298 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 D | AggressiveInstCombine.cpp | 844 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 D | LLVMContextImpl.h | 368 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 D | MachineRegisterInfo.cpp | 350 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 D | Value.cpp | 65 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 D | LoopVectorizationLegality.cpp | 467 int Stride = getPtrStride(PSE, AccessTy, Ptr, TheLoop, Strides, in isConsecutivePtr() local 469 if (Stride == 1 || Stride == -1) in isConsecutivePtr() 470 return Stride; in isConsecutivePtr()
|