diff options
author | Benjamin Maxwell <benjamin.maxwell@arm.com> | 2023-10-04 09:28:39 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-10-04 09:28:39 +0100 |
commit | 496318ad8db5d0713a972a7f5e14117c3aa0061a (patch) | |
tree | 58947d92d946d788568c806dbb9538a17d1d5f72 /llvm/lib/Object/ObjectFile.cpp | |
parent | 503bc5f66111f7e4fc79972bb9bfec8bb5606bab (diff) | |
download | llvm-496318ad8db5d0713a972a7f5e14117c3aa0061a.zip llvm-496318ad8db5d0713a972a7f5e14117c3aa0061a.tar.gz llvm-496318ad8db5d0713a972a7f5e14117c3aa0061a.tar.bz2 |
[mlir][ArmSME] Lower vector.extract/insert on SME tiles to MOVA intrinsics (#67786)
This patch adds support for lowering vector.insert/extract of tile
slices or elements to ArmSME MOVA intrinsics.
This enables the following operations for ArmSME:
```
// Extract slice from tile:
%slice = vector.extract %tile[%row]
: vector<[4]xi32> from vector<[4]x[4]xi32>
```
```
// Extract element from tile:
%el = vector.extract %tile[%row, %col]
: i32 from vector<[4]x[4]xi32>
```
```
// Insert slice into tile:
%new_tile = vector.insert %slice, %tile[%row]
: vector<[4]xi32> into vector<[4]x[4]xi32>
```
```
// Insert element into tile;
%new_tile = vector.insert %el, %tile[%row, %col]
: i32 into vector<[4]x[4]xi32>
```
Diffstat (limited to 'llvm/lib/Object/ObjectFile.cpp')
0 files changed, 0 insertions, 0 deletions