Skip to content

Commit c3929fb

Browse files
[NFC][LLVM] Reorder SVE_SME codegen predicate classes.
Also removes unused HasNonStreamingSVE2p1_or_SSVE_AES predicate.
1 parent 8db272f commit c3929fb

File tree

1 file changed

+26
-19
lines changed

1 file changed

+26
-19
lines changed

llvm/lib/Target/AArch64/AArch64InstrInfo.td

Lines changed: 26 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -245,14 +245,20 @@ def HasOCCMO : Predicate<"Subtarget->hasOCCMO()">,
245245
// A subset of SVE(2) instructions are legal in Streaming SVE execution mode,
246246
// they should be enabled if either has been specified.
247247
def HasSVE_or_SME
248-
: Predicate<"Subtarget->hasSVE() || (Subtarget->isStreaming() && Subtarget->hasSME())">,
248+
: Predicate<"Subtarget->isSVEorStreamingSVEAvailable()">,
249249
AssemblerPredicateWithAll<(any_of FeatureSVE, FeatureSME),
250250
"sve or sme">;
251251
def HasNonStreamingSVE_or_SME2p2
252252
: Predicate<"(Subtarget->isSVEAvailable() && Subtarget->hasSVE()) ||"
253253
"(Subtarget->isSVEorStreamingSVEAvailable() && Subtarget->hasSME2p2())">,
254254
AssemblerPredicateWithAll<(any_of FeatureSVE, FeatureSME2p2),
255255
"sve or sme2p2">;
256+
def HasNonStreamingSVE_or_SSVE_FEXPA
257+
: Predicate<"(Subtarget->isSVEAvailable() && Subtarget->hasSVE()) ||"
258+
"(Subtarget->isSVEorStreamingSVEAvailable() && Subtarget->hasSSVE_FEXPA())">,
259+
AssemblerPredicateWithAll<(any_of FeatureSVE, FeatureSSVE_FEXPA),
260+
"sve or ssve-fexpa">;
261+
256262
def HasSVE2_or_SME
257263
: Predicate<"Subtarget->hasSVE2() || (Subtarget->isStreaming() && Subtarget->hasSME())">,
258264
AssemblerPredicateWithAll<(any_of FeatureSVE2, FeatureSME),
@@ -264,40 +270,41 @@ def HasSVE2_or_SME2
264270
def HasNonStreamingSVE2_or_SSVE_AES
265271
: Predicate<"(Subtarget->isSVEAvailable() && Subtarget->hasSVE2()) ||"
266272
"(Subtarget->isSVEorStreamingSVEAvailable() && Subtarget->hasSSVE_AES())">,
267-
AssemblerPredicateWithAll<(any_of FeatureSVE2, FeatureSSVE_AES), "sve2 or ssve-aes">;
273+
AssemblerPredicateWithAll<(any_of FeatureSVE2, FeatureSSVE_AES),
274+
"sve2 or ssve-aes">;
275+
268276
def HasSVE2p1_or_SME
269277
: Predicate<"Subtarget->hasSVE2p1() || (Subtarget->isStreaming() && Subtarget->hasSME())">,
270-
AssemblerPredicateWithAll<(any_of FeatureSME, FeatureSVE2p1), "sme or sve2p1">;
278+
AssemblerPredicateWithAll<(any_of FeatureSME, FeatureSVE2p1),
279+
"sme or sve2p1">;
271280
def HasSVE2p1_or_SME2
272281
: Predicate<"Subtarget->hasSVE2p1() || (Subtarget->isStreaming() && Subtarget->hasSME2())">,
273-
AssemblerPredicateWithAll<(any_of FeatureSME2, FeatureSVE2p1), "sme2 or sve2p1">;
282+
AssemblerPredicateWithAll<(any_of FeatureSME2, FeatureSVE2p1),
283+
"sme2 or sve2p1">;
274284
def HasSVE2p1_or_SME2p1
275285
: Predicate<"Subtarget->hasSVE2p1() || (Subtarget->isStreaming() && Subtarget->hasSME2p1())">,
276-
AssemblerPredicateWithAll<(any_of FeatureSME2p1, FeatureSVE2p1), "sme2p1 or sve2p1">;
286+
AssemblerPredicateWithAll<(any_of FeatureSME2p1, FeatureSVE2p1),
287+
"sme2p1 or sve2p1">;
288+
277289
def HasSVE2p2_or_SME2p2
278290
: Predicate<"Subtarget->isSVEorStreamingSVEAvailable() && (Subtarget->hasSVE2p2() || Subtarget->hasSME2p2())">,
279-
AssemblerPredicateWithAll<(any_of FeatureSME2p2, FeatureSVE2p2), "sme2p2 or sve2p2">;
280-
def HasNonStreamingSVE2p1_or_SSVE_AES
281-
: Predicate<"(Subtarget->isSVEAvailable() && Subtarget->hasSVE2p1()) ||"
282-
"(Subtarget->isSVEorStreamingSVEAvailable() && Subtarget->hasSSVE_AES())">,
283-
AssemblerPredicateWithAll<(any_of FeatureSVE2p1, FeatureSSVE_AES), "sve2p1 or ssve-aes">;
284-
def HasSMEF16F16_or_SMEF8F16
285-
: Predicate<"Subtarget->isStreaming() && (Subtarget->hasSMEF16F16() || Subtarget->hasSMEF8F16())">,
286-
AssemblerPredicateWithAll<(any_of FeatureSMEF16F16, FeatureSMEF8F16),
287-
"sme-f16f16 or sme-f8f16">;
291+
AssemblerPredicateWithAll<(any_of FeatureSME2p2, FeatureSVE2p2),
292+
"sme2p2 or sve2p2">;
288293
def HasNonStreamingSVE2p2_or_SME2p2
289294
: Predicate<"(Subtarget->isSVEAvailable() && Subtarget->hasSVE2p2()) ||"
290295
"(Subtarget->isSVEorStreamingSVEAvailable() && Subtarget->hasSME2p2())">,
291296
AssemblerPredicateWithAll<(any_of FeatureSVE2p2, FeatureSME2p2),
292297
"sme2p2 or sve2p2">;
298+
299+
def HasSMEF16F16_or_SMEF8F16
300+
: Predicate<"Subtarget->isStreaming() && (Subtarget->hasSMEF16F16() || Subtarget->hasSMEF8F16())">,
301+
AssemblerPredicateWithAll<(any_of FeatureSMEF16F16, FeatureSMEF8F16),
302+
"sme-f16f16 or sme-f8f16">;
293303
def HasNonStreamingSVE2_or_SSVE_BitPerm
294304
: Predicate<"(Subtarget->isSVEAvailable() && Subtarget->hasSVE2()) ||"
295305
"(Subtarget->isSVEorStreamingSVEAvailable() && Subtarget->hasSSVE_BitPerm())">,
296-
AssemblerPredicateWithAll<(any_of FeatureSVE2, FeatureSSVE_BitPerm), "sve2 or ssve-bitperm">;
297-
def HasNonStreamingSVE_or_SSVE_FEXPA
298-
: Predicate<"(Subtarget->isSVEAvailable() && Subtarget->hasSVE()) ||"
299-
"(Subtarget->isSVEorStreamingSVEAvailable() && Subtarget->hasSSVE_FEXPA())">,
300-
AssemblerPredicateWithAll<(any_of FeatureSVE, FeatureSSVE_FEXPA), "sve or ssve-fexpa">;
306+
AssemblerPredicateWithAll<(any_of FeatureSVE2, FeatureSSVE_BitPerm),
307+
"sve2 or ssve-bitperm">;
301308

302309
// A subset of NEON instructions are legal in Streaming SVE execution mode,
303310
// so don't need the additional check for 'isNeonAvailable'.

0 commit comments

Comments
 (0)