llvm.fmuladd.* lowering should be checking isOperationLegalOrCustom, rather than
authorLang Hames <lhames@gmail.com>
Thu, 22 Nov 2012 03:31:45 +0000 (03:31 +0000)
committerLang Hames <lhames@gmail.com>
Thu, 22 Nov 2012 03:31:45 +0000 (03:31 +0000)
isOperationLegal. Thanks to Craig Topper for pointing this out.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168485 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp

index 3396d648530774e6a298af1dea5e25e3acab86e4..ae94d1e66618df8be1b3c89fe509021c72373ab5 100644 (file)
@@ -4994,7 +4994,7 @@ SelectionDAGBuilder::visitIntrinsicCall(const CallInst &I, unsigned Intrinsic) {
   case Intrinsic::fmuladd: {
     EVT VT = TLI.getValueType(I.getType());
     if (TM.Options.AllowFPOpFusion != FPOpFusion::Strict &&
-        TLI.isOperationLegal(ISD::FMA, VT) &&
+        TLI.isOperationLegalOrCustom(ISD::FMA, VT) &&
         TLI.isFMAFasterThanMulAndAdd(VT)){
       setValue(&I, DAG.getNode(ISD::FMA, dl,
                                getValue(I.getArgOperand(0)).getValueType(),