mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-02-21 21:11:36 +00:00
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:
parent
988ec9ddfa
commit
2b0935a094
@ -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;
|
||||
}
|
||||
|
||||
|
||||
|
15
test/CodeGen/Mips/mips64sinttofpsf.ll
Normal file
15
test/CodeGen/Mips/mips64sinttofpsf.ll
Normal 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
|
||||
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user