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

References

lib/CodeGen/SelectionDAG/SelectionDAG.cpp
 5038   ConstantSDNode *N1C = dyn_cast<ConstantSDNode>(N1);
 5040   ConstantFPSDNode *N1CFP = dyn_cast<ConstantFPSDNode>(N1);
 5047       std::swap(N1, N2);
 5050       std::swap(N1, N2);
 5057     assert(VT == MVT::Other && N1.getValueType() == MVT::Other &&
 5060     if (N1.getOpcode() == ISD::EntryToken) return N2;
 5061     if (N2.getOpcode() == ISD::EntryToken) return N1;
 5062     if (N1 == N2) return N1;
 5062     if (N1 == N2) return N1;
 5066     SDValue Ops[] = {N1, N2};
 5072     SDValue Ops[] = {N1, N2};
 5079     assert(N1.getValueType() == N2.getValueType() &&
 5080            N1.getValueType() == VT && "Binary operator types must match!");
 5086       return N1;
 5093     assert(N1.getValueType() == N2.getValueType() &&
 5094            N1.getValueType() == VT && "Binary operator types must match!");
 5098       return N1;
 5116     assert(N1.getValueType() == N2.getValueType() &&
 5117            N1.getValueType() == VT && "Binary operator types must match!");
 5125     assert(N1.getValueType() == N2.getValueType() &&
 5126            N1.getValueType() == VT && "Binary operator types must match!");
 5127     if (SDValue V = simplifyFPBinop(Opcode, N1, N2))
 5131     assert(N1.getValueType() == VT &&
 5132            N1.getValueType().isFloatingPoint() &&
 5139     if (SDValue V = simplifyShift(N1, N2))
 5144     assert(VT == N1.getValueType() &&
 5154     assert(N2.getValueSizeInBits() >= Log2_32_Ceil(N1.getValueSizeInBits()) &&
 5161       return N1;
 5163       return N1;
 5167            N1.getValueType().isFloatingPoint() &&
 5168            VT.bitsLE(N1.getValueType()) &&
 5171     if (N1.getValueType() == VT) return N1;  // noop conversion.
 5171     if (N1.getValueType() == VT) return N1;  // noop conversion.
 5176     assert(VT == N1.getValueType() && "Not an inreg extend!");
 5183     if (VT.getScalarType() == EVT) return N1; // noop assertion.
 5188     assert(VT == N1.getValueType() && "Not an inreg extend!");
 5198     if (EVT == VT) return N1;  // Not actually extending
 5211     if (ISD::isBuildVectorOfConstantSDNodes(N1.getNode())) {
 5213       llvm::EVT OpVT = N1.getOperand(0).getValueType();
 5215         SDValue Op = N1.getOperand(i);
 5229     assert(VT.getSizeInBits() >= N1.getValueType().getScalarSizeInBits() &&
 5234     if (N1.isUndef() || N2.isUndef())
 5238     if (N2C && N2C->getAPIntValue().uge(N1.getValueType().getVectorNumElements()))
 5244         N1.getOpcode() == ISD::CONCAT_VECTORS &&
 5245         N1.getNumOperands() > 0) {
 5247         N1.getOperand(0).getValueType().getVectorNumElements();
 5249                      N1.getOperand(N2C->getZExtValue() / Factor),
 5256     if (N2C && N1.getOpcode() == ISD::BUILD_VECTOR) {
 5257       SDValue Elt = N1.getOperand(N2C->getZExtValue());
 5270     if (N1.getOpcode() == ISD::INSERT_VECTOR_ELT) {
 5274       SDValue N1Op2 = N1.getOperand(2);
 5279           if (VT == N1.getOperand(1).getValueType())
 5280             return N1.getOperand(1);
 5282             return getSExtOrTrunc(N1.getOperand(1), DL, VT);
 5285         return getNode(ISD::EXTRACT_VECTOR_ELT, DL, VT, N1.getOperand(0), N2);
 5292     if (N1.getOpcode() == ISD::EXTRACT_SUBVECTOR &&
 5293         N1.getValueType().getVectorNumElements() == 1) {
 5294       return getNode(ISD::EXTRACT_VECTOR_ELT, DL, VT, N1.getOperand(0),
 5295                      N1.getOperand(1));
 5300     assert(!N1.getValueType().isVector() && !VT.isVector() &&
 5301            (N1.getValueType().isInteger() == VT.isInteger()) &&
 5302            N1.getValueType() != VT &&
 5308     if (N1.getOpcode() == ISD::BUILD_PAIR)
 5309       return N1.getOperand(N2C->getZExtValue());
 5320     if (VT.isSimple() && N1.getValueType().isSimple()) {
 5321       assert(VT.isVector() && N1.getValueType().isVector() &&
 5324              N1.getValueType().getVectorElementType() &&
 5326       assert(VT.getSimpleVT() <= N1.getSimpleValueType() &&
 5331                 <= N1.getValueType().getVectorNumElements())
 5336       if (VT.getSimpleVT() == N1.getSimpleValueType())
 5337         return N1;
 5340       if (N1.isUndef())
 5345       if (N2C && N1.getOpcode() == ISD::CONCAT_VECTORS &&
 5346           N1.getNumOperands() > 0 &&
 5347           VT == N1.getOperand(0).getValueType()) {
 5349         return N1.getOperand(N2C->getZExtValue() / Factor);
 5354       if (N1.getOpcode() == ISD::INSERT_SUBVECTOR && N2 == N1.getOperand(2) &&
 5354       if (N1.getOpcode() == ISD::INSERT_SUBVECTOR && N2 == N1.getOperand(2) &&
 5355           VT == N1.getOperand(1).getValueType())
 5356         return N1.getOperand(1);
 5363           FoldConstantArithmetic(Opcode, DL, VT, N1.getNode(), N2.getNode()))
 5366   if (SDValue V = foldConstantFPMath(Opcode, DL, VT, N1, N2))
 5370   if (N1.isUndef()) {
 5372       std::swap(N1, N2);
 5393       if (N1.isUndef())
 5420   SDValue Ops[] = {N1, N2};