Home | History | Annotate | Download | only in SelectionDAG

Lines Matching refs:FSUB

413         !TLI.isOperationLegalOrCustom(ISD::FSUB,  Op.getValueType()))
416 // fold (fneg (fadd A, B)) -> (fsub (fneg A), B)
420 // fold (fneg (fadd A, B)) -> (fsub (fneg B), A)
423 case ISD::FSUB:
427 // fold (fneg (fsub A, B)) -> (fsub B, A)
472 // fold (fneg (fadd A, B)) -> (fsub (fneg A), B)
476 return DAG.getNode(ISD::FSUB, Op.getDebugLoc(), Op.getValueType(),
480 // fold (fneg (fadd A, B)) -> (fsub (fneg B), A)
481 return DAG.getNode(ISD::FSUB, Op.getDebugLoc(), Op.getValueType(),
485 case ISD::FSUB:
489 // fold (fneg (fsub 0, B)) -> B
494 // fold (fneg (fsub A, B)) -> (fsub B, A)
495 return DAG.getNode(ISD::FSUB, Op.getDebugLoc(), Op.getValueType(),
1131 case ISD::FSUB: return visitFSUB(N);
5675 // fold (fadd A, (fneg B)) -> (fsub A, B)
5676 if ((!LegalOperations || TLI.isOperationLegalOrCustom(ISD::FSUB, VT)) &&
5678 return DAG.getNode(ISD::FSUB, N->getDebugLoc(), VT, N0,
5680 // fold (fadd (fneg A), B) -> (fsub B, A)
5681 if ((!LegalOperations || TLI.isOperationLegalOrCustom(ISD::FSUB, VT)) &&
5683 return DAG.getNode(ISD::FSUB, N->getDebugLoc(), VT, N1,
5852 // fold (fsub c1, c2) -> c1-c2
5854 return DAG.getNode(ISD::FSUB, N->getDebugLoc(), VT, N0, N1);
5855 // fold (fsub A, 0) -> A
5859 // fold (fsub 0, B) -> -B
5867 // fold (fsub A, (fneg B)) -> (fadd A, B)
5873 // (fsub x, x) -> 0.0 &
5874 // (fsub x, (fadd x, y)) -> (fneg y) &
5875 // (fsub x, (fadd y, x)) -> (fneg y)
5893 // FSUB -> FMA combines:
5899 // fold (fsub (fmul x, y), z) -> (fma x, y, (fneg z))
5906 // fold (fsub x, (fmul y, z)) -> (fma (fneg y), z, x)
5907 // Note: Commutes FSUB operands.
5915 // fold (fsub (-(fmul, x, y)), z) -> (fma (fneg x), y, (fneg z))