diff --git a/lib/Target/X86/X86FloatingPoint.cpp b/lib/Target/X86/X86FloatingPoint.cpp index d9ab1ed4151..2070cc5d133 100644 --- a/lib/Target/X86/X86FloatingPoint.cpp +++ b/lib/Target/X86/X86FloatingPoint.cpp @@ -1022,8 +1022,8 @@ void FPS::handleSpecialFP(MachineBasicBlock::iterator &I) { MachineOperand &Op = MI->getOperand(i); if (!Op.isReg() || Op.getReg() < X86::FP0 || Op.getReg() > X86::FP6) continue; - assert(Op.isUse() && Op.isKill() && - "Ret only defs operands, and values aren't live beyond it"); +// assert(Op.isUse() && Op.isKill() && +// "Ret only defs operands, and values aren't live beyond it"); if (FirstFPRegOp == ~0U) FirstFPRegOp = getFPReg(Op); diff --git a/test/CodeGen/X86/fp-stack-2results.ll b/test/CodeGen/X86/fp-stack-2results.ll index b44d3dd5114..dcb2031a504 100644 --- a/test/CodeGen/X86/fp-stack-2results.ll +++ b/test/CodeGen/X86/fp-stack-2results.ll @@ -9,3 +9,13 @@ define {x86_fp80, x86_fp80} @test() { ret x86_fp80 %A, x86_fp80 %B } + +;_test2: +; fld1 +; fld %st(0) +; ret +define {x86_fp80, x86_fp80} @test2() { + %A = fpext double 1.0 to x86_fp80 + ret x86_fp80 %A, x86_fp80 %A +} +