| /freebsd/contrib/llvm-project/llvm/lib/Target/RISCV/ |
| H A D | RISCVGatherScatterLowering.cpp | 71 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 D | RISCVInterleavedAccess.cpp | 105 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 D | VectorUtils.h | 448 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 D | DXILResource.h | 258 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 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() 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 D | VectorUtils.cpp | 1172 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 D | LoopAccessAnalysis.cpp | 964 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 D | DXILResource.cpp | 488 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 D | DXContainer.cpp | 278 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 D | DXContainer.h | 54 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 D | Minidump.h | 134 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 D | X86InterleavedAccess.cpp | 286 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 D | X86LowerAMXType.cpp | 378 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 D | X86LowerAMXIntrinsics.cpp | 76 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 D | StraightLineStrengthReduce.cpp | 148 : 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 D | LowerMatrixIntrinsics.cpp | 171 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 D | LoopIdiomRecognize.cpp | 467 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 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/include/llvm/ADT/ |
| H A D | SparseSet.h | 211 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 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/llvm/lib/IR/ |
| H A D | LLVMContextImpl.h | 397 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 D | AggressiveInstCombine.cpp | 906 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 D | AMDGPUAsanInstrumentation.cpp | 285 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 D | MachineRegisterInfo.cpp | 347 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 D | Value.cpp | 62 size_t Stride = AllocSize / Elements; in Release() local 64 (*Dtor)(getPayload() + Idx * Stride); in Release()
|