From be92e6a0d2108bc086a3a2705bf218da1c7337c8 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Sun, 21 Feb 2010 20:10:43 +0000 Subject: [PATCH] teach OPC_CheckType to handle MVT::iPTR, down to 2 ppc failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96752 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/CodeGen/DAGISelHeader.h | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/include/llvm/CodeGen/DAGISelHeader.h b/include/llvm/CodeGen/DAGISelHeader.h index 137d45c3d2a..5d91c2bd884 100644 --- a/include/llvm/CodeGen/DAGISelHeader.h +++ b/include/llvm/CodeGen/DAGISelHeader.h @@ -406,10 +406,16 @@ SDNode *SelectCodeCommon(SDNode *NodeToMatch, const unsigned char *MatcherTable, case OPC_CheckOpcode: if (N->getOpcode() != MatcherTable[MatcherIndex++]) break; continue; - case OPC_CheckType: - if (N.getValueType() != - (MVT::SimpleValueType)MatcherTable[MatcherIndex++]) break; + case OPC_CheckType: { + MVT::SimpleValueType VT = + (MVT::SimpleValueType)MatcherTable[MatcherIndex++]; + if (N.getValueType() != VT) { + // Handle the case when VT is iPTR. + if (VT != MVT::iPTR || N.getValueType() != TLI.getPointerTy()) + break; + } continue; + } case OPC_CheckCondCode: if (cast(N)->get() != (ISD::CondCode)MatcherTable[MatcherIndex++]) break;