Lines Matching refs:Index
81 MaySplitLoadIndex("combiner-split-load-index", cl::Hidden, cl::init(true),
200 /// \param EltNo index of the vector element to load.
557 // become dead allowing further simplification (e.g. split index
5448 SDValue Index = MGT->getIndex();
5450 std::tie(IndexLo, IndexHi) = DAG.SplitVector(Index, DL);
7069 int Index = isLE ? (Elt*SizeRatio) : (Elt*SizeRatio + (SizeRatio-1));
7077 DAG.getConstant(Index, DL, IndexTy));
9597 // 1) The new base ptr is a frame index.
9604 // Check #1. Preinc'ing a frame index would require copying the stack pointer
9953 SDValue Index;
9955 Index = SplitIndexingFromLoad(LD);
9960 Index = DAG.getUNDEF(N->getValueType(1));
9968 DAG.ReplaceAllUsesOfValueWith(SDValue(N, 1), Index);
10918 /// Helper struct to parse and store a memory address as base + index + offset.
10921 /// to store whether there was a sign extension involved in the index
10924 /// (i64 signextend (add (i8 load %index)
10929 /// (i64 signextend (i32 add (i32 signextend (i8 load %index))
10933 SDValue Index;
10939 BaseIndexOffset(SDValue Base, SDValue Index, int64_t Offset,
10941 Base(Base), Index(Index), Offset(Offset), IsIndexSignExt(IsIndexSignExt) {}
10944 return Other.Base == Base && Other.Index == Index &&
10948 /// Parses tree in Ptr for base, index, offset addresses.
10952 // We only can pattern match BASE + INDEX + OFFSET. If Ptr is not an ADD
10974 // Look at Base + Index + Offset cases.
10984 // Either the case of Base + Index (no offset) or something else.
10988 // Now we have the case of Base + Index + offset.
10989 SDValue Index = IndexOffset->getOperand(0);
10996 if (Index->getOpcode() == ISD::SIGN_EXTEND) {
10997 Index = Index->getOperand(0);
11002 return BaseIndexOffset(Base, Index, Off, IsIndexSignExt);
11222 // This holds the base pointer, index, and the offset in bytes from the base
11239 StoreSDNode *Index = St;
11272 while (Index) {
11274 if (Index != St && !SDValue(Index, 0)->hasOneUse())
11278 BaseIndexOffset Ptr = BaseIndexOffset::match(Index->getBasePtr());
11285 if (Index->isVolatile() || Index->isIndexed())
11289 Index))
11294 if (Index->getMemoryVT() != MemVT)
11301 if (Index->getAlignment() < MemVT.getStoreSize())
11305 StoreNodes.push_back(MemOpLink(Index, Ptr.Offset, Seq++));
11311 SDNode *NextInChain = Index->getChain().getNode();
11315 Index = STn;
11319 Index = nullptr;
11328 Index = nullptr;
11596 // load memory address. These variables hold the index in the store node
11599 // This variable refers to the size and not index in the array.
11658 // the NumElem refers to array/index size.
12201 // Find the new index to extract from.
12204 // Extracting an undef index is undef.
12264 SDValue Index = N->getOperand(1);
12266 return ReplaceExtractVectorEltOfLoadWithNarrowedLoad(N, VT, Index,
12428 unsigned Index = isLE ? (i * ElemRatio) :
12431 assert(Index < Ops.size() && "Invalid index");
12432 Ops[Index] = In;
12563 // constant index, bail out.
12606 // If extracting from the first vector, just use the index directly.
12785 // What vector are we extracting the subvector from and at what index?
12789 // extraction index.
12811 // Scale the subvector index to account for any bitcast.
12980 // The extract index must be constant.
12984 // Check that we are reading from the identity index.
13496 // This shuffle index refers to the inner shuffle N0. Lookup the inner
13508 // This shuffle index references an element within N1.
13518 // Canonicalize the shuffle index. We don't know yet if CurrentVec
14429 /// Return true if base is a frame index, which is known not to alias with
14500 // To catch this case, look up the actual index of frame indices to compute
14723 // This holds the base pointer, index, and the offset in bytes from the base
14741 StoreSDNode *Index = St;
14742 while (Index) {
14744 if (Index != St && !SDValue(Index, 0)->hasOneUse())
14747 if (Index->isVolatile() || Index->isIndexed())
14751 BaseIndexOffset Ptr = BaseIndexOffset::match(Index->getBasePtr());
14761 SDNode *NextInChain = Index->getChain().getNode();
14766 Index = nullptr;
14770 Index = STn;
14776 Index = nullptr;