aboutsummaryrefslogtreecommitdiff
path: root/libcxx/src/algorithm.cpp
diff options
context:
space:
mode:
authorAndrzej Warzynski <andrzej.warzynski@arm.com>2023-08-07 09:36:43 +0000
committerAndrzej Warzynski <andrzej.warzynski@arm.com>2023-08-10 09:08:30 +0000
commit12b4951866622cfc38342629808a1a6542624689 (patch)
tree0abb58f1aba5b0d550b4d311ed0f6fdfb6c7eece /libcxx/src/algorithm.cpp
parentf808788487ab9db7da262a0b43483fb07bf6b50f (diff)
downloadllvm-12b4951866622cfc38342629808a1a6542624689.zip
llvm-12b4951866622cfc38342629808a1a6542624689.tar.gz
llvm-12b4951866622cfc38342629808a1a6542624689.tar.bz2
[mlir][vector] Add missing support for scalable vectors
This patch adds the missing logic so that the `TransferReadPermutationLowering` can be used for scalable vectors. To this end: * TransferOp custom C++ builder is updated to support scalable vectors, * `TransferOpReduceRank` is also updated to support scalable vectors. This pattern is relevant when lowering `linalg.matmul` via `vector_multi_reduction` for scalable vectors. I've also updated relevant code in `TransferOpReduceRank` not to use `llvm::to_vector` for constructing `SmallVector` from `ArrayRef`. That hook doesn't work for `ArraryRef<bool>` (*), so for consistency I switched to an explicit constructor (so that both `newShape` and `newScalableDim` are constructed in a similar fashion). (*) IIUC, that's due how implicit narrowing conversions between `bool` and `*bool` work. Note that these narrowing conversions change when using initializer lists, see * https://en.cppreference.com/w/cpp/language/list_initialization. Depends on D157092 Differential Revision: https://reviews.llvm.org/D157268
Diffstat (limited to 'libcxx/src/algorithm.cpp')
0 files changed, 0 insertions, 0 deletions