Here’s a PR that adds a ScalarTypeInterface
: [mlir][IR] Add `ScalarTypeInterface` and use as `VectorType` element type by matthias-springer · Pull Request #132400 · llvm/llvm-project · GitHub
Is this description accurate? I tried to summarize what was written in this thread.
Indication that this type is a scalar type.
The bitwidth of a scalar type is a fixed constant but may be unknown in the
absence of data layout information.
Scalar types are POD (plain-old-data) entities that have an in-memory
representation: scalar values can be loaded/store from/to memory, so
abstract types like function types or async tokens cannot be scalar types.
EDIT: I removed this sentence because it is vague and does not give a clear answer:
Scalar types should be limited to types that can lower to something that
egress dialects would consider a valid vector element type.