|
reference, declaration → definition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
|
References
lib/Target/PowerPC/PPCISelLowering.cpp 8901 PPC::getSplatIdxForPPCMnemonics(SVOp, IsFourByte ? 4 : 8, DAG);
8913 BasePtr = DAG.getNode(ISD::ADD, dl, getPointerTy(DAG.getDataLayout()),
8913 BasePtr = DAG.getNode(ISD::ADD, dl, getPointerTy(DAG.getDataLayout()),
8914 BasePtr, DAG.getIntPtrConstant(Offset, dl));
8918 DAG.getValueType(Op.getValueType()) // VT
8921 DAG.getVTList(IsFourByte ? MVT::v4i32 : MVT::v2i64, MVT::Other);
8923 DAG.getMemIntrinsicNode(PPCISD::LD_SPLAT, dl, VTL,
8926 LdSplt = DAG.getBitcast(SVOp->getValueType(0), LdSplt);
8935 SDValue Conv1 = DAG.getNode(ISD::BITCAST, dl, MVT::v4i32, V1);
8936 SDValue Conv2 = DAG.getNode(ISD::BITCAST, dl, MVT::v4i32, V2);
8938 SDValue Shl = DAG.getNode(PPCISD::VECSHL, dl, MVT::v4i32, Conv2, Conv2,
8939 DAG.getConstant(ShiftElts, dl, MVT::i32));
8940 SDValue Ins = DAG.getNode(PPCISD::VECINSERT, dl, MVT::v4i32, Conv1, Shl,
8941 DAG.getConstant(InsertAtByte, dl, MVT::i32));
8942 return DAG.getNode(ISD::BITCAST, dl, MVT::v16i8, Ins);
8944 SDValue Ins = DAG.getNode(PPCISD::VECINSERT, dl, MVT::v4i32, Conv1, Conv2,
8945 DAG.getConstant(InsertAtByte, dl, MVT::i32));
8946 return DAG.getNode(ISD::BITCAST, dl, MVT::v16i8, Ins);
8951 if ((NewISDNode = lowerToVINSERTH(SVOp, DAG)))
8954 if ((NewISDNode = lowerToVINSERTB(SVOp, DAG)))
8962 SDValue Conv1 = DAG.getNode(ISD::BITCAST, dl, MVT::v4i32, V1);
8964 DAG.getNode(ISD::BITCAST, dl, MVT::v4i32, V2.isUndef() ? V1 : V2);
8966 SDValue Shl = DAG.getNode(PPCISD::VECSHL, dl, MVT::v4i32, Conv1, Conv2,
8967 DAG.getConstant(ShiftElts, dl, MVT::i32));
8968 return DAG.getNode(ISD::BITCAST, dl, MVT::v16i8, Shl);
8975 SDValue Conv1 = DAG.getNode(ISD::BITCAST, dl, MVT::v2i64, V1);
8977 DAG.getNode(ISD::BITCAST, dl, MVT::v2i64, V2.isUndef() ? V1 : V2);
8979 SDValue PermDI = DAG.getNode(PPCISD::XXPERMDI, dl, MVT::v2i64, Conv1, Conv2,
8980 DAG.getConstant(ShiftElts, dl, MVT::i32));
8981 return DAG.getNode(ISD::BITCAST, dl, MVT::v16i8, PermDI);
8986 SDValue Conv = DAG.getNode(ISD::BITCAST, dl, MVT::v8i16, V1);
8987 SDValue ReveHWord = DAG.getNode(PPCISD::XXREVERSE, dl, MVT::v8i16, Conv);
8988 return DAG.getNode(ISD::BITCAST, dl, MVT::v16i8, ReveHWord);
8990 SDValue Conv = DAG.getNode(ISD::BITCAST, dl, MVT::v4i32, V1);
8991 SDValue ReveWord = DAG.getNode(PPCISD::XXREVERSE, dl, MVT::v4i32, Conv);
8992 return DAG.getNode(ISD::BITCAST, dl, MVT::v16i8, ReveWord);
8994 SDValue Conv = DAG.getNode(ISD::BITCAST, dl, MVT::v2i64, V1);
8995 SDValue ReveDWord = DAG.getNode(PPCISD::XXREVERSE, dl, MVT::v2i64, Conv);
8996 return DAG.getNode(ISD::BITCAST, dl, MVT::v16i8, ReveDWord);
8998 SDValue Conv = DAG.getNode(ISD::BITCAST, dl, MVT::v1i128, V1);
8999 SDValue ReveQWord = DAG.getNode(PPCISD::XXREVERSE, dl, MVT::v1i128, Conv);
9000 return DAG.getNode(ISD::BITCAST, dl, MVT::v16i8, ReveQWord);
9006 int SplatIdx = PPC::getSplatIdxForPPCMnemonics(SVOp, 4, DAG);
9008 SDValue Conv = DAG.getNode(ISD::BITCAST, dl, MVT::v4i32, V1);
9009 SDValue Splat = DAG.getNode(PPCISD::XXSPLT, dl, MVT::v4i32, Conv,
9010 DAG.getConstant(SplatIdx, dl, MVT::i32));
9011 return DAG.getNode(ISD::BITCAST, dl, MVT::v16i8, Splat);
9015 if (V2.isUndef() && PPC::isVSLDOIShuffleMask(SVOp, 1, DAG) == 8) {
9016 SDValue Conv = DAG.getNode(ISD::BITCAST, dl, MVT::v2f64, V1);
9017 SDValue Swap = DAG.getNode(PPCISD::SWAP_NO_CHAIN, dl, MVT::v2f64, Conv);
9018 return DAG.getNode(ISD::BITCAST, dl, MVT::v16i8, Swap);
9030 return DAG.getNode(PPCISD::QVALIGNI, dl, VT, V1, V2,
9031 DAG.getConstant(AlignIdx, dl, MVT::i32));
9039 return DAG.getNode(PPCISD::QVESPLATI, dl, VT, V1,
9040 DAG.getConstant(SplatIdx, dl, MVT::i32));
9053 SDValue V3 = DAG.getNode(PPCISD::QVGPCI, dl, MVT::v4f64,
9054 DAG.getConstant(idx, dl, MVT::i32));
9055 return DAG.getNode(PPCISD::QVFPERM, dl, VT, V1, V2, V3);
9065 PPC::isVPKUWUMShuffleMask(SVOp, 1, DAG) ||
9066 PPC::isVPKUHUMShuffleMask(SVOp, 1, DAG) ||
9067 PPC::isVSLDOIShuffleMask(SVOp, 1, DAG) != -1 ||
9068 PPC::isVMRGLShuffleMask(SVOp, 1, 1, DAG) ||
9069 PPC::isVMRGLShuffleMask(SVOp, 2, 1, DAG) ||
9070 PPC::isVMRGLShuffleMask(SVOp, 4, 1, DAG) ||
9071 PPC::isVMRGHShuffleMask(SVOp, 1, 1, DAG) ||
9072 PPC::isVMRGHShuffleMask(SVOp, 2, 1, DAG) ||
9073 PPC::isVMRGHShuffleMask(SVOp, 4, 1, DAG) ||
9075 PPC::isVPKUDUMShuffleMask(SVOp, 1, DAG) ||
9076 PPC::isVMRGEOShuffleMask(SVOp, true, 1, DAG) ||
9077 PPC::isVMRGEOShuffleMask(SVOp, false, 1, DAG)))) {
9086 if (PPC::isVPKUWUMShuffleMask(SVOp, ShuffleKind, DAG) ||
9087 PPC::isVPKUHUMShuffleMask(SVOp, ShuffleKind, DAG) ||
9088 PPC::isVSLDOIShuffleMask(SVOp, ShuffleKind, DAG) != -1 ||
9089 PPC::isVMRGLShuffleMask(SVOp, 1, ShuffleKind, DAG) ||
9090 PPC::isVMRGLShuffleMask(SVOp, 2, ShuffleKind, DAG) ||
9091 PPC::isVMRGLShuffleMask(SVOp, 4, ShuffleKind, DAG) ||
9092 PPC::isVMRGHShuffleMask(SVOp, 1, ShuffleKind, DAG) ||
9093 PPC::isVMRGHShuffleMask(SVOp, 2, ShuffleKind, DAG) ||
9094 PPC::isVMRGHShuffleMask(SVOp, 4, ShuffleKind, DAG) ||
9096 PPC::isVPKUDUMShuffleMask(SVOp, ShuffleKind, DAG) ||
9097 PPC::isVMRGEOShuffleMask(SVOp, true, ShuffleKind, DAG) ||
9098 PPC::isVMRGEOShuffleMask(SVOp, false, ShuffleKind, DAG))))
9154 return GeneratePerfectShuffle(PFEntry, V1, V2, DAG, dl);
9177 ResultMask.push_back(DAG.getConstant(31 - (SrcElt*BytesPerElement + j),
9180 ResultMask.push_back(DAG.getConstant(SrcElt*BytesPerElement + j, dl,
9184 SDValue VPermMask = DAG.getBuildVector(MVT::v16i8, dl, ResultMask);
9186 return DAG.getNode(PPCISD::VPERM, dl, V1.getValueType(),
9189 return DAG.getNode(PPCISD::VPERM, dl, V1.getValueType(),