Lines Matching refs:ValueVT
156 MVT PartVT, EVT ValueVT, const Value *V,
166 MVT PartVT, EVT ValueVT, const Value *V, in getCopyFromParts() argument
172 PartVT, ValueVT, CC)) in getCopyFromParts()
175 if (ValueVT.isVector()) in getCopyFromParts()
176 return getCopyFromPartsVector(DAG, DL, Parts, NumParts, PartVT, ValueVT, V, in getCopyFromParts()
184 if (ValueVT.isInteger()) { in getCopyFromParts()
186 unsigned ValueBits = ValueVT.getSizeInBits(); in getCopyFromParts()
193 ValueVT : EVT::getIntegerVT(*DAG.getContext(), RoundBits); in getCopyFromParts()
235 assert(ValueVT == EVT(MVT::ppcf128) && PartVT == MVT::f64 && in getCopyFromParts()
240 if (TLI.hasBigEndianPartOrdering(ValueVT, DAG.getDataLayout())) in getCopyFromParts()
242 Val = DAG.getNode(ISD::BUILD_PAIR, DL, ValueVT, Lo, Hi); in getCopyFromParts()
245 assert(ValueVT.isFloatingPoint() && PartVT.isInteger() && in getCopyFromParts()
247 EVT IntVT = EVT::getIntegerVT(*DAG.getContext(), ValueVT.getSizeInBits()); in getCopyFromParts()
257 if (PartEVT == ValueVT) in getCopyFromParts()
260 if (PartEVT.isInteger() && ValueVT.isFloatingPoint() && in getCopyFromParts()
261 ValueVT.bitsLT(PartEVT)) { in getCopyFromParts()
264 PartEVT = EVT::getIntegerVT(*DAG.getContext(), ValueVT.getSizeInBits()); in getCopyFromParts()
269 if (PartEVT.getSizeInBits() == ValueVT.getSizeInBits()) in getCopyFromParts()
270 return DAG.getNode(ISD::BITCAST, DL, ValueVT, Val); in getCopyFromParts()
273 if (PartEVT.isInteger() && ValueVT.isInteger()) { in getCopyFromParts()
274 if (ValueVT.bitsLT(PartEVT)) { in getCopyFromParts()
280 DAG.getValueType(ValueVT)); in getCopyFromParts()
281 return DAG.getNode(ISD::TRUNCATE, DL, ValueVT, Val); in getCopyFromParts()
283 return DAG.getNode(ISD::ANY_EXTEND, DL, ValueVT, Val); in getCopyFromParts()
286 if (PartEVT.isFloatingPoint() && ValueVT.isFloatingPoint()) { in getCopyFromParts()
288 if (ValueVT.bitsLT(Val.getValueType())) in getCopyFromParts()
290 ISD::FP_ROUND, DL, ValueVT, Val, in getCopyFromParts()
293 return DAG.getNode(ISD::FP_EXTEND, DL, ValueVT, Val); in getCopyFromParts()
298 if (PartEVT == MVT::x86mmx && ValueVT.isInteger() && in getCopyFromParts()
299 ValueVT.bitsLT(PartEVT)) { in getCopyFromParts()
301 return DAG.getNode(ISD::TRUNCATE, DL, ValueVT, Val); in getCopyFromParts()
328 MVT PartVT, EVT ValueVT, const Value *V, in getCopyFromPartsVector() argument
330 assert(ValueVT.isVector() && "Not a vector value"); in getCopyFromPartsVector()
346 *DAG.getContext(), CallConv.getValue(), ValueVT, IntermediateVT, in getCopyFromPartsVector()
350 TLI.getVectorTypeBreakdown(*DAG.getContext(), ValueVT, IntermediateVT, in getCopyFromPartsVector()
398 if (PartEVT == ValueVT) in getCopyFromPartsVector()
406 if (PartEVT.getVectorElementType() == ValueVT.getVectorElementType()) { in getCopyFromPartsVector()
408 ValueVT.getVectorElementCount().getKnownMinValue()) && in getCopyFromPartsVector()
410 ValueVT.getVectorElementCount().isScalable()) && in getCopyFromPartsVector()
412 return DAG.getNode(ISD::EXTRACT_SUBVECTOR, DL, ValueVT, Val, in getCopyFromPartsVector()
417 if (ValueVT.getSizeInBits() == PartEVT.getSizeInBits()) in getCopyFromPartsVector()
418 return DAG.getNode(ISD::BITCAST, DL, ValueVT, Val); in getCopyFromPartsVector()
420 assert(PartEVT.getVectorElementCount() == ValueVT.getVectorElementCount() && in getCopyFromPartsVector()
423 return DAG.getAnyExtOrTrunc(Val, DL, ValueVT); in getCopyFromPartsVector()
429 if (PartEVT.getSizeInBits() == ValueVT.getSizeInBits() && in getCopyFromPartsVector()
430 TLI.isTypeLegal(ValueVT)) in getCopyFromPartsVector()
431 return DAG.getNode(ISD::BITCAST, DL, ValueVT, Val); in getCopyFromPartsVector()
433 if (ValueVT.getVectorNumElements() != 1) { in getCopyFromPartsVector()
436 if (ValueVT.getSizeInBits() == PartEVT.getSizeInBits()) { in getCopyFromPartsVector()
437 return DAG.getNode(ISD::BITCAST, DL, ValueVT, Val); in getCopyFromPartsVector()
438 } else if (ValueVT.bitsLT(PartEVT)) { in getCopyFromPartsVector()
441 unsigned Elts = PartEVT.getSizeInBits() / ValueVT.getScalarSizeInBits(); in getCopyFromPartsVector()
443 ValueVT.getVectorElementType(), Elts); in getCopyFromPartsVector()
445 return DAG.getNode(ISD::EXTRACT_SUBVECTOR, DL, ValueVT, Val, in getCopyFromPartsVector()
451 return DAG.getUNDEF(ValueVT); in getCopyFromPartsVector()
455 EVT ValueSVT = ValueVT.getVectorElementType(); in getCopyFromPartsVector()
456 if (ValueVT.getVectorNumElements() == 1 && ValueSVT != PartEVT) { in getCopyFromPartsVector()
460 Val = ValueVT.isFloatingPoint() in getCopyFromPartsVector()
465 return DAG.getBuildVector(ValueVT, DL, Val); in getCopyFromPartsVector()
486 EVT ValueVT = Val.getValueType(); in getCopyToParts() local
489 if (ValueVT.isVector()) in getCopyToParts()
501 assert(!ValueVT.isVector() && "Vector case handled elsewhere"); in getCopyToParts()
503 if (PartEVT == ValueVT) { in getCopyToParts()
509 if (NumParts * PartBits > ValueVT.getSizeInBits()) { in getCopyToParts()
511 if (PartVT.isFloatingPoint() && ValueVT.isFloatingPoint()) { in getCopyToParts()
515 if (ValueVT.isFloatingPoint()) { in getCopyToParts()
518 ValueVT = EVT::getIntegerVT(*DAG.getContext(), ValueVT.getSizeInBits()); in getCopyToParts()
519 Val = DAG.getNode(ISD::BITCAST, DL, ValueVT, Val); in getCopyToParts()
522 ValueVT.isInteger() && in getCopyToParts()
524 ValueVT = EVT::getIntegerVT(*DAG.getContext(), NumParts * PartBits); in getCopyToParts()
525 Val = DAG.getNode(ExtendKind, DL, ValueVT, Val); in getCopyToParts()
529 } else if (PartBits == ValueVT.getSizeInBits()) { in getCopyToParts()
531 assert(NumParts == 1 && PartEVT != ValueVT); in getCopyToParts()
533 } else if (NumParts * PartBits < ValueVT.getSizeInBits()) { in getCopyToParts()
536 ValueVT.isInteger() && in getCopyToParts()
538 ValueVT = EVT::getIntegerVT(*DAG.getContext(), NumParts * PartBits); in getCopyToParts()
539 Val = DAG.getNode(ISD::TRUNCATE, DL, ValueVT, Val); in getCopyToParts()
545 ValueVT = Val.getValueType(); in getCopyToParts()
546 assert(NumParts * PartBits == ValueVT.getSizeInBits() && in getCopyToParts()
550 if (PartEVT != ValueVT) { in getCopyToParts()
563 assert(PartVT.isInteger() && ValueVT.isInteger() && in getCopyToParts()
568 SDValue OddVal = DAG.getNode(ISD::SRL, DL, ValueVT, Val, in getCopyToParts()
569 DAG.getShiftAmountConstant(RoundBits, ValueVT, DL, /*LegalTypes*/false)); in getCopyToParts()
579 ValueVT = EVT::getIntegerVT(*DAG.getContext(), NumParts * PartBits); in getCopyToParts()
580 Val = DAG.getNode(ISD::TRUNCATE, DL, ValueVT, Val); in getCopyToParts()
587 ValueVT.getSizeInBits()), in getCopyToParts()
618 EVT ValueVT = Val.getValueType(); in widenVectorToPartType() local
620 unsigned ValueNumElts = ValueVT.getVectorNumElements(); in widenVectorToPartType()
622 PartVT.getVectorElementType() == ValueVT.getVectorElementType()) { in widenVectorToPartType()
645 EVT ValueVT = Val.getValueType(); in getCopyToPartsVector() local
646 assert(ValueVT.isVector() && "Not a vector"); in getCopyToPartsVector()
652 if (PartEVT == ValueVT) { in getCopyToPartsVector()
654 } else if (PartVT.getSizeInBits() == ValueVT.getSizeInBits()) { in getCopyToPartsVector()
661 ValueVT.getVectorElementType()) && in getCopyToPartsVector()
663 ValueVT.getVectorElementCount()) { in getCopyToPartsVector()
668 if (ValueVT.getVectorElementCount().isScalar()) { in getCopyToPartsVector()
672 uint64_t ValueSize = ValueVT.getFixedSizeInBits(); in getCopyToPartsVector()
693 *DAG.getContext(), CallConv.getValue(), ValueVT, IntermediateVT, in getCopyToPartsVector()
697 TLI.getVectorTypeBreakdown(*DAG.getContext(), ValueVT, IntermediateVT, in getCopyToPartsVector()
705 assert(IntermediateVT.isScalableVector() == ValueVT.isScalableVector() && in getCopyToPartsVector()
717 if (ValueVT != BuiltVectorTy) { in getCopyToPartsVector()
771 for (EVT ValueVT : ValueVTs) { in RegsForValue() local
774 ? TLI.getNumRegistersForCallingConv(Context, CC.getValue(), ValueVT) in RegsForValue()
775 : TLI.getNumRegisters(Context, ValueVT); in RegsForValue()
778 ? TLI.getRegisterTypeForCallingConv(Context, CC.getValue(), ValueVT) in RegsForValue()
779 : TLI.getRegisterType(Context, ValueVT); in RegsForValue()
803 EVT ValueVT = ValueVTs[Value]; in getCopyFromRegs() local
867 RegisterVT, ValueVT, V, CallConv); in getCopyFromRegs()
8050 EVT ValueVT = OpInfo.ConstraintVT; in GetRegistersForValue() local
8052 ValueVT = RegVT; in GetRegistersForValue()
8081 OpInfo.AssignedRegs = RegsForValue(Regs, RegVT, ValueVT); in GetRegistersForValue()