1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-25 20:23:11 +01:00

llvm.fmuladd.* lowering should be checking isOperationLegalOrCustom, rather than

isOperationLegal. Thanks to Craig Topper for pointing this out.

llvm-svn: 168485
This commit is contained in:
Lang Hames 2012-11-22 03:31:45 +00:00
parent b9c4f4e95e
commit 313cf13f6d

View File

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