add a new CheckMultiOpcode opcode for checking that a node
has one of the list of acceptable opcodes for a complex
pattern. This fixes 4 regtest failures.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96814 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/utils/TableGen/DAGISelMatcherGen.cpp b/utils/TableGen/DAGISelMatcherGen.cpp
index c913853..0ea165c 100644
--- a/utils/TableGen/DAGISelMatcherGen.cpp
+++ b/utils/TableGen/DAGISelMatcherGen.cpp
@@ -251,9 +251,11 @@
StringRef OpName = CGP.getSDNodeInfo(OpNodes[0]).getEnumName();
AddMatcherNode(new CheckOpcodeMatcherNode(OpName));
} else if (!OpNodes.empty()) {
- for (unsigned j = 0, e = OpNodes.size(); j != e; j++) {
- // .getOpcodeName(OpNodes[j], CGP)
- }
+ SmallVector<StringRef, 4> OpNames;
+ for (unsigned i = 0, e = OpNodes.size(); i != e; i++)
+ OpNames.push_back(CGP.getSDNodeInfo(OpNodes[i]).getEnumName());
+ AddMatcherNode(new CheckMultiOpcodeMatcherNode(OpNames.data(),
+ OpNames.size()));
}
}