Lines Matching defs:extractPosition
1419 /// This helper class keeps an updated extraction position `extractPosition`
1422 /// As we iterate, extractPosition is permuted and updated.
1458 return (sentinels == ArrayRef(extractPosition).drop_front(extractedRank));
1471 // Case 2: the insert position matches extractPosition exactly, early return.
1474 /// Case 3: if the insert position is a prefix of extractPosition, extract a
1479 /// // extractPosition == [1, 2, 3]
1489 /// Try to fold in place to extract(source, extractPosition) and return the
1503 /// `extractPosition`.
1504 /// In the end, the tail of `extractPosition` must be exactly `sentinels` to
1510 SmallVector<int64_t> extractPosition;
1522 extractPosition.assign(extractOp.getStaticPosition().begin(),
1524 llvm::append_range(extractPosition, sentinels);
1538 extractPosition = applyPermutationMap(m, ArrayRef(extractPosition));
1542 // Case 2: the insert position matches extractPosition exactly, early return.
1551 if (insertedPos != llvm::ArrayRef(extractPosition).take_front(extractedRank))
1559 /// Case 3: if inserted position is a prefix of extractPosition,
1569 if (!isContainedWithin(insertedPos, extractPosition))
1572 std::fill_n(extractPosition.begin(), insertedPos.size(), 0);
1574 extractPosition.erase(extractPosition.begin(),
1575 extractPosition.begin() + insertedPos.size());
1576 extractedRank = extractPosition.size() - sentinels.size();
1583 /// Try to fold in place to extract(source, extractPosition) and return the
1600 ArrayRef(extractPosition).take_front(extractedRank));
1627 // Case 3: if the inserted position is a prefix of extractPosition, we can
1635 if (isContainedWithin(extractPosition, insertedPos) ||
1636 intersectsWhereNonNegative(extractPosition, insertedPos))