OSDN Git Service

APInt-ify this.
authorDan Gohman <gohman@apple.com>
Mon, 10 Mar 2008 23:38:17 +0000 (23:38 +0000)
committerDan Gohman <gohman@apple.com>
Mon, 10 Mar 2008 23:38:17 +0000 (23:38 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48194 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/SelectionDAG/LegalizeTypesExpand.cpp

index 61ab510..9b22800 100644 (file)
@@ -106,9 +106,10 @@ void DAGTypeLegalizer::ExpandResult_UNDEF(SDNode *N,
 void DAGTypeLegalizer::ExpandResult_Constant(SDNode *N,
                                              SDOperand &Lo, SDOperand &Hi) {
   MVT::ValueType NVT = TLI.getTypeToTransformTo(N->getValueType(0));
-  uint64_t Cst = cast<ConstantSDNode>(N)->getValue();
-  Lo = DAG.getConstant(Cst, NVT);
-  Hi = DAG.getConstant(Cst >> MVT::getSizeInBits(NVT), NVT);
+  unsigned NBitWidth = MVT::getSizeInBits(NVT);
+  const APInt &Cst = cast<ConstantSDNode>(N)->getAPIntValue();
+  Lo = DAG.getConstant(APInt(Cst).trunc(NBitWidth), NVT);
+  Hi = DAG.getConstant(Cst.lshr(NBitWidth).trunc(NBitWidth), NVT);
 }
 
 void DAGTypeLegalizer::ExpandResult_BUILD_PAIR(SDNode *N,