Lines Matching defs:Lane
2296 auto GetSwizzleSrcs = [](size_t I, const SDValue &Lane) {
2298 if (Lane->getOpcode() != ISD::EXTRACT_VECTOR_ELT)
2300 const SDValue &SwizzleSrc = Lane->getOperand(0);
2301 const SDValue &IndexExt = Lane->getOperand(1);
2320 auto GetShuffleSrc = [&](const SDValue &Lane) {
2321 if (Lane->getOpcode() != ISD::EXTRACT_VECTOR_ELT)
2323 if (!isa<ConstantSDNode>(Lane->getOperand(1).getNode()))
2325 if (Lane->getOperand(0).getValueType().getVectorNumElements() >
2328 return Lane->getOperand(0);
2361 const SDValue &Lane = Op->getOperand(I);
2362 if (Lane.isUndef())
2365 AddCount(SplatValueCounts, Lane);
2367 if (IsConstant(Lane))
2369 if (auto ShuffleSrc = GetShuffleSrc(Lane))
2372 auto SwizzleSrcs = GetSwizzleSrcs(I, Lane);
2415 IsLaneConstructed = [&, Swizzled](size_t I, const SDValue &Lane) {
2416 return Swizzled == GetSwizzleSrcs(I, Lane);
2444 const SDValue &Lane = Op->getOperand(I);
2445 SDValue Src = GetShuffleSrc(Lane);
2447 Mask[I] = Lane->getConstantOperandVal(1) * Scale1;
2449 Mask[I] = DestLaneCount + Lane->getConstantOperandVal(1) * Scale2;
2456 IsLaneConstructed = [&](size_t, const SDValue &Lane) {
2457 auto Src = GetShuffleSrc(Lane);
2462 for (const SDValue &Lane : Op->op_values()) {
2463 if (IsConstant(Lane)) {
2470 auto *Const = dyn_cast<ConstantSDNode>(Lane.getNode());
2478 ConstLanes.push_back(DAG.getConstant(NewVal, SDLoc(Lane), LaneT));
2480 ConstLanes.push_back(Lane);
2489 IsLaneConstructed = [&IsConstant](size_t _, const SDValue &Lane) {
2490 return IsConstant(Lane);
2502 IsLaneConstructed = [&SplatValue](size_t _, const SDValue &Lane) {
2503 return Lane == SplatValue;
2512 const SDValue &Lane = Op->getOperand(I);
2513 if (!Lane.isUndef() && !IsLaneConstructed(I, Lane))
2514 Result = DAG.getNode(ISD::INSERT_VECTOR_ELT, DL, VecT, Result, Lane,