@@ -1548,10 +1548,9 @@ static Value getCollapsedOpOperand(Location loc, LinalgOp op,
15481548
15491549// / Modify the `linalg.index` operations in the original generic op, to its
15501550// / value in the collapsed operation.
1551- void generateCollapsedIndexingRegion (Location loc, Block *block,
1552- const CollapsingInfo &collapsingInfo,
1553- ArrayRef<OpFoldResult> loopRange,
1554- RewriterBase &rewriter) {
1551+ static void generateCollapsedIndexingRegion (
1552+ Location loc, Block *block, const CollapsingInfo &collapsingInfo,
1553+ ArrayRef<OpFoldResult> loopRange, RewriterBase &rewriter) {
15551554 OpBuilder::InsertionGuard g (rewriter);
15561555 rewriter.setInsertionPointToStart (block);
15571556
@@ -1748,6 +1747,9 @@ FailureOr<CollapseResult> mlir::linalg::collapseOpIterationDims(
17481747 op.getIndexingMapMatchingResult (originalResult.value ());
17491748 SmallVector<ReassociationIndices> reassociation =
17501749 getOperandReassociation (indexingMap, collapsingInfo);
1750+ assert (
1751+ indexingMap.isProjectedPermutation () &&
1752+ " Expected indexing map to be a projected permutation for collapsing" );
17511753 SmallVector<OpFoldResult> resultShape =
17521754 applyPermutationMap (indexingMap, ArrayRef (loopBound));
17531755 Value result;
0 commit comments