From 8b2d42c9494a42c8b5b9e5c2e46c8001b89e75b5 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Sat, 3 Mar 2007 23:43:21 +0000 Subject: [PATCH] Fix CodeGen/Generic/fpowi-promote.ll and PR1239 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34893 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/CodeGen/SelectionDAG/LegalizeDAG.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp b/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp index 357e2cd9f15..84a381bf633 100644 --- a/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp +++ b/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp @@ -3328,6 +3328,18 @@ SDOperand SelectionDAGLegalize::PromoteOp(SDOperand Op) { DAG.getValueType(VT)); break; + case ISD::FPOWI: { + // Promote f32 powi to f64 powi. Note that this could insert a libcall + // directly as well, which may be better. + Tmp1 = PromoteOp(Node->getOperand(0)); + assert(Tmp1.getValueType() == NVT); + Result = DAG.getNode(ISD::FPOWI, NVT, Tmp1, Node->getOperand(1)); + if (NoExcessFPPrecision) + Result = DAG.getNode(ISD::FP_ROUND_INREG, NVT, Result, + DAG.getValueType(VT)); + break; + } + case ISD::AND: case ISD::OR: case ISD::XOR: -- 2.34.1