From ea9d4d6ab0e3e37e2c0d62e4981df79b82d7ef96 Mon Sep 17 00:00:00 2001 From: Bruno Cardoso Lopes Date: Mon, 4 Aug 2008 06:44:31 +0000 Subject: [PATCH] Handle i32->f32 bitconvert results. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54315 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/Mips/MipsISelLowering.cpp | 2 +- lib/Target/Mips/MipsInstrFPU.td | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/Target/Mips/MipsISelLowering.cpp b/lib/Target/Mips/MipsISelLowering.cpp index b4c795b7d9f..04ef9588a6b 100644 --- a/lib/Target/Mips/MipsISelLowering.cpp +++ b/lib/Target/Mips/MipsISelLowering.cpp @@ -138,7 +138,7 @@ MipsTargetLowering(MipsTargetMachine &TM): TargetLowering(TM) setOperationAction(ISD::STACKRESTORE, MVT::Other, Expand); setOperationAction(ISD::MEMBARRIER, MVT::Other, Expand); - if (Subtarget->isSingleFloat()) + if (Subtarget->isSingleFloat()) setOperationAction(ISD::SELECT_CC, MVT::f64, Expand); if (!Subtarget->hasSEInReg()) { diff --git a/lib/Target/Mips/MipsInstrFPU.td b/lib/Target/Mips/MipsInstrFPU.td index 312cc0b2adb..8e05ac50a9a 100644 --- a/lib/Target/Mips/MipsInstrFPU.td +++ b/lib/Target/Mips/MipsInstrFPU.td @@ -339,3 +339,8 @@ def : Pat<(i32 (fp_to_sint AFGR32:$src)), (MFC1A (TRUNC_W_AS32 AFGR32:$src))>; def : Pat<(i32 (bitconvert FGR32:$src)), (MFC1 FGR32:$src)>; def : Pat<(i32 (bitconvert AFGR32:$src)), (MFC1A AFGR32:$src)>; + +def : Pat<(f32 (bitconvert CPURegs:$src)), (MTC1 CPURegs:$src)>, + Requires<[IsSingleFloat]>; +def : Pat<(f32 (bitconvert CPURegs:$src)), (MTC1A CPURegs:$src)>, + Requires<[In32BitMode]>;