diff --git a/llvm/lib/Target/AArch64/AArch64InstrInfo.td b/llvm/lib/Target/AArch64/AArch64InstrInfo.td --- a/llvm/lib/Target/AArch64/AArch64InstrInfo.td +++ b/llvm/lib/Target/AArch64/AArch64InstrInfo.td @@ -140,6 +140,12 @@ : Predicate<"Subtarget->hasSVE2() || Subtarget->hasStreamingSVE()">, AssemblerPredicate<(any_of FeatureSVE2, FeatureStreamingSVE), "streaming-sve or sve2">; +// A subset of NEON instructions are legal in Streaming SVE execution mode, +// they should be enabled if either has been specified. +def HasNEONorStreamingSVE + : Predicate<"Subtarget->hasNEON() || Subtarget->hasStreamingSVE()">, + AssemblerPredicate<(any_of FeatureNEON, FeatureStreamingSVE), + "streaming-sve or neon">; def HasRCPC : Predicate<"Subtarget->hasRCPC()">, AssemblerPredicate<(all_of FeatureRCPC), "rcpc">; def HasAltNZCV : Predicate<"Subtarget->hasAlternativeNZCV()">,