reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

lib/CodeGen/SelectionDAG/DAGCombiner.cpp
 2420   EVT VT = N0.getValueType();
 2426     return DAG.getNode(ISD::SUB, DL, VT, N0,
 2431   if (SDValue V = foldAddSubMasked1(true, N0, N1, DAG, DL))
 2438   if (!TLI.preferIncOfAddToSubOfNot(VT) && N0.hasOneUse() &&
 2439       N0.getOpcode() == ISD::ADD && isOneOrOneSplat(N0.getOperand(1))) {
 2439       N0.getOpcode() == ISD::ADD && isOneOrOneSplat(N0.getOperand(1))) {
 2440     SDValue Not = DAG.getNode(ISD::XOR, DL, VT, N0.getOperand(0),
 2448   if (N0.hasOneUse() && N0.getOpcode() == ISD::SUB &&
 2448   if (N0.hasOneUse() && N0.getOpcode() == ISD::SUB &&
 2449       isConstantOrConstantVector(N0.getOperand(1), /*NoOpaques=*/true)) {
 2450     SDValue Add = DAG.getNode(ISD::ADD, DL, VT, N0.getOperand(0), N1);
 2451     return DAG.getNode(ISD::SUB, DL, VT, Add, N0.getOperand(1));
 2455   if (N0.hasOneUse() && N0.getOpcode() == ISD::SUB &&
 2455   if (N0.hasOneUse() && N0.getOpcode() == ISD::SUB &&
 2456       isConstantOrConstantVector(N0.getOperand(0), /*NoOpaques=*/true)) {
 2457     SDValue Sub = DAG.getNode(ISD::SUB, DL, VT, N1, N0.getOperand(1));
 2458     return DAG.getNode(ISD::ADD, DL, VT, Sub, N0.getOperand(0));
 2464   if (N0.getOpcode() == ISD::SIGN_EXTEND &&
 2465       N0.getOperand(0).getScalarValueSizeInBits() == 1 &&
 2467     SDValue ZExt = DAG.getNode(ISD::ZERO_EXTEND, DL, VT, N0.getOperand(0));
 2477       return DAG.getNode(ISD::SUB, DL, VT, N0, ZExt);
 2485                        N0, N1.getOperand(0), N1.getOperand(2));
 2491                          DAG.getVTList(VT, Carry.getValueType()), N0,