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

References

lib/CodeGen/SelectionDAG/DAGCombiner.cpp
17175   EVT InVT2 = VecIn2.getNode() ? VecIn2.getValueType() : InVT1;
17182   unsigned Vec2Offset = DidSplitVec ? 0 : InVT1.getVectorNumElements();
17186   if (InVT1 != VT || InVT2 != VT) {
17187     if ((VT.getSizeInBits() % InVT1.getSizeInBits() == 0) && InVT1 == InVT2) {
17187     if ((VT.getSizeInBits() % InVT1.getSizeInBits() == 0) && InVT1 == InVT2) {
17190       unsigned NumConcats = VT.getSizeInBits() / InVT1.getSizeInBits();
17192       SmallVector<SDValue, 2> ConcatOps(NumConcats, DAG.getUNDEF(InVT1));
17194       ConcatOps[1] = VecIn2 ? VecIn2 : DAG.getUNDEF(InVT1);
17197     } else if (InVT1.getSizeInBits() == VT.getSizeInBits() * 2) {
17198       if (!TLI.isExtractSubvectorCheap(VT, InVT1, NumElems))
17210       } else if (InVT2.getSizeInBits() <= InVT1.getSizeInBits()) {
17216             !TLI.isOperationLegal(ISD::VECTOR_SHUFFLE, InVT1))
17222         if (InVT1 != InVT2) {
17225           VecIn2 = DAG.getNode(ISD::INSERT_SUBVECTOR, DL, InVT1,
17226                                DAG.getUNDEF(InVT1), VecIn2, ZeroIdx);
17236                InVT1.getSizeInBits() == VT.getSizeInBits()) {
17268   InVT1 = VecIn1.getValueType();
17272   VecIn2 = VecIn2.getNode() ? VecIn2 : DAG.getUNDEF(InVT1);
17273   assert(InVT1 == VecIn2.getValueType() && "Unexpected second input type.");
17275   SDValue Shuffle = DAG.getVectorShuffle(InVT1, DL, VecIn1, VecIn2, Mask);