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