Index: lib/Target/X86/X86ISelLowering.cpp =================================================================== --- lib/Target/X86/X86ISelLowering.cpp +++ lib/Target/X86/X86ISelLowering.cpp @@ -34179,7 +34179,9 @@ } else { assert((N->getOpcode() == X86ISD::FMADD || N->getOpcode() == ISD::FMA) && "Unexpected opcode!"); - return DAG.getNode(NewOpcode, dl, VT, A, B, C); + if (NewOpcode != N->getOpcode()) + return DAG.getNode(NewOpcode, dl, VT, A, B, C); + return SDValue(); } return DAG.getNode(NewOpcode, dl, VT, A, B, C, N->getOperand(3));