Home | History | Annotate | Download | only in SelectionDAG

Lines Matching refs:FABS

1164   case ISD::FABS:               return visitFABS(N);
5681 // fold (bitconvert (fabs x)) -> (and (bitconvert x), (not signbit))
5684 (N0.getOpcode() == ISD::FABS && !TLI.isFAbsFree(N0.getValueType()))) &&
5695 assert(N0.getOpcode() == ISD::FABS);
5703 // folded to an fneg or fabs.
6415 // copysign(x, c1) -> fabs(x) iff ispos(c1)
6416 // copysign(x, c1) -> fneg(fabs(x)) iff isneg(c1)
6418 if (!LegalOperations || TLI.isOperationLegal(ISD::FABS, VT))
6419 return DAG.getNode(ISD::FABS, SDLoc(N), VT, N0);
6423 DAG.getNode(ISD::FABS, SDLoc(N0), VT, N0));
6427 // copysign(fabs(x), y) -> copysign(x, y)
6430 if (N0.getOpcode() == ISD::FABS || N0.getOpcode() == ISD::FNEG ||
6436 if (N1.getOpcode() == ISD::FABS)
6437 return DAG.getNode(ISD::FABS, SDLoc(N), VT, N0);
6765 // fold (fabs c1) -> fabs(c1)
6767 return DAG.getNode(ISD::FABS, SDLoc(N), VT, N0);
6768 // fold (fabs (fabs x)) -> (fabs x)
6769 if (N0.getOpcode() == ISD::FABS)
6771 // fold (fabs (fneg x)) -> (fabs x)
6772 // fold (fabs (fcopysign x, y)) -> (fabs x)
6774 return DAG.getNode(ISD::FABS, SDLoc(N), VT, N0.getOperand(0));
6776 // Transform fabs(bitconvert(x)) -> bitconvert(x&~sign) to avoid loading
9593 /// SimplifyVUnaryOp - Visit a binary vector operation, like FABS/FNEG.
9638 // Otherwise, just return whatever node we got back, like fabs.
9795 // Check to see if we can simplify the select into an fabs node
9799 // select (setg[te] X, +/-0.0), X, fneg(X) -> fabs
9803 return DAG.getNode(ISD::FABS, DL, VT, N0);
9805 // select (setl[te] X, +/-0.0), fneg(X), X -> fabs
9809 return DAG.getNode(ISD::FABS, DL, VT, N3);