sdesmalen added inline comments.
================ Comment at: clang/lib/Driver/ToolChains/Arch/AArch64.cpp:118 + case llvm::AArch64::ArchKind::ARMV8_6A: + Features.push_back("+i8mm"); + Features.push_back("+bf16"); ---------------- Looking at what Clang emits for e.g. `-march=armv8.5-a`, it just adds a target-feature `+v8.5a`. The definitions in `llvm/lib/Target/AArch64/AArch64.td`. suggests that LLVM is already able to infer all supported features from that. e.g. ``` def HasV8_4aOps : SubtargetFeature< : : def HasV8_5aOps : SubtargetFeature< "v8.5a", "HasV8_5aOps", "true", "Support ARM v8.5a instructions", [HasV8_4aOps, FeatureAltFPCmp, FeatureFRInt3264, FeatureSpecRestrict, FeatureSSBS, FeatureSB, FeaturePredRes, FeatureCacheDeepPersist, FeatureBranchTargetId]>; def HasV8_6aOps : SubtargetFeature< "v8.6a", "HasV8_6aOps", "true", "Support ARM v8.6a instructions", [HasV8_5aOps, FeatureAMVS, FeatureBF16, FeatureFineGrainedTraps, FeatureEnhancedCounterVirtualization, FeatureMatMulInt8]>; ``` So I don't think you necessarily have to decompose the architecture version into target-features in the Clang driver as well. For Clang it matters that the right set of feature macros are defined so that the ACLE header file exposes the correct set of functions for the given architecture version. At least for the SVE ACLE that is just a small handful of features. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D83079/new/ https://reviews.llvm.org/D83079 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits