[llvm-branch-commits] [llvm] [AArch64][llvm] Gate some `tlbip` insns with either +tlbid or +d128 (PR #178913)
via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Mon Feb 16 08:05:56 PST 2026
================
@@ -4269,19 +4269,27 @@ bool AArch64AsmParser::parseSyspAlias(StringRef Name, SMLoc NameLoc,
const AArch64TLBIP::TLBIP *TLBIPorig = AArch64TLBIP::lookupTLBIPByName(Op);
if (!TLBIPorig)
return TokError("invalid operand for TLBIP instruction");
- if (!getSTI().getFeatureBits()[AArch64::FeatureD128])
- return TokError("instruction requires: d128");
const AArch64TLBIP::TLBIP TLBIP(
TLBIPorig->Name, TLBIPorig->Encoding | (HasnXSQualifier ? (1 << 7) : 0),
TLBIPorig->NeedsReg, TLBIPorig->OptionalReg,
HasnXSQualifier
? TLBIPorig->FeaturesRequired | FeatureBitset({AArch64::FeatureXS})
: TLBIPorig->FeaturesRequired);
if (!TLBIP.haveFeatures(getSTI().getFeatureBits())) {
- std::string Name =
- std::string(TLBIP.Name) + (HasnXSQualifier ? "nXS" : "");
- std::string Str("TLBIP " + Name + " requires: ");
- setRequiredFeatureString(TLBIP.getRequiredFeatures(), Str);
+ FeatureBitset Active = getSTI().getFeatureBits();
+ FeatureBitset Missing = TLBIP.getRequiredFeatures() & ~Active;
+ if (TLBIP.allowTLBID()) {
----------------
Lukacma wrote:
With changes I proposed in SystemOperands, I think this logic can also be simplified.
https://github.com/llvm/llvm-project/pull/178913
More information about the llvm-branch-commits
mailing list