Home | History | Annotate | Download | only in SelectionDAG

Lines Matching refs:FABS

1425   case ISD::FABS:               return visitFABS(N);
7319 // fold (bitconvert (fabs x)) -> (and (bitconvert x), (not signbit))
7325 // fold (bitcast (fabs x)) ->
7330 (N0.getOpcode() == ISD::FABS && !TLI.isFAbsFree(N0.getValueType()))) &&
7347 assert(N0.getOpcode() == ISD::FABS);
7365 assert(N0.getOpcode() == ISD::FABS);
7373 // folded to an fneg or fabs.
8822 // copysign(x, c1) -> fabs(x) iff ispos(c1)
8823 // copysign(x, c1) -> fneg(fabs(x)) iff isneg(c1)
8825 if (!LegalOperations || TLI.isOperationLegal(ISD::FABS, VT))
8826 return DAG.getNode(ISD::FABS, SDLoc(N), VT, N0);
8830 DAG.getNode(ISD::FABS, SDLoc(N0), VT, N0));
8834 // copysign(fabs(x), y) -> copysign(x, y)
8837 if (N0.getOpcode() == ISD::FABS || N0.getOpcode() == ISD::FNEG ||
8843 if (N1.getOpcode() == ISD::FABS)
8844 return DAG.getNode(ISD::FABS, SDLoc(N), VT, N0);
9172 // FIXME: FNEG and FABS have a lot in common; refactor.
9277 // fold (fabs c1) -> fabs(c1)
9279 return DAG.getNode(ISD::FABS, SDLoc(N), VT, N0);
9281 // fold (fabs (fabs x)) -> (fabs x)
9282 if (N0.getOpcode() == ISD::FABS)
9285 // fold (fabs (fneg x)) -> (fabs x)
9286 // fold (fabs (fcopysign x, y)) -> (fabs x)
9288 return DAG.getNode(ISD::FABS, SDLoc(N), VT, N0.getOperand(0));
9290 // Transform fabs(bitconvert(x)) -> bitconvert(x & ~sign) to avoid loading
13804 // Otherwise, just return whatever node we got back, like fabs.
13997 // Check to see if we can simplify the select into an fabs node
14001 // select (setg[te] X, +/-0.0), X, fneg(X) -> fabs
14005 return DAG.getNode(ISD::FABS, DL, VT, N0);
14007 // select (setl[te] X, +/-0.0), fneg(X), X -> fabs
14011 return DAG.getNode(ISD::FABS, DL, VT, N3);