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

References

lib/CodeGen/SelectionDAG/DAGCombiner.cpp
 5040   if (N0 == N1)
 5041     return N0;
 5049     if (ISD::isBuildVectorAllZeros(N0.getNode()))
 5051       return DAG.getConstant(APInt::getNullValue(N0.getScalarValueSizeInBits()),
 5052                              SDLoc(N), N0.getValueType());
 5059     if (ISD::isBuildVectorAllOnes(N0.getNode()))
 5062       return N0;
 5066   ConstantSDNode *N0C = getAsNonOpaqueConstant(N0);
 5071   if (DAG.isConstantIntBuildVectorOrConstantInt(N0) &&
 5073     return DAG.getNode(ISD::AND, SDLoc(N), VT, N1, N0);
 5076     return N0;
 5087   if (SDValue RAND = reassociateOps(ISD::AND, SDLoc(N), N0, N1, N->getFlags()))
 5099   if (N0.getOpcode() == ISD::OR &&
 5100       ISD::matchBinaryPredicate(N0.getOperand(1), N1, MatchSubset))
 5103   if (N1C && N0.getOpcode() == ISD::ANY_EXTEND) {
 5104     SDValue N0Op0 = N0.getOperand(0);
 5109                                  N0.getValueType(), N0Op0);
 5117       CombineTo(N0.getNode(), Zext);
 5128   if ((N0.getOpcode() == ISD::EXTRACT_VECTOR_ELT &&
 5129        N0.getValueSizeInBits() == N0.getOperand(0).getScalarValueSizeInBits() &&
 5129        N0.getValueSizeInBits() == N0.getOperand(0).getScalarValueSizeInBits() &&
 5130        N0.getOperand(0).getOpcode() == ISD::LOAD &&
 5131        N0.getOperand(0).getResNo() == 0) ||
 5132       (N0.getOpcode() == ISD::LOAD && N0.getResNo() == 0)) {
 5132       (N0.getOpcode() == ISD::LOAD && N0.getResNo() == 0)) {
 5133     LoadSDNode *Load = cast<LoadSDNode>( (N0.getOpcode() == ISD::LOAD) ?
 5134                                          N0 : N0.getOperand(0) );
 5134                                          N0 : N0.getOperand(0) );
 5203       CombineTo(N, (N0.getNode() == Load) ? NewLoad : N0);
 5203       CombineTo(N, (N0.getNode() == Load) ? NewLoad : N0);
 5229   if (!VT.isVector() && N1C && (N0.getOpcode() == ISD::LOAD ||
 5230                                 (N0.getOpcode() == ISD::ANY_EXTEND &&
 5231                                  N0.getOperand(0).getOpcode() == ISD::LOAD))) {
 5233       LoadSDNode *LN0 = N0->getOpcode() == ISD::ANY_EXTEND
 5234         ? cast<LoadSDNode>(N0.getOperand(0)) : cast<LoadSDNode>(N0);
 5234         ? cast<LoadSDNode>(N0.getOperand(0)) : cast<LoadSDNode>(N0);
 5251   if (SDValue Combined = visitANDLike(N0, N1, N))
 5255   if (N0.getOpcode() == N1.getOpcode())
 5266   if (N1C && N1C->isOne() && N0.getOpcode() == ISD::SUB) {
 5267     if (isNullOrNullSplat(N0.getOperand(0))) {
 5268       SDValue SubRHS = N0.getOperand(1);
 5285   if (ISD::isUNINDEXEDLoad(N0.getNode()) &&
 5286       (ISD::isEXTLoad(N0.getNode()) ||
 5287        (ISD::isSEXTLoad(N0.getNode()) && N0.hasOneUse()))) {
 5287        (ISD::isSEXTLoad(N0.getNode()) && N0.hasOneUse()))) {
 5288     LoadSDNode *LN0 = cast<LoadSDNode>(N0);
 5299           DAG.getExtLoad(ISD::ZEXTLOAD, SDLoc(N0), VT, LN0->getChain(),
 5302       CombineTo(N0.getNode(), ExtLoad, ExtLoad.getValue(1));
 5308   if (N1C && N1C->getAPIntValue() == 0xffff && N0.getOpcode() == ISD::OR) {
 5309     if (SDValue BSwap = MatchBSwapHWordLow(N0.getNode(), N0.getOperand(0),
 5309     if (SDValue BSwap = MatchBSwapHWordLow(N0.getNode(), N0.getOperand(0),
 5310                                            N0.getOperand(1), false))
 5317   if (TLI.hasBitTest(N0, N1))