diff options
author | Cullen Rhodes <cullen.rhodes@arm.com> | 2024-07-09 09:06:25 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-07-09 09:06:25 +0100 |
commit | 1e7d6d345518de0738eb5b2eb71addd499fea0fb (patch) | |
tree | 2c27f57330bd7302fb46962db95b86d78e262aff /llvm/unittests/Support/MathExtrasTest.cpp | |
parent | efc5a6aa82081aaa002f90baa21fc16655af0729 (diff) | |
download | llvm-1e7d6d345518de0738eb5b2eb71addd499fea0fb.zip llvm-1e7d6d345518de0738eb5b2eb71addd499fea0fb.tar.gz llvm-1e7d6d345518de0738eb5b2eb71addd499fea0fb.tar.bz2 |
[mlir][vector] Propagate scalability to gather/scatter ptrs vector (#97584)
In convert-vector-to-llvm the first operand (vector of pointers holding
all memory addresses to read) to the masked.gather (and scatter)
intrinsic has a fixed vector type.
This may result in intrinsics where the scalable flag has been dropped:
```
%0 = llvm.intr.masked.gather %1, %2, %3 {alignment = 4 : i32}
: (!llvm.vec<4 x ptr>, vector<[4]xi1>, vector<[4]xi32>) -> vector<[4]xi32>
```
Fortunately the operand is overloaded on the result type so we end up
with the correct IR when lowering to LLVM, but this is still incorrect.
This patch fixes it by propagating scalability.
Diffstat (limited to 'llvm/unittests/Support/MathExtrasTest.cpp')
0 files changed, 0 insertions, 0 deletions