When failing selection for an intrinsic, print this:
Cannot yet select: intrinsic %llvm.ppc.altivec.lvx
instead of this:
Cannot yet select: 0x9b047e0: v4i32,ch = INTRINSIC 0x9b04540:1, 0x9b04710, 0x9b04790, 0x9b04540
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27110 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/utils/TableGen/DAGISelEmitter.cpp b/utils/TableGen/DAGISelEmitter.cpp
index aba5428..81a45e1 100644
--- a/utils/TableGen/DAGISelEmitter.cpp
+++ b/utils/TableGen/DAGISelEmitter.cpp
@@ -3114,7 +3114,14 @@
// 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 @@
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";