aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--utils/TableGen/DAGISelEmitter.cpp18
1 files changed, 16 insertions, 2 deletions
diff --git a/utils/TableGen/DAGISelEmitter.cpp b/utils/TableGen/DAGISelEmitter.cpp
index aba54284f9..81a45e1d85 100644
--- a/utils/TableGen/DAGISelEmitter.cpp
+++ b/utils/TableGen/DAGISelEmitter.cpp
@@ -3114,7 +3114,14 @@ void DAGISelEmitter::EmitInstructionSelector(std::ostream &OS) {
// the case where nothing handles a pattern.
if (mightNotMatch)
OS << " std::cerr << \"Cannot yet select: \";\n"
- << " N.Val->dump(CurDAG);\n"
+ << " if (N.getOpcode() != ISD::INTRINSIC) {\n"
+ << " N.Val->dump(CurDAG);\n"
+ << " } else {\n"
+ << " unsigned iid = cast<ConstantSDNode>(N.getOperand("
+ "N.getOperand(0).getValueType() == MVT::Other))->getValue();\n"
+ << " std::cerr << \"intrinsic %\"<< "
+ "Intrinsic::getName((Intrinsic::ID)iid);\n"
+ << " }\n"
<< " std::cerr << '\\n';\n"
<< " abort();\n";
@@ -3275,7 +3282,14 @@ void DAGISelEmitter::EmitInstructionSelector(std::ostream &OS) {
OS << " } // end of big switch.\n\n"
<< " std::cerr << \"Cannot yet select: \";\n"
- << " N.Val->dump(CurDAG);\n"
+ << " if (N.getOpcode() != ISD::INTRINSIC) {\n"
+ << " N.Val->dump(CurDAG);\n"
+ << " } else {\n"
+ << " unsigned iid = cast<ConstantSDNode>(N.getOperand("
+ "N.getOperand(0).getValueType() == MVT::Other))->getValue();\n"
+ << " std::cerr << \"intrinsic %\"<< "
+ "Intrinsic::getName((Intrinsic::ID)iid);\n"
+ << " }\n"
<< " std::cerr << '\\n';\n"
<< " abort();\n"
<< "}\n";