forked from OSchip/llvm-project
Fix bug 13532.
In SelectionDAGLegalize::ExpandLegalINT_TO_FP, expand INT_TO_FP nodes without using any f64 operations if f64 is not a legal type. Patch by Stefan Kristiansson. llvm-svn: 162728
This commit is contained in:
parent
686f2ee226
commit
adb14f56c7
|
@ -2042,7 +2042,7 @@ SDValue SelectionDAGLegalize::ExpandLegalINT_TO_FP(bool isSigned,
|
|||
SDValue Op0,
|
||||
EVT DestVT,
|
||||
DebugLoc dl) {
|
||||
if (Op0.getValueType() == MVT::i32) {
|
||||
if (Op0.getValueType() == MVT::i32 && TLI.isTypeLegal(MVT::f64)) {
|
||||
// simple 32-bit [signed|unsigned] integer to float/double expansion
|
||||
|
||||
// Get the stack frame index of a 8 byte buffer.
|
||||
|
|
|
@ -0,0 +1,12 @@
|
|||
; RUN: llc -march=mips -mattr=+single-float < %s
|
||||
|
||||
define void @f0() nounwind {
|
||||
entry:
|
||||
%b = alloca i32, align 4
|
||||
%a = alloca float, align 4
|
||||
store volatile i32 1, i32* %b, align 4
|
||||
%0 = load volatile i32* %b, align 4
|
||||
%conv = uitofp i32 %0 to float
|
||||
store float %conv, float* %a, align 4
|
||||
ret void
|
||||
}
|
Loading…
Reference in New Issue