Home | History | Annotate | Download | only in SelectionDAG

Lines Matching refs:FNEG

391   // fneg is removable even if it has multiple uses.
392 if (Op.getOpcode() == ISD::FNEG) return 2;
415 // fold (fsub (fadd A, B)) -> (fsub (fneg A), B)
419 // fold (fneg (fadd A, B)) -> (fsub (fneg B), A)
426 // fold (fneg (fsub A, B)) -> (fsub B, A)
433 // fold (fneg (fmul X, Y)) -> (fmul (fneg X), Y) or (fmul X, (fneg Y))
453 // fneg is removable even if it has multiple uses.
454 if (Op.getOpcode() == ISD::FNEG) return Op.getOperand(0);
471 // fold (fneg (fadd A, B)) -> (fsub (fneg A), B)
479 // fold (fneg (fadd A, B)) -> (fsub (fneg B), A)
488 // fold (fneg (fsub 0, B)) -> B
493 // fold (fneg (fsub A, B)) -> (fsub B, A)
501 // fold (fneg (fmul X, Y)) -> (fmul (fneg X), Y)
510 // fold (fneg (fmul X, Y)) -> (fmul X, (fneg Y))
1144 case ISD::FNEG: return visitFNEG(N);
5383 // fold (bitconvert (fneg x)) -> (xor (bitconvert x), signbit)
5386 if (((N0.getOpcode() == ISD::FNEG && !TLI.isFNegFree(VT)) ||
5394 if (N0.getOpcode() == ISD::FNEG)
5405 // folded to an fneg or fabs.
5620 // fold (fadd A, (fneg B)) -> (fsub A, B)
5625 // fold (fadd (fneg A), B) -> (fsub B, A)
5667 if (!LegalOperations || TLI.isOperationLegal(ISD::FNEG, VT))
5668 return DAG.getNode(ISD::FNEG, N->getDebugLoc(), VT, N1);
5670 // fold (fsub A, (fneg B)) -> (fadd A, B)
5676 // (fsub x, (fadd x, y)) -> (fneg y) &
5677 // (fsub x, (fadd y, x)) -> (fneg y)
5726 // fold (fmul X, -1.0) -> (fneg X)
5728 if (!LegalOperations || TLI.isOperationLegal(ISD::FNEG, VT))
5729 return DAG.getNode(ISD::FNEG, N->getDebugLoc(), VT, N0);
5731 // fold (fmul (fneg X), (fneg Y)) -> (fmul X, Y)
5793 // (fdiv (fneg X), (fneg Y)) -> (fdiv X, Y)
5837 // copysign(x, c1) -> fneg(fabs(x)) iff isneg(c1)
5842 if (!LegalOperations || TLI.isOperationLegal(ISD::FNEG, VT))
5843 return DAG.getNode(ISD::FNEG, N->getDebugLoc(), VT,
5849 // copysign(fneg(x), y) -> copysign(x, y)
5851 if (N0.getOpcode() == ISD::FABS || N0.getOpcode() == ISD::FNEG ||
6054 // Transform fneg(bitconvert(x)) -> bitconvert(x^sign) to avoid loading
6085 // fold (fabs (fneg x)) -> (fabs x)
6087 if (N0.getOpcode() == ISD::FNEG || N0.getOpcode() == ISD::FCOPYSIGN)
8226 // select (setg[te] X, +/-0.0), X, fneg(X) -> fabs
8228 N0 == N2 && N3.getOpcode() == ISD::FNEG &&
8232 // select (setl[te] X, +/-0.0), fneg(X), X -> fabs
8234 N0 == N3 && N2.getOpcode() == ISD::FNEG &&