Skip to content

Commit 28741a2

Browse files
committed
[clang][SVE] Rename isVLSTBuiltinType, NFC
Since we also have VLST for rvv now, it is not clear to keep using `isVLSTBuiltinType`, so I added prefix SVE to it. Reviewed By: paulwalker-arm Differential Revision: https://reviews.llvm.org/D158045
1 parent 4c89277 commit 28741a2

File tree

9 files changed

+50
-50
lines changed

9 files changed

+50
-50
lines changed

clang/include/clang/AST/Type.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2075,7 +2075,7 @@ class alignas(8) Type : public ExtQualsTypeCommonBase {
20752075
/// Determines if this is a sizeless type supported by the
20762076
/// 'arm_sve_vector_bits' type attribute, which can be applied to a single
20772077
/// SVE vector or predicate, excluding tuple types such as svint32x4_t.
2078-
bool isVLSTBuiltinType() const;
2078+
bool isSveVLSBuiltinType() const;
20792079

20802080
/// Returns the representative type for the element of an SVE builtin type.
20812081
/// This is used to represent fixed-length SVE vectors created with the

clang/lib/AST/ASTContext.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9461,7 +9461,7 @@ bool ASTContext::areCompatibleVectorTypes(QualType FirstVec,
94619461

94629462
/// getSVETypeSize - Return SVE vector or predicate register size.
94639463
static uint64_t getSVETypeSize(ASTContext &Context, const BuiltinType *Ty) {
9464-
assert(Ty->isVLSTBuiltinType() && "Invalid SVE Type");
9464+
assert(Ty->isSveVLSBuiltinType() && "Invalid SVE Type");
94659465
if (Ty->getKind() == BuiltinType::SveBool ||
94669466
Ty->getKind() == BuiltinType::SveCount)
94679467
return (Context.getLangOpts().VScaleMin * 128) / Context.getCharWidth();

clang/lib/AST/ExprConstant.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8572,7 +8572,7 @@ bool LValueExprEvaluator::VisitMemberExpr(const MemberExpr *E) {
85728572
bool LValueExprEvaluator::VisitArraySubscriptExpr(const ArraySubscriptExpr *E) {
85738573
// FIXME: Deal with vectors as array subscript bases.
85748574
if (E->getBase()->getType()->isVectorType() ||
8575-
E->getBase()->getType()->isVLSTBuiltinType())
8575+
E->getBase()->getType()->isSveVLSBuiltinType())
85768576
return Error(E);
85778577

85788578
APSInt Index;

clang/lib/AST/Type.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1962,7 +1962,7 @@ bool Type::hasAutoForTrailingReturnType() const {
19621962
bool Type::hasIntegerRepresentation() const {
19631963
if (const auto *VT = dyn_cast<VectorType>(CanonicalType))
19641964
return VT->getElementType()->isIntegerType();
1965-
if (CanonicalType->isVLSTBuiltinType()) {
1965+
if (CanonicalType->isSveVLSBuiltinType()) {
19661966
const auto *VT = cast<BuiltinType>(CanonicalType);
19671967
return VT->getKind() == BuiltinType::SveBool ||
19681968
(VT->getKind() >= BuiltinType::SveInt8 &&
@@ -2179,7 +2179,7 @@ bool Type::hasUnsignedIntegerRepresentation() const {
21792179
return VT->getElementType()->isUnsignedIntegerOrEnumerationType();
21802180
if (const auto *VT = dyn_cast<MatrixType>(CanonicalType))
21812181
return VT->getElementType()->isUnsignedIntegerOrEnumerationType();
2182-
if (CanonicalType->isVLSTBuiltinType()) {
2182+
if (CanonicalType->isSveVLSBuiltinType()) {
21832183
const auto *VT = cast<BuiltinType>(CanonicalType);
21842184
return VT->getKind() >= BuiltinType::SveUint8 &&
21852185
VT->getKind() <= BuiltinType::SveUint64;
@@ -2433,7 +2433,7 @@ bool Type::isRVVSizelessBuiltinType() const {
24332433
return false;
24342434
}
24352435

2436-
bool Type::isVLSTBuiltinType() const {
2436+
bool Type::isSveVLSBuiltinType() const {
24372437
if (const BuiltinType *BT = getAs<BuiltinType>()) {
24382438
switch (BT->getKind()) {
24392439
case BuiltinType::SveInt8:
@@ -2460,7 +2460,7 @@ bool Type::isVLSTBuiltinType() const {
24602460
}
24612461

24622462
QualType Type::getSveEltType(const ASTContext &Ctx) const {
2463-
assert(isVLSTBuiltinType() && "unsupported type!");
2463+
assert(isSveVLSBuiltinType() && "unsupported type!");
24642464

24652465
const BuiltinType *BTy = castAs<BuiltinType>();
24662466
if (BTy->getKind() == BuiltinType::SveBool)

clang/lib/CodeGen/CGExprScalar.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1798,7 +1798,7 @@ Value *ScalarExprEmitter::VisitArraySubscriptExpr(ArraySubscriptExpr *E) {
17981798
// careful, because the base of a vector subscript is occasionally an rvalue,
17991799
// so we can't get it as an lvalue.
18001800
if (!E->getBase()->getType()->isVectorType() &&
1801-
!E->getBase()->getType()->isVLSTBuiltinType())
1801+
!E->getBase()->getType()->isSveVLSBuiltinType())
18021802
return EmitLoadOfLValue(E);
18031803

18041804
// Handle the vector case. The base must be a vector, the index must be an
@@ -4858,7 +4858,7 @@ VisitAbstractConditionalOperator(const AbstractConditionalOperator *E) {
48584858
}
48594859

48604860
if (condExpr->getType()->isVectorType() ||
4861-
condExpr->getType()->isVLSTBuiltinType()) {
4861+
condExpr->getType()->isSveVLSBuiltinType()) {
48624862
CGF.incrementProfileCounter(E);
48634863

48644864
llvm::Value *CondV = CGF.EmitScalarExpr(condExpr);

clang/lib/Sema/SemaChecking.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14827,7 +14827,7 @@ static void CheckImplicitConversion(Sema &S, Expr *E, QualType T,
1482714827

1482814828
// Strip vector types.
1482914829
if (isa<VectorType>(Source)) {
14830-
if (Target->isVLSTBuiltinType() &&
14830+
if (Target->isSveVLSBuiltinType() &&
1483114831
(S.Context.areCompatibleSveTypes(QualType(Target, 0),
1483214832
QualType(Source, 0)) ||
1483314833
S.Context.areLaxCompatibleSveTypes(QualType(Target, 0),
@@ -14878,7 +14878,7 @@ static void CheckImplicitConversion(Sema &S, Expr *E, QualType T,
1487814878
const BuiltinType *TargetBT = dyn_cast<BuiltinType>(Target);
1487914879

1488014880
// Strip SVE vector types
14881-
if (SourceBT && SourceBT->isVLSTBuiltinType()) {
14881+
if (SourceBT && SourceBT->isSveVLSBuiltinType()) {
1488214882
// Need the original target type for vector type checks
1488314883
const Type *OriginalTarget = S.Context.getCanonicalType(T).getTypePtr();
1488414884
// Handle conversion from scalable to fixed when msve-vector-bits is
@@ -14897,7 +14897,7 @@ static void CheckImplicitConversion(Sema &S, Expr *E, QualType T,
1489714897
Source = SourceBT->getSveEltType(S.Context).getTypePtr();
1489814898
}
1489914899

14900-
if (TargetBT && TargetBT->isVLSTBuiltinType())
14900+
if (TargetBT && TargetBT->isSveVLSBuiltinType())
1490114901
Target = TargetBT->getSveEltType(S.Context).getTypePtr();
1490214902

1490314903
// If the source is floating point...

clang/lib/Sema/SemaExpr.cpp

Lines changed: 33 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -5945,7 +5945,7 @@ Sema::CreateBuiltinArraySubscriptExpr(Expr *Base, SourceLocation LLoc,
59455945
if (Combined != MemberQuals)
59465946
ResultType = Context.getQualifiedType(ResultType, Combined);
59475947
} else if (LHSTy->isBuiltinType() &&
5948-
LHSTy->getAs<BuiltinType>()->isVLSTBuiltinType()) {
5948+
LHSTy->getAs<BuiltinType>()->isSveVLSBuiltinType()) {
59495949
const BuiltinType *BTy = LHSTy->getAs<BuiltinType>();
59505950
if (BTy->isSVEBool())
59515951
return ExprError(Diag(LLoc, diag::err_subscript_svbool_t)
@@ -10934,7 +10934,7 @@ static bool tryGCCVectorConvertAndSplat(Sema &S, ExprResult *Scalar,
1093410934
assert(!isa<ExtVectorType>(VT) &&
1093510935
"ExtVectorTypes should not be handled here!");
1093610936
VectorEltTy = VT->getElementType();
10937-
} else if (VectorTy->isVLSTBuiltinType()) {
10937+
} else if (VectorTy->isSveVLSBuiltinType()) {
1093810938
VectorEltTy =
1093910939
VectorTy->castAs<BuiltinType>()->getSveEltType(S.getASTContext());
1094010940
} else {
@@ -11297,25 +11297,25 @@ QualType Sema::CheckSizelessVectorOperands(ExprResult &LHS, ExprResult &RHS,
1129711297
if (Context.hasSameType(LHSType, RHSType))
1129811298
return LHSType;
1129911299

11300-
if (LHSType->isVLSTBuiltinType() && !RHSType->isVLSTBuiltinType()) {
11300+
if (LHSType->isSveVLSBuiltinType() && !RHSType->isSveVLSBuiltinType()) {
1130111301
if (!tryGCCVectorConvertAndSplat(*this, &RHS, &LHS))
1130211302
return LHSType;
1130311303
}
11304-
if (RHSType->isVLSTBuiltinType() && !LHSType->isVLSTBuiltinType()) {
11304+
if (RHSType->isSveVLSBuiltinType() && !LHSType->isSveVLSBuiltinType()) {
1130511305
if (LHS.get()->isLValue() ||
1130611306
!tryGCCVectorConvertAndSplat(*this, &LHS, &RHS))
1130711307
return RHSType;
1130811308
}
1130911309

11310-
if ((!LHSType->isVLSTBuiltinType() && !LHSType->isRealType()) ||
11311-
(!RHSType->isVLSTBuiltinType() && !RHSType->isRealType())) {
11310+
if ((!LHSType->isSveVLSBuiltinType() && !LHSType->isRealType()) ||
11311+
(!RHSType->isSveVLSBuiltinType() && !RHSType->isRealType())) {
1131211312
Diag(Loc, diag::err_typecheck_vector_not_convertable_non_scalar)
1131311313
<< LHSType << RHSType << LHS.get()->getSourceRange()
1131411314
<< RHS.get()->getSourceRange();
1131511315
return QualType();
1131611316
}
1131711317

11318-
if (LHSType->isVLSTBuiltinType() && RHSType->isVLSTBuiltinType() &&
11318+
if (LHSType->isSveVLSBuiltinType() && RHSType->isSveVLSBuiltinType() &&
1131911319
Context.getBuiltinVectorTypeInfo(LHSBuiltinTy).EC !=
1132011320
Context.getBuiltinVectorTypeInfo(RHSBuiltinTy).EC) {
1132111321
Diag(Loc, diag::err_typecheck_vector_lengths_not_equal)
@@ -11324,11 +11324,11 @@ QualType Sema::CheckSizelessVectorOperands(ExprResult &LHS, ExprResult &RHS,
1132411324
return QualType();
1132511325
}
1132611326

11327-
if (LHSType->isVLSTBuiltinType() || RHSType->isVLSTBuiltinType()) {
11328-
QualType Scalar = LHSType->isVLSTBuiltinType() ? RHSType : LHSType;
11329-
QualType Vector = LHSType->isVLSTBuiltinType() ? LHSType : RHSType;
11327+
if (LHSType->isSveVLSBuiltinType() || RHSType->isSveVLSBuiltinType()) {
11328+
QualType Scalar = LHSType->isSveVLSBuiltinType() ? RHSType : LHSType;
11329+
QualType Vector = LHSType->isSveVLSBuiltinType() ? LHSType : RHSType;
1133011330
bool ScalarOrVector =
11331-
LHSType->isVLSTBuiltinType() && RHSType->isVLSTBuiltinType();
11331+
LHSType->isSveVLSBuiltinType() && RHSType->isSveVLSBuiltinType();
1133211332

1133311333
Diag(Loc, diag::err_typecheck_vector_not_convertable_implict_truncation)
1133411334
<< ScalarOrVector << Scalar << Vector;
@@ -11454,7 +11454,7 @@ QualType Sema::CheckMultiplyDivideOperands(ExprResult &LHS, ExprResult &RHS,
1145411454
/*AllowBoolConversions*/ false,
1145511455
/*AllowBooleanOperation*/ false,
1145611456
/*ReportInvalid*/ true);
11457-
if (LHSTy->isVLSTBuiltinType() || RHSTy->isVLSTBuiltinType())
11457+
if (LHSTy->isSveVLSBuiltinType() || RHSTy->isSveVLSBuiltinType())
1145811458
return CheckSizelessVectorOperands(LHS, RHS, Loc, IsCompAssign,
1145911459
ACK_Arithmetic);
1146011460
if (!IsDiv &&
@@ -11496,8 +11496,8 @@ QualType Sema::CheckRemainderOperands(
1149611496
return InvalidOperands(Loc, LHS, RHS);
1149711497
}
1149811498

11499-
if (LHS.get()->getType()->isVLSTBuiltinType() ||
11500-
RHS.get()->getType()->isVLSTBuiltinType()) {
11499+
if (LHS.get()->getType()->isSveVLSBuiltinType() ||
11500+
RHS.get()->getType()->isSveVLSBuiltinType()) {
1150111501
if (LHS.get()->getType()->hasIntegerRepresentation() &&
1150211502
RHS.get()->getType()->hasIntegerRepresentation())
1150311503
return CheckSizelessVectorOperands(LHS, RHS, Loc, IsCompAssign,
@@ -11815,8 +11815,8 @@ QualType Sema::CheckAdditionOperands(ExprResult &LHS, ExprResult &RHS,
1181511815
return compType;
1181611816
}
1181711817

11818-
if (LHS.get()->getType()->isVLSTBuiltinType() ||
11819-
RHS.get()->getType()->isVLSTBuiltinType()) {
11818+
if (LHS.get()->getType()->isSveVLSBuiltinType() ||
11819+
RHS.get()->getType()->isSveVLSBuiltinType()) {
1182011820
QualType compType =
1182111821
CheckSizelessVectorOperands(LHS, RHS, Loc, CompLHSTy, ACK_Arithmetic);
1182211822
if (CompLHSTy)
@@ -11930,8 +11930,8 @@ QualType Sema::CheckSubtractionOperands(ExprResult &LHS, ExprResult &RHS,
1193011930
return compType;
1193111931
}
1193211932

11933-
if (LHS.get()->getType()->isVLSTBuiltinType() ||
11934-
RHS.get()->getType()->isVLSTBuiltinType()) {
11933+
if (LHS.get()->getType()->isSveVLSBuiltinType() ||
11934+
RHS.get()->getType()->isSveVLSBuiltinType()) {
1193511935
QualType compType =
1193611936
CheckSizelessVectorOperands(LHS, RHS, Loc, CompLHSTy, ACK_Arithmetic);
1193711937
if (CompLHSTy)
@@ -12270,14 +12270,14 @@ static QualType checkSizelessVectorShift(Sema &S, ExprResult &LHS,
1227012270

1227112271
QualType LHSType = LHS.get()->getType();
1227212272
const BuiltinType *LHSBuiltinTy = LHSType->castAs<BuiltinType>();
12273-
QualType LHSEleType = LHSType->isVLSTBuiltinType()
12273+
QualType LHSEleType = LHSType->isSveVLSBuiltinType()
1227412274
? LHSBuiltinTy->getSveEltType(S.getASTContext())
1227512275
: LHSType;
1227612276

1227712277
// Note that RHS might not be a vector
1227812278
QualType RHSType = RHS.get()->getType();
1227912279
const BuiltinType *RHSBuiltinTy = RHSType->castAs<BuiltinType>();
12280-
QualType RHSEleType = RHSType->isVLSTBuiltinType()
12280+
QualType RHSEleType = RHSType->isSveVLSBuiltinType()
1228112281
? RHSBuiltinTy->getSveEltType(S.getASTContext())
1228212282
: RHSType;
1228312283

@@ -12300,7 +12300,7 @@ static QualType checkSizelessVectorShift(Sema &S, ExprResult &LHS,
1230012300
return QualType();
1230112301
}
1230212302

12303-
if (LHSType->isVLSTBuiltinType() && RHSType->isVLSTBuiltinType() &&
12303+
if (LHSType->isSveVLSBuiltinType() && RHSType->isSveVLSBuiltinType() &&
1230412304
(S.Context.getBuiltinVectorTypeInfo(LHSBuiltinTy).EC !=
1230512305
S.Context.getBuiltinVectorTypeInfo(RHSBuiltinTy).EC)) {
1230612306
S.Diag(Loc, diag::err_typecheck_invalid_operands)
@@ -12309,8 +12309,8 @@ static QualType checkSizelessVectorShift(Sema &S, ExprResult &LHS,
1230912309
return QualType();
1231012310
}
1231112311

12312-
if (!LHSType->isVLSTBuiltinType()) {
12313-
assert(RHSType->isVLSTBuiltinType());
12312+
if (!LHSType->isSveVLSBuiltinType()) {
12313+
assert(RHSType->isSveVLSBuiltinType());
1231412314
if (IsCompAssign)
1231512315
return RHSType;
1231612316
if (LHSEleType != RHSEleType) {
@@ -12323,7 +12323,7 @@ static QualType checkSizelessVectorShift(Sema &S, ExprResult &LHS,
1232312323
S.Context.getScalableVectorType(LHSEleType, VecSize.getKnownMinValue());
1232412324
LHS = S.ImpCastExprToType(LHS.get(), VecTy, clang::CK_VectorSplat);
1232512325
LHSType = VecTy;
12326-
} else if (RHSBuiltinTy && RHSBuiltinTy->isVLSTBuiltinType()) {
12326+
} else if (RHSBuiltinTy && RHSBuiltinTy->isSveVLSBuiltinType()) {
1232712327
if (S.Context.getTypeSize(RHSBuiltinTy) !=
1232812328
S.Context.getTypeSize(LHSBuiltinTy)) {
1232912329
S.Diag(Loc, diag::err_typecheck_vector_lengths_not_equal)
@@ -12369,8 +12369,8 @@ QualType Sema::CheckShiftOperands(ExprResult &LHS, ExprResult &RHS,
1236912369
return checkVectorShift(*this, LHS, RHS, Loc, IsCompAssign);
1237012370
}
1237112371

12372-
if (LHS.get()->getType()->isVLSTBuiltinType() ||
12373-
RHS.get()->getType()->isVLSTBuiltinType())
12372+
if (LHS.get()->getType()->isSveVLSBuiltinType() ||
12373+
RHS.get()->getType()->isSveVLSBuiltinType())
1237412374
return checkSizelessVectorShift(*this, LHS, RHS, Loc, IsCompAssign);
1237512375

1237612376
// Shifts don't perform usual arithmetic conversions, they just do integer
@@ -13059,8 +13059,8 @@ QualType Sema::CheckCompareOperands(ExprResult &LHS, ExprResult &RHS,
1305913059
RHS.get()->getType()->isVectorType())
1306013060
return CheckVectorCompareOperands(LHS, RHS, Loc, Opc);
1306113061

13062-
if (LHS.get()->getType()->isVLSTBuiltinType() ||
13063-
RHS.get()->getType()->isVLSTBuiltinType())
13062+
if (LHS.get()->getType()->isSveVLSBuiltinType() ||
13063+
RHS.get()->getType()->isSveVLSBuiltinType())
1306413064
return CheckSizelessVectorCompareOperands(LHS, RHS, Loc, Opc);
1306513065

1306613066
diagnoseLogicalNotOnLHSofCheck(*this, LHS, RHS, Loc, Opc);
@@ -13935,17 +13935,17 @@ inline QualType Sema::CheckBitwiseOperands(ExprResult &LHS, ExprResult &RHS,
1393513935
return InvalidOperands(Loc, LHS, RHS);
1393613936
}
1393713937

13938-
if (LHS.get()->getType()->isVLSTBuiltinType() ||
13939-
RHS.get()->getType()->isVLSTBuiltinType()) {
13938+
if (LHS.get()->getType()->isSveVLSBuiltinType() ||
13939+
RHS.get()->getType()->isSveVLSBuiltinType()) {
1394013940
if (LHS.get()->getType()->hasIntegerRepresentation() &&
1394113941
RHS.get()->getType()->hasIntegerRepresentation())
1394213942
return CheckSizelessVectorOperands(LHS, RHS, Loc, IsCompAssign,
1394313943
ACK_BitwiseOp);
1394413944
return InvalidOperands(Loc, LHS, RHS);
1394513945
}
1394613946

13947-
if (LHS.get()->getType()->isVLSTBuiltinType() ||
13948-
RHS.get()->getType()->isVLSTBuiltinType()) {
13947+
if (LHS.get()->getType()->isSveVLSBuiltinType() ||
13948+
RHS.get()->getType()->isSveVLSBuiltinType()) {
1394913949
if (LHS.get()->getType()->hasIntegerRepresentation() &&
1395013950
RHS.get()->getType()->hasIntegerRepresentation())
1395113951
return CheckSizelessVectorOperands(LHS, RHS, Loc, IsCompAssign,
@@ -16309,7 +16309,7 @@ ExprResult Sema::CreateBuiltinUnaryOp(SourceLocation OpLoc,
1630916309
resultType->castAs<VectorType>()->getVectorKind() !=
1631016310
VectorType::AltiVecBool))
1631116311
break;
16312-
else if (resultType->isVLSTBuiltinType()) // SVE vectors allow + and -
16312+
else if (resultType->isSveVLSBuiltinType()) // SVE vectors allow + and -
1631316313
break;
1631416314
else if (getLangOpts().CPlusPlus && // C++ [expr.unary.op]p6
1631516315
Opc == UO_Plus &&

clang/lib/Sema/SemaExprCXX.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6305,7 +6305,7 @@ static bool isValidVectorForConditionalCondition(ASTContext &Ctx,
63056305

63066306
static bool isValidSizelessVectorForConditionalCondition(ASTContext &Ctx,
63076307
QualType CondTy) {
6308-
if (!CondTy->isVLSTBuiltinType())
6308+
if (!CondTy->isSveVLSBuiltinType())
63096309
return false;
63106310
const QualType EltTy =
63116311
cast<BuiltinType>(CondTy.getCanonicalType())->getSveEltType(Ctx);
@@ -6417,10 +6417,10 @@ QualType Sema::CheckSizelessVectorConditionalTypes(ExprResult &Cond,
64176417

64186418
QualType LHSType = LHS.get()->getType();
64196419
const auto *LHSBT =
6420-
LHSType->isVLSTBuiltinType() ? LHSType->getAs<BuiltinType>() : nullptr;
6420+
LHSType->isSveVLSBuiltinType() ? LHSType->getAs<BuiltinType>() : nullptr;
64216421
QualType RHSType = RHS.get()->getType();
64226422
const auto *RHSBT =
6423-
RHSType->isVLSTBuiltinType() ? RHSType->getAs<BuiltinType>() : nullptr;
6423+
RHSType->isSveVLSBuiltinType() ? RHSType->getAs<BuiltinType>() : nullptr;
64246424

64256425
QualType ResultType;
64266426

@@ -6462,7 +6462,7 @@ QualType Sema::CheckSizelessVectorConditionalTypes(ExprResult &Cond,
64626462
RHS = ImpCastExprToType(RHS.get(), ResultType, CK_VectorSplat);
64636463
}
64646464

6465-
assert(!ResultType.isNull() && ResultType->isVLSTBuiltinType() &&
6465+
assert(!ResultType.isNull() && ResultType->isSveVLSBuiltinType() &&
64666466
"Result should have been a vector type");
64676467
auto *ResultBuiltinTy = ResultType->castAs<BuiltinType>();
64686468
QualType ResultElementTy = ResultBuiltinTy->getSveEltType(Context);

clang/lib/Sema/SemaType.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8363,7 +8363,7 @@ static void HandleArmSveVectorBitsTypeAttr(QualType &CurType, ParsedAttr &Attr,
83638363
}
83648364

83658365
// Attribute can only be attached to a single SVE vector or predicate type.
8366-
if (!CurType->isVLSTBuiltinType()) {
8366+
if (!CurType->isSveVLSBuiltinType()) {
83678367
S.Diag(Attr.getLoc(), diag::err_attribute_invalid_sve_type)
83688368
<< Attr << CurType;
83698369
Attr.setInvalid();

0 commit comments

Comments
 (0)