[Mlir-commits] [mlir] [MLIR] VectorEmulateNarrowType to support loading of unaligned vectors (PR #113411)
Han-Chung Wang
llvmlistbot at llvm.org
Mon Oct 28 13:45:36 PDT 2024
================
@@ -474,26 +600,43 @@ struct ConvertVectorTransferRead final
rewriter.create<memref::ExtractStridedMetadataOp>(loc, op.getSource());
OpFoldResult linearizedIndices;
- std::tie(std::ignore, linearizedIndices) =
+ memref::LinearizedMemRefInfo linearizedInfo;
+ std::tie(linearizedInfo, linearizedIndices) =
memref::getLinearizedMemRefOffsetAndSize(
rewriter, loc, srcBits, dstBits,
stridedMetadata.getConstifiedMixedOffset(),
stridedMetadata.getConstifiedMixedSizes(),
stridedMetadata.getConstifiedMixedStrides(),
getAsOpFoldResult(adaptor.getIndices()));
- auto numElements = (origElements + scale - 1) / scale;
- auto newReadType = VectorType::get(numElements, newElementType);
+ auto foldedIntraVectorOffset =
+ isUnalignedEmulation
+ ? getIntraVectorOffset(rewriter, loc, linearizedInfo)
+ : 0;
----------------
hanhanW wrote:
nit: spells out the type
https://github.com/llvm/llvm-project/pull/113411
More information about the Mlir-commits
mailing list