[llvm] c3929fb - [NFC][LLVM] Reorder SVE_SME codegen predicate classes.
Paul Walker via llvm-commits
llvm-commits at lists.llvm.org
Fri Jun 20 06:29:02 PDT 2025
Author: Paul Walker
Date: 2025-06-20T13:27:30Z
New Revision: c3929fbf0ef2d0fac05c54237bd9eac4fd57b1d8
URL: https://github.com/llvm/llvm-project/commit/c3929fbf0ef2d0fac05c54237bd9eac4fd57b1d8
DIFF: https://github.com/llvm/llvm-project/commit/c3929fbf0ef2d0fac05c54237bd9eac4fd57b1d8.diff
LOG: [NFC][LLVM] Reorder SVE_SME codegen predicate classes.
Also removes unused HasNonStreamingSVE2p1_or_SSVE_AES predicate.
Added:
Modified:
llvm/lib/Target/AArch64/AArch64InstrInfo.td
Removed:
################################################################################
diff --git a/llvm/lib/Target/AArch64/AArch64InstrInfo.td b/llvm/lib/Target/AArch64/AArch64InstrInfo.td
index 400ffff5d567f..efe6cc1aa8aec 100644
--- a/llvm/lib/Target/AArch64/AArch64InstrInfo.td
+++ b/llvm/lib/Target/AArch64/AArch64InstrInfo.td
@@ -245,7 +245,7 @@ def HasOCCMO : Predicate<"Subtarget->hasOCCMO()">,
// A subset of SVE(2) instructions are legal in Streaming SVE execution mode,
// they should be enabled if either has been specified.
def HasSVE_or_SME
- : Predicate<"Subtarget->hasSVE() || (Subtarget->isStreaming() && Subtarget->hasSME())">,
+ : Predicate<"Subtarget->isSVEorStreamingSVEAvailable()">,
AssemblerPredicateWithAll<(any_of FeatureSVE, FeatureSME),
"sve or sme">;
def HasNonStreamingSVE_or_SME2p2
@@ -253,6 +253,12 @@ def HasNonStreamingSVE_or_SME2p2
"(Subtarget->isSVEorStreamingSVEAvailable() && Subtarget->hasSME2p2())">,
AssemblerPredicateWithAll<(any_of FeatureSVE, FeatureSME2p2),
"sve or sme2p2">;
+def HasNonStreamingSVE_or_SSVE_FEXPA
+ : Predicate<"(Subtarget->isSVEAvailable() && Subtarget->hasSVE()) ||"
+ "(Subtarget->isSVEorStreamingSVEAvailable() && Subtarget->hasSSVE_FEXPA())">,
+ AssemblerPredicateWithAll<(any_of FeatureSVE, FeatureSSVE_FEXPA),
+ "sve or ssve-fexpa">;
+
def HasSVE2_or_SME
: Predicate<"Subtarget->hasSVE2() || (Subtarget->isStreaming() && Subtarget->hasSME())">,
AssemblerPredicateWithAll<(any_of FeatureSVE2, FeatureSME),
@@ -264,40 +270,41 @@ def HasSVE2_or_SME2
def HasNonStreamingSVE2_or_SSVE_AES
: Predicate<"(Subtarget->isSVEAvailable() && Subtarget->hasSVE2()) ||"
"(Subtarget->isSVEorStreamingSVEAvailable() && Subtarget->hasSSVE_AES())">,
- AssemblerPredicateWithAll<(any_of FeatureSVE2, FeatureSSVE_AES), "sve2 or ssve-aes">;
+ AssemblerPredicateWithAll<(any_of FeatureSVE2, FeatureSSVE_AES),
+ "sve2 or ssve-aes">;
+
def HasSVE2p1_or_SME
: Predicate<"Subtarget->hasSVE2p1() || (Subtarget->isStreaming() && Subtarget->hasSME())">,
- AssemblerPredicateWithAll<(any_of FeatureSME, FeatureSVE2p1), "sme or sve2p1">;
+ AssemblerPredicateWithAll<(any_of FeatureSME, FeatureSVE2p1),
+ "sme or sve2p1">;
def HasSVE2p1_or_SME2
: Predicate<"Subtarget->hasSVE2p1() || (Subtarget->isStreaming() && Subtarget->hasSME2())">,
- AssemblerPredicateWithAll<(any_of FeatureSME2, FeatureSVE2p1), "sme2 or sve2p1">;
+ AssemblerPredicateWithAll<(any_of FeatureSME2, FeatureSVE2p1),
+ "sme2 or sve2p1">;
def HasSVE2p1_or_SME2p1
: Predicate<"Subtarget->hasSVE2p1() || (Subtarget->isStreaming() && Subtarget->hasSME2p1())">,
- AssemblerPredicateWithAll<(any_of FeatureSME2p1, FeatureSVE2p1), "sme2p1 or sve2p1">;
+ AssemblerPredicateWithAll<(any_of FeatureSME2p1, FeatureSVE2p1),
+ "sme2p1 or sve2p1">;
+
def HasSVE2p2_or_SME2p2
: Predicate<"Subtarget->isSVEorStreamingSVEAvailable() && (Subtarget->hasSVE2p2() || Subtarget->hasSME2p2())">,
- AssemblerPredicateWithAll<(any_of FeatureSME2p2, FeatureSVE2p2), "sme2p2 or sve2p2">;
-def HasNonStreamingSVE2p1_or_SSVE_AES
- : Predicate<"(Subtarget->isSVEAvailable() && Subtarget->hasSVE2p1()) ||"
- "(Subtarget->isSVEorStreamingSVEAvailable() && Subtarget->hasSSVE_AES())">,
- AssemblerPredicateWithAll<(any_of FeatureSVE2p1, FeatureSSVE_AES), "sve2p1 or ssve-aes">;
-def HasSMEF16F16_or_SMEF8F16
- : Predicate<"Subtarget->isStreaming() && (Subtarget->hasSMEF16F16() || Subtarget->hasSMEF8F16())">,
- AssemblerPredicateWithAll<(any_of FeatureSMEF16F16, FeatureSMEF8F16),
- "sme-f16f16 or sme-f8f16">;
+ AssemblerPredicateWithAll<(any_of FeatureSME2p2, FeatureSVE2p2),
+ "sme2p2 or sve2p2">;
def HasNonStreamingSVE2p2_or_SME2p2
: Predicate<"(Subtarget->isSVEAvailable() && Subtarget->hasSVE2p2()) ||"
"(Subtarget->isSVEorStreamingSVEAvailable() && Subtarget->hasSME2p2())">,
AssemblerPredicateWithAll<(any_of FeatureSVE2p2, FeatureSME2p2),
"sme2p2 or sve2p2">;
+
+def HasSMEF16F16_or_SMEF8F16
+ : Predicate<"Subtarget->isStreaming() && (Subtarget->hasSMEF16F16() || Subtarget->hasSMEF8F16())">,
+ AssemblerPredicateWithAll<(any_of FeatureSMEF16F16, FeatureSMEF8F16),
+ "sme-f16f16 or sme-f8f16">;
def HasNonStreamingSVE2_or_SSVE_BitPerm
: Predicate<"(Subtarget->isSVEAvailable() && Subtarget->hasSVE2()) ||"
"(Subtarget->isSVEorStreamingSVEAvailable() && Subtarget->hasSSVE_BitPerm())">,
- AssemblerPredicateWithAll<(any_of FeatureSVE2, FeatureSSVE_BitPerm), "sve2 or ssve-bitperm">;
-def HasNonStreamingSVE_or_SSVE_FEXPA
- : Predicate<"(Subtarget->isSVEAvailable() && Subtarget->hasSVE()) ||"
- "(Subtarget->isSVEorStreamingSVEAvailable() && Subtarget->hasSSVE_FEXPA())">,
- AssemblerPredicateWithAll<(any_of FeatureSVE, FeatureSSVE_FEXPA), "sve or ssve-fexpa">;
+ AssemblerPredicateWithAll<(any_of FeatureSVE2, FeatureSSVE_BitPerm),
+ "sve2 or ssve-bitperm">;
// A subset of NEON instructions are legal in Streaming SVE execution mode,
// so don't need the additional check for 'isNeonAvailable'.
More information about the llvm-commits
mailing list