Two more test cases: or_ops.ll (arithmetic or operations) and vecinsert.ll
(vector insertions)
llvm-svn: 45216
diff --git a/llvm/lib/Target/CellSPU/SPUISelLowering.cpp b/llvm/lib/Target/CellSPU/SPUISelLowering.cpp
index 253fafb..7d22187 100644
--- a/llvm/lib/Target/CellSPU/SPUISelLowering.cpp
+++ b/llvm/lib/Target/CellSPU/SPUISelLowering.cpp
@@ -880,13 +880,12 @@
assert((FP != 0) &&
"LowerConstantFP: Node is not ConstantFPSDNode");
- const APFloat &apf = FP->getValueAPF();
-
if (VT == MVT::f32) {
+ float targetConst = FP->getValueAPF().convertToFloat();
return DAG.getNode(SPUISD::SFPConstant, VT,
- DAG.getTargetConstantFP(apf.convertToFloat(), VT));
+ DAG.getTargetConstantFP(targetConst, VT));
} else if (VT == MVT::f64) {
- uint64_t dbits = DoubleToBits(apf.convertToDouble());
+ uint64_t dbits = DoubleToBits(FP->getValueAPF().convertToDouble());
return DAG.getNode(ISD::BIT_CONVERT, VT,
LowerConstant(DAG.getConstant(dbits, MVT::i64), DAG));
}