Lines Matching refs:PartVT
159 MVT PartVT, EVT ValueVT, const Value *V,
170 unsigned NumParts, MVT PartVT, EVT ValueVT, const Value *V, in getCopyFromParts() argument
177 PartVT, ValueVT, CC)) in getCopyFromParts()
181 return getCopyFromPartsVector(DAG, DL, Parts, NumParts, PartVT, ValueVT, V, in getCopyFromParts()
190 unsigned PartBits = PartVT.getSizeInBits(); in getCopyFromParts()
203 Lo = getCopyFromParts(DAG, DL, Parts, RoundParts / 2, PartVT, HalfVT, V, in getCopyFromParts()
206 PartVT, HalfVT, V, InChain); in getCopyFromParts()
221 Hi = getCopyFromParts(DAG, DL, Parts + RoundParts, OddParts, PartVT, in getCopyFromParts()
237 } else if (PartVT.isFloatingPoint()) { in getCopyFromParts()
239 assert(ValueVT == EVT(MVT::ppcf128) && PartVT == MVT::f64 && in getCopyFromParts()
249 assert(ValueVT.isFloatingPoint() && PartVT.isInteger() && in getCopyFromParts()
250 !PartVT.isVector() && "Unexpected split"); in getCopyFromParts()
252 Val = getCopyFromParts(DAG, DL, Parts, NumParts, PartVT, IntVT, V, in getCopyFromParts()
343 MVT PartVT, EVT ValueVT, const Value *V, in getCopyFromPartsVector() argument
372 assert(RegisterVT == PartVT && "Part type doesn't match vector breakdown!"); in getCopyFromPartsVector()
383 Ops[i] = getCopyFromParts(DAG, DL, &Parts[i], 1, PartVT, IntermediateVT, in getCopyFromPartsVector()
392 Ops[i] = getCopyFromParts(DAG, DL, &Parts[i * Factor], Factor, PartVT, in getCopyFromPartsVector()
500 MVT PartVT, const Value *V,
508 unsigned NumParts, MVT PartVT, const Value *V, in getCopyToParts() argument
513 if (TLI.splitValueIntoRegisterParts(DAG, DL, Val, Parts, NumParts, PartVT, in getCopyToParts()
520 return getCopyToPartsVector(DAG, DL, Val, Parts, NumParts, PartVT, V, in getCopyToParts()
524 assert(DAG.getTargetLoweringInfo().isTypeLegal(PartVT) && in getCopyToParts()
531 EVT PartEVT = PartVT; in getCopyToParts()
538 unsigned PartBits = PartVT.getSizeInBits(); in getCopyToParts()
541 if (PartVT.isFloatingPoint() && ValueVT.isFloatingPoint()) { in getCopyToParts()
543 Val = DAG.getNode(ISD::FP_EXTEND, DL, PartVT, Val); in getCopyToParts()
551 assert((PartVT.isInteger() || PartVT == MVT::x86mmx) && in getCopyToParts()
556 if (PartVT == MVT::x86mmx) in getCopyToParts()
557 Val = DAG.getNode(ISD::BITCAST, DL, PartVT, Val); in getCopyToParts()
562 Val = DAG.getNode(ISD::BITCAST, DL, PartVT, Val); in getCopyToParts()
565 assert((PartVT.isInteger() || PartVT == MVT::x86mmx) && in getCopyToParts()
570 if (PartVT == MVT::x86mmx) in getCopyToParts()
571 Val = DAG.getNode(ISD::BITCAST, DL, PartVT, Val); in getCopyToParts()
583 Val = DAG.getNode(ISD::BITCAST, DL, PartVT, Val); in getCopyToParts()
593 assert(PartVT.isInteger() && ValueVT.isInteger() && in getCopyToParts()
601 getCopyToParts(DAG, DL, OddVal, Parts + RoundParts, OddParts, PartVT, V, in getCopyToParts()
632 if (ThisBits == PartBits && ThisVT != PartVT) { in getCopyToParts()
633 Part0 = DAG.getNode(ISD::BITCAST, DL, PartVT, Part0); in getCopyToParts()
634 Part1 = DAG.getNode(ISD::BITCAST, DL, PartVT, Part1); in getCopyToParts()
644 const SDLoc &DL, EVT PartVT) { in widenVectorToPartType() argument
645 if (!PartVT.isVector()) in widenVectorToPartType()
649 EVT PartEVT = PartVT.getVectorElementType(); in widenVectorToPartType()
651 ElementCount PartNumElts = PartVT.getVectorElementCount(); in widenVectorToPartType()
663 assert(DAG.getTargetLoweringInfo().isTypeLegal(PartVT) && in widenVectorToPartType()
674 return DAG.getNode(ISD::INSERT_SUBVECTOR, DL, PartVT, DAG.getUNDEF(PartVT), in widenVectorToPartType()
685 return DAG.getBuildVector(PartVT, DL, Ops); in widenVectorToPartType()
692 MVT PartVT, const Value *V, in getCopyToPartsVector() argument
700 EVT PartEVT = PartVT; in getCopyToPartsVector()
703 } else if (PartVT.getSizeInBits() == ValueVT.getSizeInBits()) { in getCopyToPartsVector()
705 Val = DAG.getNode(ISD::BITCAST, DL, PartVT, Val); in getCopyToPartsVector()
706 } else if (SDValue Widened = widenVectorToPartType(DAG, Val, DL, PartVT)) { in getCopyToPartsVector()
708 } else if (PartVT.isVector() && in getCopyToPartsVector()
715 Val = DAG.getAnyExtOrTrunc(Val, DL, PartVT); in getCopyToPartsVector()
724 PartVT.getVectorElementCount()); in getCopyToPartsVector()
726 Val = DAG.getAnyExtOrTrunc(Widened, DL, PartVT); in getCopyToPartsVector()
732 (!ValueVT.isFloatingPoint() || !PartVT.isInteger())) { in getCopyToPartsVector()
738 if (PartVT.isFloatingPoint()) { in getCopyToPartsVector()
740 Val = DAG.getNode(ISD::FP_EXTEND, DL, PartVT, Val); in getCopyToPartsVector()
742 Val = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, DL, PartVT, Val, in getCopyToPartsVector()
746 assert(PartVT.getFixedSizeInBits() > ValueSize && in getCopyToPartsVector()
750 Val = DAG.getAnyExtOrTrunc(Val, DL, PartVT); in getCopyToPartsVector()
754 assert(Val.getValueType() == PartVT && "Unexpected vector part value type"); in getCopyToPartsVector()
776 assert(RegisterVT == PartVT && "Part type doesn't match vector breakdown!"); in getCopyToPartsVector()
834 getCopyToParts(DAG, DL, Ops[i], &Parts[i], 1, PartVT, V, CallConv); in getCopyToPartsVector()
843 getCopyToParts(DAG, DL, Ops[i], &Parts[i * Factor], Factor, PartVT, V, in getCopyToPartsVector()
2262 MVT PartVT = TLI.getRegisterTypeForCallingConv(Context, CC, VT); in visitRet() local
2266 &Parts[0], NumParts, PartVT, &I, CC, ExtendKind); in visitRet()
11023 MVT PartVT = getRegisterTypeForCallingConv(CLI.RetTy->getContext(), in LowerCallTo() local
11054 if ((NumParts * PartVT.getSizeInBits() == VT.getSizeInBits()) || in LowerCallTo()
11060 getCopyToParts(CLI.DAG, CLI.DL, Op, &Parts[0], NumParts, PartVT, CLI.CB, in LowerCallTo()
11711 MVT PartVT = TLI->getRegisterTypeForCallingConv(*CurDAG->getContext(), in LowerArguments() local
11727 PartVT, VT, nullptr, NewRoot, in LowerArguments()