diff options
author | Andrzej WarzyĆski <andrzej.warzynski@arm.com> | 2024-09-19 19:53:11 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-09-19 19:53:11 +0100 |
commit | 315ba7740663208f8bc45a7e4f145dc1df79500c (patch) | |
tree | d937bd7abf8cc946f19f418a3dec27ff444f341b /clang/lib/Frontend/CompilerInvocation.cpp | |
parent | d1335fb86466221b0499db5fc8f158f1f64d9542 (diff) | |
download | llvm-315ba7740663208f8bc45a7e4f145dc1df79500c.zip llvm-315ba7740663208f8bc45a7e4f145dc1df79500c.tar.gz llvm-315ba7740663208f8bc45a7e4f145dc1df79500c.tar.bz2 |
[mlir][linalg] Vectorisation of tensor.extract - dynamic shapes (#100582)
This PR removes the assumption that reading from a dynamic tensor is
always a gather load:
```mlir
%extracted = tensor.extract %src[%c79, %3] : tensor<?x?xf32>
```
That assumption was originally introduced to simplify the implementation
and to reduce the number of cases to consider. Now that the
vectorisation of `tensor.extract` has been around for > 1 year and has
been quite stable, we can safely relax it.
This is a relatively small change - rather than using the parent linalg
Op to infer the target output shape (not possible with dynamic shapes),
the vectorizer will use the (previously constructed) output vector
shape instead.
As expected, the following test required updating (`vector.gather` ->
`vector.transfer_read`):
*
@masked_dynamic_vectorize_nd_tensor_extract_with_affine_apply_contiguous
Similar test for scalable vectors is also added.
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions