@@ -213,12 +213,35 @@ def HasSMEF8F16 : Predicate<"Subtarget->isStreaming() && Subtarget->hasSMEF8
213
213
def HasSMEF8F32 : Predicate<"Subtarget->isStreaming() && Subtarget->hasSMEF8F32()">,
214
214
AssemblerPredicateWithAll<(all_of FeatureSMEF8F32), "sme-f8f32">;
215
215
216
+ def HasCMPBR : Predicate<"Subtarget->hasCMPBR()">,
217
+ AssemblerPredicateWithAll<(all_of FeatureCMPBR), "cmpbr">;
218
+ def HasF8F32MM : Predicate<"Subtarget->hasF8F32MM()">,
219
+ AssemblerPredicateWithAll<(all_of FeatureF8F32MM), "f8f32mm">;
220
+ def HasF8F16MM : Predicate<"Subtarget->hasF8F16MM()">,
221
+ AssemblerPredicateWithAll<(all_of FeatureF8F16MM), "f8f16mm">;
222
+ def HasFPRCVT : Predicate<"Subtarget->hasFPRCVT()">,
223
+ AssemblerPredicateWithAll<(all_of FeatureFPRCVT), "fprcvt">;
224
+ def HasLSFE : Predicate<"Subtarget->hasLSFE()">,
225
+ AssemblerPredicateWithAll<(all_of FeatureLSFE), "lsfe">;
226
+ def HasSME2p2 : Predicate<"Subtarget->isStreaming() && Subtarget->hasSME2p2()">,
227
+ AssemblerPredicateWithAll<(all_of FeatureSME2p2), "sme2p2">;
228
+ def HasSVEAES2 : Predicate<"Subtarget->hasSVEAES2()">,
229
+ AssemblerPredicateWithAll<(all_of FeatureSVEAES2), "sve-aes2">;
230
+ def HasSVEBFSCALE : Predicate<"Subtarget->isSVEorStreamingSVEAvailable() && Subtarget->hasSVEBFSCALE()">,
231
+ AssemblerPredicateWithAll<(all_of FeatureSVEBFSCALE), "sve-bfscale">;
232
+ def HasSVE_F16F32MM : Predicate<"Subtarget->isSVEAvailable() && Subtarget->hasSVE_F16F32MM()">,
233
+ AssemblerPredicateWithAll<(all_of FeatureSVE_F16F32MM), "sve-f16f32mm">;
216
234
// A subset of SVE(2) instructions are legal in Streaming SVE execution mode,
217
235
// they should be enabled if either has been specified.
218
236
def HasSVEorSME
219
237
: Predicate<"Subtarget->hasSVE() || (Subtarget->isStreaming() && Subtarget->hasSME())">,
220
238
AssemblerPredicateWithAll<(any_of FeatureSVE, FeatureSME),
221
239
"sve or sme">;
240
+ def HasSVEorSME2p2
241
+ : Predicate<"(Subtarget->isSVEAvailable() && Subtarget->hasSVE()) ||"
242
+ "(Subtarget->isSVEorStreamingSVEAvailable() && Subtarget->hasSME2p2())">,
243
+ AssemblerPredicateWithAll<(any_of FeatureSVE, FeatureSME2p2),
244
+ "sve or sme2p2">;
222
245
def HasSVE2orSME
223
246
: Predicate<"Subtarget->hasSVE2() || (Subtarget->isStreaming() && Subtarget->hasSME())">,
224
247
AssemblerPredicateWithAll<(any_of FeatureSVE2, FeatureSME),
@@ -227,6 +250,10 @@ def HasSVE2orSME2
227
250
: Predicate<"Subtarget->hasSVE2() || (Subtarget->isStreaming() && Subtarget->hasSME2())">,
228
251
AssemblerPredicateWithAll<(any_of FeatureSVE2, FeatureSME2),
229
252
"sve2 or sme2">;
253
+ def HasSVE2orSSVE_AES
254
+ : Predicate<"(Subtarget->isSVEAvailable() && Subtarget->hasSVE2()) ||"
255
+ "(Subtarget->isSVEorStreamingSVEAvailable() && Subtarget->hasSSVE_AES())">,
256
+ AssemblerPredicateWithAll<(any_of FeatureSVE2, FeatureSSVE_AES), "sve2 or ssve-aes">;
230
257
def HasSVE2p1_or_HasSME
231
258
: Predicate<"Subtarget->hasSVE2p1() || (Subtarget->isStreaming() && Subtarget->hasSME())">,
232
259
AssemblerPredicateWithAll<(any_of FeatureSME, FeatureSVE2p1), "sme or sve2p1">;
@@ -236,7 +263,13 @@ def HasSVE2p1_or_HasSME2
236
263
def HasSVE2p1_or_HasSME2p1
237
264
: Predicate<"Subtarget->hasSVE2p1() || (Subtarget->isStreaming() && Subtarget->hasSME2p1())">,
238
265
AssemblerPredicateWithAll<(any_of FeatureSME2p1, FeatureSVE2p1), "sme2p1 or sve2p1">;
239
-
266
+ def HasSVE2p2orSME2p2
267
+ : Predicate<"Subtarget->isSVEorStreamingSVEAvailable() && (Subtarget->hasSVE2p2() || Subtarget->hasSME2p2())">,
268
+ AssemblerPredicateWithAll<(any_of FeatureSME2p2, FeatureSVE2p2), "sme2p2 or sve2p2">;
269
+ def HasSVE2p1orSSVE_AES
270
+ : Predicate<"(Subtarget->isSVEAvailable() && Subtarget->hasSVE2p1()) ||"
271
+ "(Subtarget->isSVEorStreamingSVEAvailable() && Subtarget->hasSSVE_AES())">,
272
+ AssemblerPredicateWithAll<(any_of FeatureSVE2p1, FeatureSSVE_AES), "sve2p1 or ssve-aes">;
240
273
def HasSMEF16F16orSMEF8F16
241
274
: Predicate<"Subtarget->isStreaming() && (Subtarget->hasSMEF16F16() || Subtarget->hasSMEF8F16())">,
242
275
AssemblerPredicateWithAll<(any_of FeatureSMEF16F16, FeatureSMEF8F16),
0 commit comments