summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/GlobalISel/MachineLegalizeHelper.cpp
diff options
context:
space:
mode:
authorTim Northover <tnorthover@apple.com>2016-08-19 22:40:08 +0000
committerTim Northover <tnorthover@apple.com>2016-08-19 22:40:08 +0000
commita11be047696cf71bb76517d1c1d63fefa123b49b (patch)
tree51fc04c07192b0f3cd9dc23e1a201917b47c808b /llvm/lib/CodeGen/GlobalISel/MachineLegalizeHelper.cpp
parentea904f9424cc37c5ff7ac595e465ede2a10fdf0d (diff)
downloadbcm5719-llvm-a11be047696cf71bb76517d1c1d63fefa123b49b.tar.gz
bcm5719-llvm-a11be047696cf71bb76517d1c1d63fefa123b49b.zip
GlobalISel: support legalization of G_FCONSTANTs
llvm-svn: 279341
Diffstat (limited to 'llvm/lib/CodeGen/GlobalISel/MachineLegalizeHelper.cpp')
-rw-r--r--llvm/lib/CodeGen/GlobalISel/MachineLegalizeHelper.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/GlobalISel/MachineLegalizeHelper.cpp b/llvm/lib/CodeGen/GlobalISel/MachineLegalizeHelper.cpp
index 632d6292f9c..9dc2bf8864e 100644
--- a/llvm/lib/CodeGen/GlobalISel/MachineLegalizeHelper.cpp
+++ b/llvm/lib/CodeGen/GlobalISel/MachineLegalizeHelper.cpp
@@ -141,6 +141,14 @@ MachineLegalizeHelper::widenScalar(MachineInstr &MI, LLT WideTy) {
MI.eraseFromParent();
return Legalized;
}
+ case TargetOpcode::G_FCONSTANT: {
+ MIRBuilder.setInstr(MI);
+ unsigned DstExt = MRI.createGenericVirtualRegister(WideSize);
+ MIRBuilder.buildFConstant(WideTy, DstExt, *MI.getOperand(1).getFPImm());
+ MIRBuilder.buildFPTrunc(MI.getType(), MI.getOperand(0).getReg(), DstExt);
+ MI.eraseFromParent();
+ return Legalized;
+ }
}
}
OpenPOWER on IntegriCloud