From 32381d7c7e082c99eff626750c050edccba4113d Mon Sep 17 00:00:00 2001 From: Sanjay Patel Date: Fri, 23 Mar 2018 21:18:12 +0000 Subject: [PATCH] [InstCombine] simplify code for FP intrinsic shrinking; NFCI llvm-svn: 328372 --- llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp b/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp index 26ec338..bdd1a58 100644 --- a/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp +++ b/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp @@ -2070,17 +2070,12 @@ Instruction *InstCombiner::visitCallInst(CallInst &CI) { case Intrinsic::rint: case Intrinsic::trunc: { Value *ExtSrc; - if (match(II->getArgOperand(0), m_FPExt(m_Value(ExtSrc))) && - II->getArgOperand(0)->hasOneUse()) { - // fabs (fpext x) -> fpext (fabs x) - Value *F = Intrinsic::getDeclaration(II->getModule(), II->getIntrinsicID(), - { ExtSrc->getType() }); - CallInst *NewFabs = Builder.CreateCall(F, ExtSrc); - NewFabs->copyFastMathFlags(II); - NewFabs->takeName(II); - return new FPExtInst(NewFabs, II->getType()); + if (match(II->getArgOperand(0), m_OneUse(m_FPExt(m_Value(ExtSrc))))) { + // Narrow the call: intrinsic (fpext x) -> fpext (intrinsic x) + Value *NarrowII = Builder.CreateIntrinsic(II->getIntrinsicID(), + { ExtSrc }, II); + return new FPExtInst(NarrowII, II->getType()); } - break; } case Intrinsic::cos: -- 2.7.4