[llvm-commits] [llvm] r48201 - /llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
Dan Gohman
gohman at apple.com
Mon Mar 10 17:11:06 PDT 2008
Author: djg
Date: Mon Mar 10 19:11:06 2008
New Revision: 48201
URL: http://llvm.org/viewvc/llvm-project?rev=48201&view=rev
Log:
More APInt-ification.
Modified:
llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
Modified: llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp?rev=48201&r1=48200&r2=48201&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp (original)
+++ llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp Mon Mar 10 19:11:06 2008
@@ -495,7 +495,7 @@
if (!UseCP) {
if (VT!=MVT::f64 && VT!=MVT::f32)
assert(0 && "Invalid type expansion");
- return DAG.getConstant(LLVMC->getValueAPF().convertToAPInt().getZExtValue(),
+ return DAG.getConstant(LLVMC->getValueAPF().convertToAPInt(),
(VT == MVT::f64) ? MVT::i64 : MVT::i32);
}
@@ -2331,8 +2331,8 @@
if (ConstantFPSDNode *CFP = dyn_cast<ConstantFPSDNode>(ST->getValue())) {
if (CFP->getValueType(0) == MVT::f32 &&
getTypeAction(MVT::i32) == Legal) {
- Tmp3 = DAG.getConstant((uint32_t)CFP->getValueAPF().
- convertToAPInt().getZExtValue(),
+ Tmp3 = DAG.getConstant(CFP->getValueAPF().
+ convertToAPInt().zextOrTrunc(32),
MVT::i32);
Result = DAG.getStore(Tmp1, Tmp3, Tmp2, ST->getSrcValue(),
SVOffset, isVolatile, Alignment);
@@ -2341,7 +2341,7 @@
// If this target supports 64-bit registers, do a single 64-bit store.
if (getTypeAction(MVT::i64) == Legal) {
Tmp3 = DAG.getConstant(CFP->getValueAPF().convertToAPInt().
- getZExtValue(), MVT::i64);
+ zextOrTrunc(64), MVT::i64);
Result = DAG.getStore(Tmp1, Tmp3, Tmp2, ST->getSrcValue(),
SVOffset, isVolatile, Alignment);
break;
@@ -2349,9 +2349,9 @@
// Otherwise, if the target supports 32-bit registers, use 2 32-bit
// stores. If the target supports neither 32- nor 64-bits, this
// xform is certainly not worth it.
- uint64_t IntVal =CFP->getValueAPF().convertToAPInt().getZExtValue();
- SDOperand Lo = DAG.getConstant(uint32_t(IntVal), MVT::i32);
- SDOperand Hi = DAG.getConstant(uint32_t(IntVal >>32), MVT::i32);
+ const APInt &IntVal =CFP->getValueAPF().convertToAPInt();
+ SDOperand Lo = DAG.getConstant(APInt(IntVal).trunc(32), MVT::i32);
+ SDOperand Hi = DAG.getConstant(IntVal.lshr(32).trunc(32), MVT::i32);
if (TLI.isBigEndian()) std::swap(Lo, Hi);
Lo = DAG.getStore(Tmp1, Lo, Tmp2, ST->getSrcValue(),
More information about the llvm-commits
mailing list