Lines Matching defs:SrcVec
6253 SDValue SrcVec = SrcExtract.getOperand(0);
6254 EVT SrcVT = SrcVec.getValueType();
6265 Ops.push_back(SrcVec);
6268 Ops.push_back(SrcVec);
8683 static SDValue createVariablePermute(MVT VT, SDValue SrcVec, SDValue IndicesVec,
8709 // Handle SrcVec that don't match VT type.
8710 if (SrcVec.getValueSizeInBits() != SizeInBits) {
8711 if ((SrcVec.getValueSizeInBits() % SizeInBits) == 0) {
8712 // Handle larger SrcVec by treating it as a larger permute.
8713 unsigned Scale = SrcVec.getValueSizeInBits() / SizeInBits;
8719 createVariablePermute(VT, SrcVec, IndicesVec, DL, DAG, Subtarget);
8723 } else if (SrcVec.getValueSizeInBits() < SizeInBits) {
8724 // Widen smaller SrcVec to match VT.
8725 SrcVec = widenSubVector(VT, SrcVec, false, Subtarget, DAG, SDLoc(SrcVec));
8792 DAG.getVectorShuffle(VT, DL, SrcVec, SrcVec, {0, 0}),
8793 DAG.getVectorShuffle(VT, DL, SrcVec, SrcVec, {1, 1}),
8801 SDValue LoSrc = extract128BitVector(SrcVec, 0, DAG, DL);
8802 SDValue HiSrc = extract128BitVector(SrcVec, 16, DAG, DL);
8810 SDValue Lo = extract128BitVector(SrcVec, 0, DAG, DL);
8811 SDValue Hi = extract128BitVector(SrcVec, 16, DAG, DL);
8839 MVT::v32i8, DAG.getBitcast(MVT::v32i8, SrcVec),
8848 SrcVec = DAG.getBitcast(MVT::v8f32, SrcVec);
8849 SDValue LoLo = DAG.getVectorShuffle(MVT::v8f32, DL, SrcVec, SrcVec,
8851 SDValue HiHi = DAG.getVectorShuffle(MVT::v8f32, DL, SrcVec, SrcVec,
8872 SrcVec = widenSubVector(WidenSrcVT, SrcVec, false, Subtarget, DAG,
8873 SDLoc(SrcVec));
8876 SDValue Res = createVariablePermute(WidenSrcVT, SrcVec, IndicesVec, DL,
8882 SrcVec = DAG.getBitcast(MVT::v4f64, SrcVec);
8884 DAG.getVectorShuffle(MVT::v4f64, DL, SrcVec, SrcVec, {0, 1, 0, 1});
8886 DAG.getVectorShuffle(MVT::v4f64, DL, SrcVec, SrcVec, {2, 3, 2, 3});
8933 SrcVec = DAG.getBitcast(ShuffleVT, SrcVec);
8935 ? DAG.getNode(Opcode, DL, ShuffleVT, IndicesVec, SrcVec)
8936 : DAG.getNode(Opcode, DL, ShuffleVT, SrcVec, IndicesVec);
8955 SDValue SrcVec, IndicesVec;
8958 // (extract_elt SrcVec, (extract_elt IndicesVec, i)).
8967 if (!SrcVec)
8968 SrcVec = Op.getOperand(0);
8969 else if (SrcVec != Op.getOperand(0))
8993 return createVariablePermute(VT, SrcVec, IndicesVec, DL, DAG, Subtarget);
40815 SDValue SrcVec = Op.getOperand(0);
40818 OpInputs.assign({SrcVec});
45827 // Note: SrcVec might not have a VecVT type, but it must be the same size.
45832 combineExtractFromVectorLoad(SDNode *N, EVT VecVT, SDValue SrcVec, uint64_t Idx,
45847 auto *LoadVec = dyn_cast<LoadSDNode>(SrcVec);
45850 VecVT.getSizeInBits() == SrcVec.getValueSizeInBits() &&
51295 SDValue SrcVec = N0.getOperand(0);
51296 EVT SrcVecVT = SrcVec.getValueType();
51301 if (VT == SrcVecVT.getScalarType() && N0->isOnlyUserOf(SrcVec.getNode()) &&
51320 {SrcVec}, 0, SrcVec, ShuffleMask, {}, /*Depth*/ 1,
57441 SDValue SrcVec = Op0.getOperand(0);
57442 if (SrcVec.getOpcode() == X86ISD::VBROADCAST ||
57443 SrcVec.getOpcode() == X86ISD::VBROADCAST_LOAD)
57445 if (SrcVec.getOpcode() == X86ISD::SUBV_BROADCAST_LOAD &&
57446 Op0.getValueType() == cast<MemSDNode>(SrcVec)->getMemoryVT())
58743 SDValue SrcVec =
58746 return getTargetVShiftByConstNode(Opc, DL, VT.getSimpleVT(), SrcVec,