@@ -1548,10 +1548,9 @@ static Value getCollapsedOpOperand(Location loc, LinalgOp op,
1548
1548
1549
1549
// / Modify the `linalg.index` operations in the original generic op, to its
1550
1550
// / 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) {
1555
1554
OpBuilder::InsertionGuard g (rewriter);
1556
1555
rewriter.setInsertionPointToStart (block);
1557
1556
@@ -1748,6 +1747,9 @@ FailureOr<CollapseResult> mlir::linalg::collapseOpIterationDims(
1748
1747
op.getIndexingMapMatchingResult (originalResult.value ());
1749
1748
SmallVector<ReassociationIndices> reassociation =
1750
1749
getOperandReassociation (indexingMap, collapsingInfo);
1750
+ assert (
1751
+ indexingMap.isProjectedPermutation () &&
1752
+ " Expected indexing map to be a projected permutation for collapsing" );
1751
1753
SmallVector<OpFoldResult> resultShape =
1752
1754
applyPermutationMap (indexingMap, ArrayRef (loopBound));
1753
1755
Value result;
0 commit comments