reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
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))