diff options
| author | Bruno Cardoso Lopes <bruno.cardoso@gmail.com> | 2008-08-04 06:44:31 +0000 |
|---|---|---|
| committer | Bruno Cardoso Lopes <bruno.cardoso@gmail.com> | 2008-08-04 06:44:31 +0000 |
| commit | 2ca70df58b15543f84af2237e9ac49237f1b51f5 (patch) | |
| tree | 56c4d39c3764a69cefc35b01c4ed793eb1991dd0 | |
| parent | 77e3e86e70a98afab01752965d6bd738719b8d68 (diff) | |
| download | llvm-2ca70df58b15543f84af2237e9ac49237f1b51f5.zip llvm-2ca70df58b15543f84af2237e9ac49237f1b51f5.tar.gz llvm-2ca70df58b15543f84af2237e9ac49237f1b51f5.tar.bz2 | |
Handle i32->f32 bitconvert results.
llvm-svn: 54315
| -rw-r--r-- | llvm/lib/Target/Mips/MipsISelLowering.cpp | 2 | ||||
| -rw-r--r-- | llvm/lib/Target/Mips/MipsInstrFPU.td | 5 |
2 files changed, 6 insertions, 1 deletions
diff --git a/llvm/lib/Target/Mips/MipsISelLowering.cpp b/llvm/lib/Target/Mips/MipsISelLowering.cpp index b4c795b..04ef958 100644 --- a/llvm/lib/Target/Mips/MipsISelLowering.cpp +++ b/llvm/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/llvm/lib/Target/Mips/MipsInstrFPU.td b/llvm/lib/Target/Mips/MipsInstrFPU.td index 312cc0b..8e05ac5 100644 --- a/llvm/lib/Target/Mips/MipsInstrFPU.td +++ b/llvm/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]>; |
