[LLVM][IR] Support target extension types in vectors (#140630)
This change is to support target extension types in vectors. The change allows sized target extension types to opt-in to being a valid vector element. Allowing target extension types as vector elements will allow backends to use vector operations such as `insertelement` and `extractelement` on their target types with minimal changes. RFC: https://discourse.llvm.org/t/rfc-supporting-sized-target-extension-types-in-vector/86431
This commit is contained in:
@@ -4438,7 +4438,8 @@ the type size is smaller than the type's store size.
|
||||
< vscale x <# elements> x <elementtype> > ; Scalable vector
|
||||
|
||||
The number of elements is a constant integer value larger than 0;
|
||||
elementtype may be any integer, floating-point or pointer type. Vectors
|
||||
elementtype may be any integer, floating-point, pointer type, or a sized
|
||||
target extension type that has the ``CanBeVectorElement`` property. Vectors
|
||||
of size zero are not allowed. For scalable vectors, the total number of
|
||||
elements is a constant multiple (called vscale) of the specified number
|
||||
of elements; vscale is a positive integer that is unknown at compile time
|
||||
|
||||
Reference in New Issue
Block a user