MLIR supports multi-dimensional
vector types and custom operations on those types. A generic, retargetable, higher-order
vector type (
n > 1) is a structured type, that carries semantic information useful for transformations. This document discusses retargetable abstractions that exist in MLIR today and operate on ssa-values of type
vector along with pattern rewrites and lowerings that enable targeting specific instructions on concrete targets. These abstractions serve to separate concerns between operations on
memref (a.k.a buffers) and operations on
vector values. This is not a new proposal but rather a textual documentation of existing MLIR components along with a rationale.