[clang] [AArch64] Add option -msve-streaming-vector-bits= . (PR #144611)
Eli Friedman via cfe-commits
cfe-commits at lists.llvm.org
Wed Jun 25 10:30:07 PDT 2025
================
@@ -2261,6 +2261,21 @@ void Sema::checkTypeSupport(QualType Ty, SourceLocation Loc, ValueDecl *D) {
}
}
}
+
+ if (auto *VT = Ty->getAs<VectorType>();
+ VT && FD &&
+ (VT->getVectorKind() == VectorKind::SveFixedLengthData ||
+ VT->getVectorKind() == VectorKind::SveFixedLengthPredicate)) {
+ if (IsArmStreamingFunction(FD, /*IncludeLocallyStreaming=*/true)) {
+ Diag(Loc, diag::err_sve_fixed_vector_in_streaming_function) << Ty << 0;
+ } else if (const auto *FTy = FD->getType()->getAs<FunctionProtoType>()) {
+ if (FTy->getAArch64SMEAttributes() &
+ FunctionType::SME_PStateSMCompatibleMask) {
+ Diag(Loc, diag::err_sve_fixed_vector_in_streaming_function)
----------------
efriedma-quic wrote:
I can allow the use of arm_sve_vector_bits in streaming/streaming-compatible functions if the streaming and non-streaming widths are the same, sure.
Your last two testcases are the same: the conversion happens in the caller, so the first case reduces to the second. Which is an issue, I guess, but not directly related to this patch. It doesn't involve any fixed-width types.
https://github.com/llvm/llvm-project/pull/144611
More information about the cfe-commits
mailing list