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

References

lib/CodeGen/SelectionDAG/DAGCombiner.cpp
16798   EVT VecVT = VecOp.getValueType();
16799   if (VecOp.isUndef())
16807   if (VecOp.getOpcode() == ISD::INSERT_VECTOR_ELT &&
16808       Index == VecOp.getOperand(2)) {
16809     SDValue Elt = VecOp.getOperand(1);
16814   if (VecOp.getOpcode() == ISD::SCALAR_TO_VECTOR) {
16818     SDValue InOp = VecOp.getOperand(0);
16833   if (IndexC && VecOp.getOpcode() == ISD::BUILD_VECTOR &&
16835       (VecOp.hasOneUse() || TLI.aggressivelyPreferBuildVectorSources(VecVT))) {
16836     SDValue Elt = VecOp.getOperand(IndexC->getZExtValue());
16850   if (IndexC && VecOp.getOpcode() == ISD::BITCAST && VecVT.isInteger() &&
16851       VecOp.hasOneUse()) {
16857     SDValue BCSrc = VecOp.getOperand(0);
16893   if (IndexC && VecOp.getOpcode() == ISD::VECTOR_SHUFFLE) {
16894     auto *Shuf = cast<ShuffleVectorSDNode>(VecOp);
16905       SVInVec = VecOp.getOperand(0);
16907       SVInVec = VecOp.getOperand(1);
16936   if (llvm::all_of(VecOp->uses(), [&](SDNode *Use) {
16938                Use->getOperand(0) == VecOp &&
16942     for (SDNode *Use : VecOp->uses()) {
16947     if (SimplifyDemandedVectorElts(VecOp, DemandedElts, true)) {
16965   if (VecOp.getOpcode() == ISD::BITCAST) {
16967     if (!VecOp.hasOneUse())
16970     EVT BCVT = VecOp.getOperand(0).getValueType();
16975     VecOp = VecOp.getOperand(0);
16975     VecOp = VecOp.getOperand(0);
16980   if (!LegalOperations && !IndexC && VecOp.hasOneUse() &&
16981       ISD::isNormalLoad(VecOp.getNode()) &&
16982       !Index->hasPredecessor(VecOp.getNode())) {
16983     auto *VecLoad = dyn_cast<LoadSDNode>(VecOp);
16998   if (ISD::isNormalLoad(VecOp.getNode())) {
16999     LN0 = cast<LoadSDNode>(VecOp);
17000   } else if (VecOp.getOpcode() == ISD::SCALAR_TO_VECTOR &&
17001              VecOp.getOperand(0).getValueType() == ExtVT &&
17002              ISD::isNormalLoad(VecOp.getOperand(0).getNode())) {
17004     if (!VecOp.hasOneUse())
17007     LN0 = cast<LoadSDNode>(VecOp.getOperand(0));
17009   if (auto *Shuf = dyn_cast<ShuffleVectorSDNode>(VecOp)) {
17015     if (!VecOp.hasOneUse())
17025     VecOp = (Idx < (int)NumElts) ? VecOp.getOperand(0) : VecOp.getOperand(1);
17025     VecOp = (Idx < (int)NumElts) ? VecOp.getOperand(0) : VecOp.getOperand(1);
17025     VecOp = (Idx < (int)NumElts) ? VecOp.getOperand(0) : VecOp.getOperand(1);
17027     if (VecOp.getOpcode() == ISD::BITCAST) {
17029       if (!VecOp.hasOneUse())
17032       VecOp = VecOp.getOperand(0);
17032       VecOp = VecOp.getOperand(0);
17034     if (ISD::isNormalLoad(VecOp.getNode())) {
17035       LN0 = cast<LoadSDNode>(VecOp);