@@ -127,23 +127,6 @@ struct ConvertLayoutOpConversion
127127 llvm_unreachable (" unexpected layout in getMultiDimOffset" );
128128 }
129129
130- SmallVector<Value>
131- getWrappedMultiDimOffset (ConversionPatternRewriter &rewriter, Location loc,
132- ArrayRef<Value> multiDimOffset,
133- ArrayRef<unsigned > shape,
134- SmallVector<unsigned > shapePerCTATile,
135- SmallVector<int64_t > shapePerCTA) const {
136- unsigned rank = shape.size ();
137- SmallVector<Value> multiDimOffsetWrapped (rank);
138- for (unsigned d = 0 ; d < rank; ++d) {
139- if (shapePerCTATile[d] > shapePerCTA[d])
140- multiDimOffsetWrapped[d] = urem (multiDimOffset[d], i32_val (shape[d]));
141- else
142- multiDimOffsetWrapped[d] = multiDimOffset[d];
143- }
144- return multiDimOffsetWrapped;
145- }
146-
147130 // shared memory rd/st for blocked or dpas layout with data padding
148131 void processReplica (Location loc, ConversionPatternRewriter &rewriter,
149132 bool stNotRd, RankedTensorType type,
@@ -194,9 +177,10 @@ struct ConvertLayoutOpConversion
194177 SmallVector<Value> multiDimOffset =
195178 getMultiDimOffset (layout, loc, rewriter, elemId, type,
196179 multiDimCTAInRepId, shapePerCTATile);
197- SmallVector<Value> multiDimOffsetWrapped = getWrappedMultiDimOffset (
198- rewriter, loc, multiDimOffset, origRepShape, shapePerCTATile,
199- shapePerCTA);
180+ SmallVector<Value> multiDimOffsetWrapped =
181+ mlir::LLVM::getWrappedMultiDimOffset (rewriter, loc, multiDimOffset,
182+ origRepShape, shapePerCTATile,
183+ shapePerCTA);
200184 Value offset = linearize (rewriter, loc, multiDimOffsetWrapped,
201185 paddedRepShape, outOrd);
202186 auto elemPtrTy = ptr_ty (rewriter.getContext (), 3 );
0 commit comments