if (unsigned NumArgs = MIOpInfo->getNumArgs())
NumOps = NumArgs;
- isPredicable |= Rec->isSubClassOf("PredicateOperand");
+ if (Rec->isSubClassOf("PredicateOperand")) {
+ if (!Rec->getValueAsBit("isImmutable"))
+ isPredicable = true;
+ }
} else if (Rec->getName() == "variable_ops") {
hasVariableNumberOfOperands = true;
continue;
// Predicate operands. Check to see if the original unexpanded operand
// was of type PredicateOperand.
- if (Inst.OperandList[i].Rec->isSubClassOf("PredicateOperand"))
+ if (Inst.OperandList[i].Rec->isSubClassOf("PredicateOperand") &&
+ !Inst.OperandList[i].Rec->getValueAsBit("isImmutable"))
Res += "|M_PREDICATE_OPERAND";
// Fill in constraint info.