reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
7825 if (Lane == 0 && V1.getOpcode() == ISD::SCALAR_TO_VECTOR) { 7826 return DAG.getNode(ARMISD::VDUP, dl, VT, V1.getOperand(0)); 7831 if (Lane == 0 && V1.getOpcode() == ISD::BUILD_VECTOR && 7832 !isa<ConstantSDNode>(V1.getOperand(0))) { 7834 for (unsigned i = 1, e = V1.getNumOperands(); i != e; ++i) 7835 if (!V1.getOperand(i).isUndef()) { 7840 return DAG.getNode(ARMISD::VDUP, dl, VT, V1.getOperand(0)); 7842 return DAG.getNode(ARMISD::VDUPLANE, dl, VT, V1, 7850 std::swap(V1, V2); 7851 return DAG.getNode(ARMISD::VEXT, dl, VT, V1, V2, 7856 return DAG.getNode(ARMISD::VREV64, dl, VT, V1); 7858 return DAG.getNode(ARMISD::VREV32, dl, VT, V1); 7860 return DAG.getNode(ARMISD::VREV16, dl, VT, V1); 7863 return DAG.getNode(ARMISD::VEXT, dl, VT, V1, V1, 7863 return DAG.getNode(ARMISD::VEXT, dl, VT, V1, V1, 7878 V2 = V1; 7879 return DAG.getNode(ShuffleOpc, dl, DAG.getVTList(VT, VT), V1, V2) 7885 return DAG.getNode(ARMISD::VMOVN, dl, VT, V2, V1, 7888 return DAG.getNode(ARMISD::VMOVN, dl, VT, V1, V2, 7907 if (ST->hasNEON() && V1->getOpcode() == ISD::CONCAT_VECTORS && V2->isUndef()) { 7908 SDValue SubV1 = V1->getOperand(0); 7909 SDValue SubV2 = V1->getOperand(1); 7951 return GeneratePerfectShuffle(PFEntry, V1, V2, DAG, dl); 7958 return GeneratePerfectShuffle(PFEntry, V1, V2, DAG, dl); 7969 V1 = DAG.getNode(ISD::BITCAST, dl, VecVT, V1); 7969 V1 = DAG.getNode(ISD::BITCAST, dl, VecVT, V1); 7977 ShuffleMask[i] < (int)NumElts ? V1 : V2,