Home | History | Annotate | Download | only in SelectionDAG

Lines Matching refs:FMA

1152   case ISD::FMA:                return visitFMA(N);
6084 // FADD -> FMA combines:
6088 (!LegalOperations || TLI.isOperationLegalOrCustom(ISD::FMA, VT))) {
6090 // fold (fadd (fmul x, y), z) -> (fma x, y, z)
6092 return DAG.getNode(ISD::FMA, SDLoc(N), VT,
6095 // fold (fadd x, (fmul y, z)) -> (fma y, z, x)
6098 return DAG.getNode(ISD::FMA, SDLoc(N), VT,
6161 // FSUB -> FMA combines:
6165 (!LegalOperations || TLI.isOperationLegalOrCustom(ISD::FMA, VT))) {
6167 fma x, y, (fneg z))
6169 return DAG.getNode(ISD::FMA, dl, VT,
6173 // fold (fsub x, (fmul y, z)) -> (fma (fneg y), z, x)
6176 return DAG.getNode(ISD::FMA, dl, VT,
6181 // fold (fsub (fneg (fmul, x, y)), z) -> (fma (fneg x), y, (fneg z))
6187 return DAG.getNode(ISD::FMA, dl, VT,
6280 // Canonicalize (fma c, x, y) -> (fma x, c, y)
6282 return DAG.getNode(ISD::FMA, SDLoc(N), VT, N1, N0, N2);
6284 // (fma x, c1, (fmul x, c2)) -> (fmul x, c1+c2)
6294 // (fma (fmul x, c1), c2, y) -> (fma x, c1*c2, y)
6298 return DAG.getNode(ISD::FMA, dl, VT,
6304 // (fma x, 1, y) -> (fadd x, y)
6305 // (fma x, -1, y) -> (fadd (fneg x), y)
6318 // (fma x, c, x) -> (fmul x, (c+1))
6324 // (fma x, c, (fneg x)) -> (fmul x, (c-1))