From e32ab4bd477def42ce4758a8e16eb28f2ce148ae Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Sat, 8 Jan 2005 06:24:30 +0000 Subject: [PATCH] 1ULL << 64 is undefined, don't do it. llvm-svn: 19365 --- lib/CodeGen/SelectionDAG/SelectionDAG.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/CodeGen/SelectionDAG/SelectionDAG.cpp b/lib/CodeGen/SelectionDAG/SelectionDAG.cpp index 357275eb244..4ad651718f5 100644 --- a/lib/CodeGen/SelectionDAG/SelectionDAG.cpp +++ b/lib/CodeGen/SelectionDAG/SelectionDAG.cpp @@ -218,8 +218,9 @@ SelectionDAG::~SelectionDAG() { SDOperand SelectionDAG::getConstant(uint64_t Val, MVT::ValueType VT) { assert(MVT::isInteger(VT) && "Cannot create FP integer constant!"); // Mask out any bits that are not valid for this constant. - Val &= (1ULL << MVT::getSizeInBits(VT)) - 1; - + if (VT != MVT::i64) + Val &= ((uint64_t)1 << MVT::getSizeInBits(VT)) - 1; + SDNode *&N = Constants[std::make_pair(Val, VT)]; if (N) return SDOperand(N, 0); N = new ConstantSDNode(Val, VT);