diff options
author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2014-12-17 21:04:08 +0000 |
---|---|---|
committer | Matt Arsenault <Matthew.Arsenault@amd.com> | 2014-12-17 21:04:08 +0000 |
commit | 303011a0059039a9635db856e0b4bb5d4df12347 (patch) | |
tree | 755c1810fc463a84bae7f6de16c6f912eb7922dd /llvm/lib/Target/R600/AMDGPUMCInstLower.cpp | |
parent | d663fdd2165d39862f7d466412b0321a776070f2 (diff) | |
download | bcm5719-llvm-303011a0059039a9635db856e0b4bb5d4df12347.tar.gz bcm5719-llvm-303011a0059039a9635db856e0b4bb5d4df12347.zip |
R600/SI: Fix f64 inline immediates
llvm-svn: 224458
Diffstat (limited to 'llvm/lib/Target/R600/AMDGPUMCInstLower.cpp')
-rw-r--r-- | llvm/lib/Target/R600/AMDGPUMCInstLower.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/llvm/lib/Target/R600/AMDGPUMCInstLower.cpp b/llvm/lib/Target/R600/AMDGPUMCInstLower.cpp index 2dcebf5f7e1..84ee7842a72 100644 --- a/llvm/lib/Target/R600/AMDGPUMCInstLower.cpp +++ b/llvm/lib/Target/R600/AMDGPUMCInstLower.cpp @@ -70,9 +70,14 @@ void AMDGPUMCInstLower::lower(const MachineInstr *MI, MCInst &OutMI) const { llvm_unreachable("unknown operand type"); case MachineOperand::MO_FPImmediate: { const APFloat &FloatValue = MO.getFPImm()->getValueAPF(); - assert(&FloatValue.getSemantics() == &APFloat::IEEEsingle && - "Only floating point immediates are supported at the moment."); - MCOp = MCOperand::CreateFPImm(FloatValue.convertToFloat()); + + if (&FloatValue.getSemantics() == &APFloat::IEEEsingle) + MCOp = MCOperand::CreateFPImm(FloatValue.convertToFloat()); + else if (&FloatValue.getSemantics() == &APFloat::IEEEdouble) + MCOp = MCOperand::CreateFPImm(FloatValue.convertToDouble()); + else + llvm_unreachable("Unhandled floating point type"); + break; } case MachineOperand::MO_Immediate: |