[clang] [Clang] Remove preprocessor guards and global feature checks for NEON (PR #95224)
via cfe-commits
cfe-commits at lists.llvm.org
Fri Jun 21 05:19:13 PDT 2024
================
@@ -8077,32 +8077,21 @@ static bool verifyValidIntegerConstantExpr(Sema &S, const ParsedAttr &Attr,
/// match one of the standard Neon vector types.
static void HandleNeonVectorTypeAttr(QualType &CurType, const ParsedAttr &Attr,
Sema &S, VectorKind VecKind) {
- bool IsTargetCUDAAndHostARM = false;
- if (S.getLangOpts().CUDAIsDevice) {
- const TargetInfo *AuxTI = S.getASTContext().getAuxTargetInfo();
- IsTargetCUDAAndHostARM =
- AuxTI && (AuxTI->getTriple().isAArch64() || AuxTI->getTriple().isARM());
- }
-
// Target must have NEON (or MVE, whose vectors are similar enough
// not to need a separate attribute)
- if (!(S.Context.getTargetInfo().hasFeature("neon") ||
- S.Context.getTargetInfo().hasFeature("mve") ||
- S.Context.getTargetInfo().hasFeature("sve") ||
- S.Context.getTargetInfo().hasFeature("sme") ||
- IsTargetCUDAAndHostARM) &&
- VecKind == VectorKind::Neon) {
- S.Diag(Attr.getLoc(), diag::err_attribute_unsupported)
- << Attr << "'neon', 'mve', 'sve' or 'sme'";
+ if (!S.Context.getTargetInfo().hasFeature("mve") &&
+ VecKind == VectorKind::Neon &&
+ S.Context.getTargetInfo().getTriple().isArmMClass()) {
+ S.Diag(Attr.getLoc(), diag::err_attribute_unsupported_m_profile)
+ << Attr << "'mve'";
Attr.setInvalid();
return;
}
- if (!(S.Context.getTargetInfo().hasFeature("neon") ||
- S.Context.getTargetInfo().hasFeature("mve") ||
- IsTargetCUDAAndHostARM) &&
- VecKind == VectorKind::NeonPoly) {
- S.Diag(Attr.getLoc(), diag::err_attribute_unsupported)
- << Attr << "'neon' or 'mve'";
+ if (!S.Context.getTargetInfo().hasFeature("mve") &&
+ VecKind == VectorKind::NeonPoly &&
----------------
CarolineConcatto wrote:
Wha happens if we have the original test(git show ed2d497291f0de330), but without the neon check:
if (!(S.Context.getTargetInfo().hasFeature("mve") || IsTargetCUDAAndHostARM)){
https://github.com/llvm/llvm-project/pull/95224
More information about the cfe-commits
mailing list