More APInt-ification.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47864 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp b/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
index c28c2f9..0dc4447 100644
--- a/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
+++ b/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
@@ -5760,9 +5760,10 @@
Hi = DAG.getNode(ISD::UNDEF, NVT);
break;
case ISD::Constant: {
- uint64_t Cst = cast<ConstantSDNode>(Node)->getValue();
- Lo = DAG.getConstant(Cst, NVT);
- Hi = DAG.getConstant(Cst >> MVT::getSizeInBits(NVT), NVT);
+ unsigned NVTBits = MVT::getSizeInBits(NVT);
+ const APInt &Cst = cast<ConstantSDNode>(Node)->getAPIntValue();
+ Lo = DAG.getConstant(APInt(Cst).trunc(NVTBits), NVT);
+ Hi = DAG.getConstant(Cst.lshr(NVTBits).trunc(NVTBits), NVT);
break;
}
case ISD::ConstantFP: {