@@ -355,6 +355,15 @@ private predicate isArithmeticType(@builtintype type, int kind) {
355355 kind != 34 // Exclude decltype(nullptr)
356356}
357357
358+ /**
359+ * The Arm scalable vector count type `__SVCount_t`.
360+ */
361+ class ScalableVectorCount extends BuiltInType {
362+ ScalableVectorCount ( ) { builtintypes ( underlyingElement ( this ) , _, 63 , _, _, _) }
363+
364+ override string getAPrimaryQlClass ( ) { result = "ScalableVectorCount" }
365+ }
366+
358367/**
359368 * The C/C++ arithmetic types. See 4.1.1.
360369 *
@@ -1084,7 +1093,7 @@ class NullPointerType extends BuiltInType {
10841093/**
10851094 * A C/C++ derived type.
10861095 *
1087- * These are pointer and reference types, array and GNU vector types, and `const` and `volatile` types.
1096+ * These are pointer and reference types, array and vector types, and `const` and `volatile` types.
10881097 * In all cases, the type is formed from a single base type. For example:
10891098 * ```
10901099 * int *pi;
@@ -1643,6 +1652,26 @@ class GNUVectorType extends DerivedType {
16431652 override predicate isDeeplyConstBelow ( ) { this .getBaseType ( ) .isDeeplyConst ( ) }
16441653}
16451654
1655+ /**
1656+ * An Arm Scalable vector type.
1657+ */
1658+ class ScalableVectorType extends DerivedType {
1659+ ScalableVectorType ( ) { derivedtypes ( underlyingElement ( this ) , _, 11 , _) }
1660+
1661+ /**
1662+ * Get the number of tuple elements of this scalable vector type.
1663+ */
1664+ int getNumTupleElements ( ) { tupleelements ( underlyingElement ( this ) , result ) }
1665+
1666+ override string getAPrimaryQlClass ( ) { result = "ScalableVectorType" }
1667+
1668+ override int getAlignment ( ) { arraysizes ( underlyingElement ( this ) , _, _, result ) }
1669+
1670+ override string explain ( ) { result = "scalable vector of {" + this .getBaseType ( ) .explain ( ) + "}" }
1671+
1672+ override predicate isDeeplyConstBelow ( ) { this .getBaseType ( ) .isDeeplyConst ( ) }
1673+ }
1674+
16461675/**
16471676 * A C/C++ pointer to a function. See 7.7.
16481677 * ```
0 commit comments