Home | History | Annotate | Download | only in SelectionDAG

Lines Matching full:fsub

431         !TLI.isOperationLegalOrCustom(ISD::FSUB,  Op.getValueType()))
434 // fold (fneg (fadd A, B)) -> (fsub (fneg A), B)
438 // fold (fneg (fadd A, B)) -> (fsub (fneg B), A)
441 case ISD::FSUB:
445 // fold (fneg (fsub A, B)) -> (fsub B, A)
490 // fold (fneg (fadd A, B)) -> (fsub (fneg A), B)
494 return DAG.getNode(ISD::FSUB, SDLoc(Op), Op.getValueType(),
498 // fold (fneg (fadd A, B)) -> (fsub (fneg B), A)
499 return DAG.getNode(ISD::FSUB, SDLoc(Op), Op.getValueType(),
503 case ISD::FSUB:
507 // fold (fneg (fsub 0, B)) -> B
512 // fold (fneg (fsub A, B)) -> (fsub B, A)
513 return DAG.getNode(ISD::FSUB, SDLoc(Op), Op.getValueType(),
1150 case ISD::FSUB: return visitFSUB(N);
5918 // fold (fadd A, (fneg B)) -> (fsub A, B)
5919 if ((!LegalOperations || TLI.isOperationLegalOrCustom(ISD::FSUB, VT)) &&
5921 return DAG.getNode(ISD::FSUB, SDLoc(N), VT, N0,
5923 // fold (fadd (fneg A), B) -> (fsub B, A)
5924 if ((!LegalOperations || TLI.isOperationLegalOrCustom(ISD::FSUB, VT)) &&
5926 return DAG.getNode(ISD::FSUB, SDLoc(N), VT, N1,
6119 // fold (fsub c1, c2) -> c1-c2
6121 return DAG.getNode(ISD::FSUB, SDLoc(N), VT, N0, N1);
6122 // fold (fsub A, 0) -> A
6126 // fold (fsub 0, B) -> -B
6134 // fold (fsub A, (fneg B)) -> (fadd A, B)
6140 // (fsub x, x) -> 0.0 &
6141 // (fsub x, (fadd x, y)) -> (fneg y) &
6142 // (fsub x, (fadd y, x)) -> (fneg y)
6161 // FSUB -> FMA combines:
6167 // fold (fsub
6173 // fold (fsub x, (fmul y, z)) -> (fma (fneg y), z, x)
6174 // Note: Commutes FSUB operands.
6181 // fold (fsub (fneg (fmul, x, y)), z) -> (fma (fneg x), y, (fneg z))