Scalable_Vector_Type

class Scalable_Vector_Type (concrete, logical)

ARM scalable vector type (e.g., __SVInt8_t). This is an opaque length-agnostic vector; or a tuple of multiple such vectors. Scalable vector types are sizeless types: the IR will store Size=0, as the actual size is determined only at runtime. Sizeless types can be used as the type of parameters and local variables, but not for global variables, data members or array element types.

Direct parents:
Ancestor classes and implemented interfaces:

Declarative_Node, Logical_IR_Root, Symbol, Type, Unnamed_Type, Vector_Type

Field

Kind

Type

Description

Tuple_Elements

attribute

builtin Byte

Number of tuple elements (1, 2, 3 or 4). For example, svint16x3_t will have Tuple_Elements==3.

Element_Type (from Vector_Type)

semantic

class Type

The type of the elements.

Size (from Type)

attribute

builtin Natural

Alignment_Log (from Type)

attribute

builtin Byte

log2 of the type’s alignment

Alignment (from Type)

attribute

builtin Natural

Alignment of the type (must be a power of 2)

Size_In_Bits (from Type)

attribute

builtin UInt64

Size of the type, in bits.

Parent (from Logical_IR_Root)

semantic

class Logical_IR_Root

Physical (from Logical_IR_Root)

semantic to physical

class Physical_IR_Root