]> granicus.if.org Git - llvm/commitdiff
[Sparc] Respect hasHardQuad parameter correctly when lowering SINT_TO_FP with fp128...
authorVenkatraman Govindaraju <venkatra@cs.wisc.edu>
Sat, 5 Oct 2013 00:31:41 +0000 (00:31 +0000)
committerVenkatraman Govindaraju <venkatra@cs.wisc.edu>
Sat, 5 Oct 2013 00:31:41 +0000 (00:31 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192015 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/Sparc/SparcISelLowering.cpp
test/CodeGen/SPARC/fp128.ll

index cdba998244ce77b9ca2f2119b2956c244821a1bf..32e02698f3f6739ada50ce3dc1430a78344b2cd7 100644 (file)
@@ -2046,7 +2046,7 @@ static SDValue LowerSINT_TO_FP(SDValue Op, SelectionDAG &DAG,
   assert(Op.getOperand(0).getValueType() == MVT::i32);
   SDValue Tmp = DAG.getNode(ISD::BITCAST, dl, MVT::f32, Op.getOperand(0));
   // Convert the int value to FP in an FP register.
-  if (Op.getValueType() == MVT::f128 && hasHardQuad)
+  if (Op.getValueType() == MVT::f128 && !hasHardQuad)
     return TLI.LowerF128Op(Op, DAG,
                            TLI.getLibcallName(RTLIB::SINTTOFP_I32_F128), 1);
   return DAG.getNode(SPISD::ITOF, dl, Op.getValueType(), Tmp);
index e3d361335d8ed7cb3797484828bab9d0c740569c..2406af753fa301902c8b2d58f1232ca093fa554e 100644 (file)
@@ -113,3 +113,16 @@ entry:
 }
 
 declare fp128 @llvm.fabs.f128(fp128) nounwind readonly
+
+; HARD-LABEL: int_to_f128
+; HARD:       fitoq
+
+; SOFT-LABEL: int_to_f128
+; SOFT:       _Q_itoq
+
+define void @int_to_f128(fp128* noalias sret %scalar.result, i32 %i) {
+entry:
+  %0 = sitofp i32 %i to fp128
+  store fp128 %0, fp128* %scalar.result, align 8
+  ret void
+}