reference, declarationdefinition
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(),