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

References

lib/CodeGen/SelectionDAG/DAGCombiner.cpp
 2086     if (ISD::isBuildVectorAllZeros(N1.getNode()))
 2089       return N1;
 2096   if (N1.isUndef())
 2097     return N1;
 2101     if (!DAG.isConstantIntBuildVectorOrConstantInt(N1))
 2102       return DAG.getNode(ISD::ADD, DL, VT, N1, N0);
 2105                                       N1.getNode());
 2109   if (isNullConstant(N1))
 2112   if (isConstantOrConstantVector(N1, /* NoOpaque */ true)) {
 2116       SDValue Sub = DAG.FoldConstantArithmetic(ISD::SUB, DL, VT, N1.getNode(),
 2125       SDValue Add = DAG.FoldConstantArithmetic(ISD::ADD, DL, VT, N1.getNode(),
 2136         isOneOrOneSplat(N1)) {
 2152       SDValue Add0 = DAG.getNode(ISD::ADD, DL, VT, N1, N0.getOperand(1));
 2161   if (!reassociationCanBreakAddressingModePattern(ISD::ADD, DL, N0, N1)) {
 2162     if (SDValue RADD = reassociateOps(ISD::ADD, DL, N0, N1, N->getFlags()))
 2167     return DAG.getNode(ISD::SUB, DL, VT, N1, N0.getOperand(1));
 2170   if (N1.getOpcode() == ISD::SUB && isNullOrNullSplat(N1.getOperand(0)))
 2170   if (N1.getOpcode() == ISD::SUB && isNullOrNullSplat(N1.getOperand(0)))
 2171     return DAG.getNode(ISD::SUB, DL, VT, N0, N1.getOperand(1));
 2174   if (N1.getOpcode() == ISD::SUB && N0 == N1.getOperand(1))
 2174   if (N1.getOpcode() == ISD::SUB && N0 == N1.getOperand(1))
 2175     return N1.getOperand(0);
 2178   if (N0.getOpcode() == ISD::SUB && N1 == N0.getOperand(1))
 2182   if (N0.getOpcode() == ISD::SUB && N1.getOpcode() == ISD::SUB &&
 2183       N0.getOperand(0) == N1.getOperand(1))
 2184     return DAG.getNode(ISD::SUB, DL, VT, N1.getOperand(0),
 2188   if (N0.getOpcode() == ISD::SUB && N1.getOpcode() == ISD::SUB &&
 2189       N0.getOperand(1) == N1.getOperand(0))
 2191                        N1.getOperand(1));
 2194   if (N1.getOpcode() == ISD::SUB && N1.getOperand(1).getOpcode() == ISD::ADD &&
 2194   if (N1.getOpcode() == ISD::SUB && N1.getOperand(1).getOpcode() == ISD::ADD &&
 2195       N0 == N1.getOperand(1).getOperand(0))
 2196     return DAG.getNode(ISD::SUB, DL, VT, N1.getOperand(0),
 2197                        N1.getOperand(1).getOperand(1));
 2200   if (N1.getOpcode() == ISD::SUB && N1.getOperand(1).getOpcode() == ISD::ADD &&
 2200   if (N1.getOpcode() == ISD::SUB && N1.getOperand(1).getOpcode() == ISD::ADD &&
 2201       N0 == N1.getOperand(1).getOperand(1))
 2202     return DAG.getNode(ISD::SUB, DL, VT, N1.getOperand(0),
 2203                        N1.getOperand(1).getOperand(0));
 2206   if ((N1.getOpcode() == ISD::SUB || N1.getOpcode() == ISD::ADD) &&
 2206   if ((N1.getOpcode() == ISD::SUB || N1.getOpcode() == ISD::ADD) &&
 2207       N1.getOperand(0).getOpcode() == ISD::SUB &&
 2208       N0 == N1.getOperand(0).getOperand(1))
 2209     return DAG.getNode(N1.getOpcode(), DL, VT, N1.getOperand(0).getOperand(0),
 2209     return DAG.getNode(N1.getOpcode(), DL, VT, N1.getOperand(0).getOperand(0),
 2210                        N1.getOperand(1));
 2213   if (N0.getOpcode() == ISD::SUB && N1.getOpcode() == ISD::SUB) {
 2216     SDValue N10 = N1.getOperand(0);
 2217     SDValue N11 = N1.getOperand(1);
 2222                          DAG.getNode(ISD::ADD, SDLoc(N1), VT, N01, N11));
 2231     if (ISD::matchBinaryPredicate(N0.getOperand(1), N1, MatchUSUBSAT,
 2240   if (isOneOrOneSplat(N1)) {
 2278       isAllOnesOrAllOnesSplat(N1)) {
 2279     SDValue Xor = DAG.getNode(ISD::XOR, DL, VT, N0.getOperand(1), N1);
 2283   if (SDValue Combined = visitADDLikeCommutative(N0, N1, N))
 2286   if (SDValue Combined = visitADDLikeCommutative(N1, N0, N))