[llvm-branch-commits] [llvm] release/22.x: [AArch64][llvm] Update Armv9.7-A dependencies (#185034) (PR #185071)
via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Fri Mar 6 10:09:33 PST 2026
https://github.com/llvmbot created https://github.com/llvm/llvm-project/pull/185071
Backport cba914cec
Requested by: @jthackray
>From 63db5f50d0592d235aabb0775a103235d0e2798c Mon Sep 17 00:00:00 2001
From: Jonathan Thackray <jonathan.thackray at arm.com>
Date: Fri, 6 Mar 2026 17:49:48 +0000
Subject: [PATCH] [AArch64][llvm] Update Armv9.7-A dependencies (#185034)
Update Armv9.7-A dependenies:
* `FeatureF16MM` to depend on `FeatureNEON`
* `FeatureF16F32DOT` enabled by default for Armv9.7-A
(cherry picked from commit cba914cecec3a8194c7eb5953e82028484d50289)
---
llvm/lib/Target/AArch64/AArch64Features.td | 7 ++++---
llvm/unittests/TargetParser/TargetParserTest.cpp | 3 +++
2 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/llvm/lib/Target/AArch64/AArch64Features.td b/llvm/lib/Target/AArch64/AArch64Features.td
index 6e2153b2244f8..4beec8c91067a 100644
--- a/llvm/lib/Target/AArch64/AArch64Features.td
+++ b/llvm/lib/Target/AArch64/AArch64Features.td
@@ -614,7 +614,7 @@ def FeatureSVE_B16MM : ExtensionWithMArch<"sve-b16mm", "SVE_B16MM", "FEAT_SVE_B1
"Enable Armv9.7-A SVE non-widening BFloat16 matrix multiply-accumulate", [FeatureSVE]>;
def FeatureF16MM : ExtensionWithMArch<"f16mm", "F16MM", "FEAT_F16MM",
- "Enable Armv9.7-A non-widening half-precision matrix multiply-accumulate", [FeatureFullFP16]>;
+ "Enable Armv9.7-A non-widening half-precision matrix multiply-accumulate", [FeatureNEON, FeatureFullFP16]>;
def FeatureF16F32DOT : ExtensionWithMArch<"f16f32dot", "F16F32DOT", "FEAT_F16F32DOT",
"Enable Armv9.7-A Advanced SIMD half-precision dot product accumulate to single-precision", [FeatureNEON, FeatureFullFP16]>;
@@ -1014,8 +1014,9 @@ def HasV9_6aOps : Architecture64<9, 6, "a", "v9.6a",
!listconcat(HasV9_5aOps.DefaultExts, [FeatureCMPBR,
FeatureLSUI, FeatureOCCMO])>;
def HasV9_7aOps : Architecture64<9, 7, "a", "v9.7a",
- [HasV9_6aOps, FeatureSVE2p3, FeatureFPRCVT],
- !listconcat(HasV9_6aOps.DefaultExts, [FeatureSVE2p3, FeatureFPRCVT])>;
+ [HasV9_6aOps, FeatureSVE2p3, FeatureFPRCVT, FeatureF16F32DOT],
+ !listconcat(HasV9_6aOps.DefaultExts, [FeatureSVE2p3, FeatureFPRCVT,
+ FeatureF16F32DOT])>;
def HasV8_0rOps : Architecture64<8, 0, "r", "v8r",
[ //v8.1
FeatureCRC, FeaturePAN, FeatureLSE, FeatureCONTEXTIDREL2,
diff --git a/llvm/unittests/TargetParser/TargetParserTest.cpp b/llvm/unittests/TargetParser/TargetParserTest.cpp
index 7b3b196073aa7..7ad26a54d6dda 100644
--- a/llvm/unittests/TargetParser/TargetParserTest.cpp
+++ b/llvm/unittests/TargetParser/TargetParserTest.cpp
@@ -1913,6 +1913,7 @@ AArch64ExtensionDependenciesBaseArchTestParams
{"v8.1a", "crc", "fp-armv8", "lse", "rdm", "neon"},
{}},
{AArch64::ARMV9_5A, {}, {"v9.5a", "mops", "cpa"}, {}},
+ {AArch64::ARMV9_7A, {}, {"v9.7a", "f16f32dot"}, {}},
// Positive modifiers
{AArch64::ARMV8A, {"fp16"}, {"fullfp16"}, {}},
@@ -2028,6 +2029,8 @@ AArch64ExtensionDependenciesBaseArchTestParams
{AArch64::ARMV8A, {"sve", "nofp16"}, {}, {"fullfp16", "sve"}},
{AArch64::ARMV9_7A, {"nofp16", "f16mm"}, {"fullfp16", "f16mm"}, {}},
{AArch64::ARMV9_7A, {"f16mm", "nofp16"}, {}, {"fullfp16", "f16mm"}},
+ {AArch64::ARMV9_7A, {"nosimd", "f16mm"}, {"neon", "f16mm"}, {}},
+ {AArch64::ARMV9_7A, {"f16mm", "nosimd"}, {}, {"neon", "f16mm"}},
{AArch64::ARMV9_7A,
{"nofp16", "f16f32mm"},
{"fullfp16", "f16f32mm"},
More information about the llvm-branch-commits
mailing list