Fix makeLibCall argument (signed) in SoftenFloatRes_XINT_TO_FP function

The isSigned argument of makeLibCall function was hard-coded to false
(unsigned). This caused zero extension on MIPS64 soft float.
As the result SingleSource/Benchmarks/Stanford/FloatMM test and
SingleSource/UnitTests/2005-07-17-INT-To-FP test failed. 
The solution was to use the proper argument.

Patch by Strahinja Petrovic.

Differential Revision: http://reviews.llvm.org/D7292

llvm-svn: 228765
This commit is contained in:
Petar Jovanovic 2015-02-10 23:30:14 +00:00
parent 988ec9ddfa
commit 2b0935a094
2 changed files with 16 additions and 1 deletions

View File

@ -658,7 +658,7 @@ SDValue DAGTypeLegalizer::SoftenFloatRes_XINT_TO_FP(SDNode *N) {
NVT, N->getOperand(0));
return TLI.makeLibCall(DAG, LC,
TLI.getTypeToTransformTo(*DAG.getContext(), RVT),
&Op, 1, false, dl).first;
&Op, 1, Signed, dl).first;
}

View File

@ -0,0 +1,15 @@
; RUN: llc -march=mips64 -mcpu=mips64r2 -soft-float -O0 < %s | FileCheck %s
define double @foo() #0 {
entry:
%x = alloca i32, align 4
store volatile i32 -32, i32* %x, align 4
%0 = load volatile i32* %x, align 4
%conv = sitofp i32 %0 to double
ret double %conv
; CHECK-NOT: dsll
; CHECK-NOT: dsrl
}