[mlir][vector] Add scalable vectors to tests for vector.contract (#70039)
Update the remaining tests for matrix multiplication (_matmul_) in: * vector-contract-to-outerproduct-transforms.mlir with cases for scalable vectors. Note that in order for the "vector.contract -> vector.outerproduct" patterns to work, only the non-reduction dimension can be scalable (*). For Matmul operations that is set to be the N dimension (i.e. rows of the output matrix), which matches how matrix multiplication are normally implemented for e.g. Arm's SVE. However, making the M dimension scalable (i.e. columns of the output matrix) should work as well. Making both parellel dimensions scalable is left as a TODO for when support for 2-D scalable vectors is more established (this is work-in-progress as part of the effort to support Arm's SME in MLIR). The change in: * `UnrolledOuterProductGenerator` is a "bug fix" to make sure that the conversion pattern correctly propagates scalability when creating `arith.extf` operations. (*) The conversion tested in this file unrolls along the reduction dimension, which is not supported for scalable vectors.
parent
0a10e889
Please register or sign in to comment