[mlir][Vector] Don't fully unroll transfer_writes of n-D scalable vectors (#71924)

It is not possible to unroll a scalable vector at compile time. This
currently prevents transfer_writes from being lowered to
arm_sme.tile_writes (downstream).
This commit is contained in:
Benjamin Maxwell
2023-11-13 11:22:55 +00:00
committed by GitHub
parent a604c4b562
commit ced97ffd08
2 changed files with 15 additions and 0 deletions

View File

@@ -1218,6 +1218,11 @@ struct UnrollTransferWriteConversion
auto vec = getDataVector(xferOp);
auto xferVecType = xferOp.getVectorType();
if (xferVecType.getScalableDims()[0]) {
// Cannot unroll a scalable dimension at compile time.
return failure();
}
int64_t dimSize = xferVecType.getShape()[0];
Value source = xferOp.getSource(); // memref or tensor to be written to.
auto sourceType = isTensorOp(xferOp) ? xferOp.getShapedType() : Type();