Home | History | Annotate | Download | only in SelectionDAG

Lines Matching refs:FABS

1256   case ISD::FABS:               return visitFABS(N);
6252 // fold (bitconvert (fabs x)) -> (and (bitconvert x), (not signbit))
6255 (N0.getOpcode() == ISD::FABS && !TLI.isFAbsFree(N0.getValueType()))) &&
6266 assert(N0.getOpcode() == ISD::FABS);
6274 // folded to an fneg or fabs.
6983 // copysign(x, c1) -> fabs(x) iff ispos(c1)
6984 // copysign(x, c1) -> fneg(fabs(x)) iff isneg(c1)
6986 if (!LegalOperations || TLI.isOperationLegal(ISD::FABS, VT))
6987 return DAG.getNode(ISD::FABS, SDLoc(N), VT, N0);
6991 DAG.getNode(ISD::FABS, SDLoc(N0), VT, N0));
6995 // copysign(fabs(x), y) -> copysign(x, y)
6998 if (N0.getOpcode() == ISD::FABS || N0.getOpcode() == ISD::FNEG ||
7004 if (N1.getOpcode() == ISD::FABS)
7005 return DAG.getNode(ISD::FABS, SDLoc(N), VT, N0);
7328 // fold (fabs c1) -> fabs(c1)
7330 return DAG.getNode(ISD::FABS, SDLoc(N), VT, N0);
7331 // fold (fabs (fabs x)) -> (fabs x)
7332 if (N0.getOpcode() == ISD::FABS)
7334 // fold (fabs (fneg x)) -> (fabs x)
7335 // fold (fabs (fcopysign x, y)) -> (fabs x)
7337 return DAG.getNode(ISD::FABS, SDLoc(N), VT, N0.getOperand(0));
7339 // Transform fabs(bitconvert(x)) -> bitconvert(x&~sign) to avoid loading
10930 /// SimplifyVUnaryOp - Visit a binary vector operation, like FABS/FNEG.
10974 // Otherwise, just return whatever node we got back, like fabs.
11131 // Check to see if we can simplify the select into an fabs node
11135 // select (setg[te] X, +/-0.0), X, fneg(X) -> fabs
11139 return DAG.getNode(ISD::FABS, DL, VT, N0);
11141 // select (setl[te] X, +/-0.0), fneg(X), X -> fabs
11145 return DAG.getNode(ISD::FABS, DL, VT, N3);