summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/SelectionDAG
diff options
context:
space:
mode:
authorAnton Korobeynikov <asl@math.spbu.ru>2010-03-14 18:42:15 +0000
committerAnton Korobeynikov <asl@math.spbu.ru>2010-03-14 18:42:15 +0000
commit39ed49df718af5a4a7617b2a1c4110a7be740fbf (patch)
treeda352dedbf2457e6ff78234d7cc193f19ac98eea /llvm/lib/CodeGen/SelectionDAG
parentb975fa6d9bf04b995e63bbd2ef4c51b8cc2c595c (diff)
downloadbcm5719-llvm-39ed49df718af5a4a7617b2a1c4110a7be740fbf.tar.gz
bcm5719-llvm-39ed49df718af5a4a7617b2a1c4110a7be740fbf.zip
Add DAG nodes to represent FP16 <-> FP32 intrinsics
llvm-svn: 98500
Diffstat (limited to 'llvm/lib/CodeGen/SelectionDAG')
-rw-r--r--llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
index fc14e9047ea..a034b4cc514 100644
--- a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
@@ -4000,6 +4000,14 @@ SelectionDAGBuilder::visitIntrinsicCall(CallInst &I, unsigned Intrinsic) {
case Intrinsic::pow:
visitPow(I);
return 0;
+ case Intrinsic::convert_to_fp16:
+ setValue(&I, DAG.getNode(ISD::FP32_TO_FP16, dl,
+ MVT::i16, getValue(I.getOperand(1))));
+ return 0;
+ case Intrinsic::convert_from_fp16:
+ setValue(&I, DAG.getNode(ISD::FP16_TO_FP32, dl,
+ MVT::f32, getValue(I.getOperand(1))));
+ return 0;
case Intrinsic::pcmarker: {
SDValue Tmp = getValue(I.getOperand(1));
DAG.setRoot(DAG.getNode(ISD::PCMARKER, dl, MVT::Other, getRoot(), Tmp));
OpenPOWER on IntegriCloud