From 4a9b4f1943c6c56c749c8709ed28680408afc577 Mon Sep 17 00:00:00 2001
From: Chris Lattner <sabre@nondot.org>
Date: Tue, 18 Jan 2005 19:26:36 +0000
Subject: [PATCH] Keep track of the retval type as well.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19670 91177308-0d34-0410-b5e6-96231b3b80d8
---
 lib/CodeGen/SelectionDAG/SelectionDAG.cpp | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/lib/CodeGen/SelectionDAG/SelectionDAG.cpp b/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
index 43f13d71fcd..3da2f5fe7ab 100644
--- a/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
+++ b/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
@@ -218,7 +218,9 @@ void SelectionDAG::DeleteNodeIfDead(SDNode *N, void *NodeSet) {
   case ISD::SETCC:
     SetCCs.erase(std::make_pair(std::make_pair(N->getOperand(0),
                                                N->getOperand(1)),
-                                cast<SetCCSDNode>(N)->getCondition()));
+                                std::make_pair(
+                                     cast<SetCCSDNode>(N)->getCondition(),
+                                     N->getValueType(0))));
     break;
   case ISD::TRUNCSTORE:
   case ISD::SIGN_EXTEND_INREG:
@@ -463,7 +465,8 @@ SDOperand SelectionDAG::getSetCC(ISD::CondCode Cond, MVT::ValueType VT,
     }
   }
 
-  SetCCSDNode *&N = SetCCs[std::make_pair(std::make_pair(N1, N2), Cond)];
+  SetCCSDNode *&N = SetCCs[std::make_pair(std::make_pair(N1, N2),
+                                          std::make_pair(Cond, VT))];
   if (N) return SDOperand(N, 0);
   N = new SetCCSDNode(Cond, N1, N2);
   N->setValueTypes(VT);