diff options
author | Andrzej WarzyĆski <andrzej.warzynski@arm.com> | 2023-10-27 09:38:36 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-10-27 09:38:36 +0100 |
commit | 5270df3d177ae8849e5f1a2cec28b193ab209ef2 (patch) | |
tree | 15b1004d758eaa8c6cea3598900e67bbaed64518 /clang/lib/Frontend/CompilerInvocation.cpp | |
parent | 0a10e88915167c88443dd58883e01d543963e40e (diff) | |
download | llvm-5270df3d177ae8849e5f1a2cec28b193ab209ef2.zip llvm-5270df3d177ae8849e5f1a2cec28b193ab209ef2.tar.gz llvm-5270df3d177ae8849e5f1a2cec28b193ab209ef2.tar.bz2 |
[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.
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions