@@ -153,8 +153,8 @@ def HasSVEAES : Predicate<"Subtarget->hasSVEAES()">,
153153 AssemblerPredicateWithAll<(all_of FeatureSVEAES), "sve-aes">;
154154def HasSVE2SM4 : Predicate<"Subtarget->isSVEAvailable() && Subtarget->hasSVE2SM4()">,
155155 AssemblerPredicateWithAll<(all_of FeatureSVE2SM4), "sve2-sm4">;
156- def HasSVE2SHA3 : Predicate<"Subtarget->isSVEAvailable() && Subtarget->hasSVE2SHA3 ()">,
157- AssemblerPredicateWithAll<(all_of FeatureSVE2SHA3 ), "sve2 -sha3">;
156+ def HasSVESHA3 : Predicate<"Subtarget->hasSVESHA3 ()">,
157+ AssemblerPredicateWithAll<(all_of FeatureSVESHA3 ), "sve -sha3">;
158158def HasSVEBitPerm : Predicate<"Subtarget->hasSVEBitPerm()">,
159159 AssemblerPredicateWithAll<(all_of FeatureSVEBitPerm), "sve-bitperm">;
160160def HasSMEandIsNonStreamingSafe
@@ -248,11 +248,26 @@ def HasSVE_or_SME
248248 : Predicate<"Subtarget->isSVEorStreamingSVEAvailable()">,
249249 AssemblerPredicateWithAll<(any_of FeatureSVE, FeatureSME),
250250 "sve or sme">;
251+ def HasNonStreamingSVE_or_SME2p1
252+ : Predicate<"Subtarget->isSVEAvailable() ||"
253+ "(Subtarget->isSVEorStreamingSVEAvailable() && Subtarget->hasSME2p1())">,
254+ AssemblerPredicateWithAll<(any_of FeatureSVE, FeatureSME2p1),
255+ "sve or sme2p1">;
251256def HasNonStreamingSVE_or_SME2p2
252257 : Predicate<"(Subtarget->isSVEAvailable() && Subtarget->hasSVE()) ||"
253258 "(Subtarget->isSVEorStreamingSVEAvailable() && Subtarget->hasSME2p2())">,
254259 AssemblerPredicateWithAll<(any_of FeatureSVE, FeatureSME2p2),
255260 "sve or sme2p2">;
261+ def HasNonStreamingSVE_or_SSVE_AES
262+ : Predicate<"Subtarget->isSVEAvailable() ||"
263+ "(Subtarget->isSVEorStreamingSVEAvailable() && Subtarget->hasSSVE_AES())">,
264+ AssemblerPredicateWithAll<(any_of FeatureSVE, FeatureSSVE_AES),
265+ "sve or ssve-aes">;
266+ def HasNonStreamingSVE_or_SSVE_BitPerm
267+ : Predicate<"Subtarget->isSVEAvailable() ||"
268+ "(Subtarget->isSVEorStreamingSVEAvailable() && Subtarget->hasSSVE_BitPerm())">,
269+ AssemblerPredicateWithAll<(any_of FeatureSVE, FeatureSSVE_BitPerm),
270+ "sve or ssve-bitperm">;
256271def HasNonStreamingSVE_or_SSVE_FEXPA
257272 : Predicate<"(Subtarget->isSVEAvailable() && Subtarget->hasSVE()) ||"
258273 "(Subtarget->isSVEorStreamingSVEAvailable() && Subtarget->hasSSVE_FEXPA())">,
@@ -267,11 +282,6 @@ def HasSVE2_or_SME2
267282 : Predicate<"Subtarget->hasSVE2() || (Subtarget->isStreaming() && Subtarget->hasSME2())">,
268283 AssemblerPredicateWithAll<(any_of FeatureSVE2, FeatureSME2),
269284 "sve2 or sme2">;
270- def HasNonStreamingSVE2_or_SSVE_AES
271- : Predicate<"(Subtarget->isSVEAvailable() && Subtarget->hasSVE2()) ||"
272- "(Subtarget->isSVEorStreamingSVEAvailable() && Subtarget->hasSSVE_AES())">,
273- AssemblerPredicateWithAll<(any_of FeatureSVE2, FeatureSSVE_AES),
274- "sve2 or ssve-aes">;
275285
276286def HasSVE2p1_or_SME
277287 : Predicate<"Subtarget->hasSVE2p1() || (Subtarget->isStreaming() && Subtarget->hasSME())">,
@@ -300,11 +310,6 @@ def HasSMEF16F16_or_SMEF8F16
300310 : Predicate<"Subtarget->isStreaming() && (Subtarget->hasSMEF16F16() || Subtarget->hasSMEF8F16())">,
301311 AssemblerPredicateWithAll<(any_of FeatureSMEF16F16, FeatureSMEF8F16),
302312 "sme-f16f16 or sme-f8f16">;
303- def HasNonStreamingSVE2_or_SSVE_BitPerm
304- : Predicate<"(Subtarget->isSVEAvailable() && Subtarget->hasSVE2()) ||"
305- "(Subtarget->isSVEorStreamingSVEAvailable() && Subtarget->hasSSVE_BitPerm())">,
306- AssemblerPredicateWithAll<(any_of FeatureSVE2, FeatureSSVE_BitPerm),
307- "sve2 or ssve-bitperm">;
308313
309314// A subset of NEON instructions are legal in Streaming SVE execution mode,
310315// so don't need the additional check for 'isNeonAvailable'.
0 commit comments