Lines Matching refs:ValueVT

150                                       MVT PartVT, EVT ValueVT, const Value *V,
160 MVT PartVT, EVT ValueVT, const Value *V, in getCopyFromParts() argument
166 PartVT, ValueVT, CC)) in getCopyFromParts()
169 if (ValueVT.isVector()) in getCopyFromParts()
170 return getCopyFromPartsVector(DAG, DL, Parts, NumParts, PartVT, ValueVT, V, in getCopyFromParts()
178 if (ValueVT.isInteger()) { in getCopyFromParts()
180 unsigned ValueBits = ValueVT.getSizeInBits(); in getCopyFromParts()
187 ValueVT : EVT::getIntegerVT(*DAG.getContext(), RoundBits); in getCopyFromParts()
229 assert(ValueVT == EVT(MVT::ppcf128) && PartVT == MVT::f64 && in getCopyFromParts()
234 if (TLI.hasBigEndianPartOrdering(ValueVT, DAG.getDataLayout())) in getCopyFromParts()
236 Val = DAG.getNode(ISD::BUILD_PAIR, DL, ValueVT, Lo, Hi); in getCopyFromParts()
239 assert(ValueVT.isFloatingPoint() && PartVT.isInteger() && in getCopyFromParts()
241 EVT IntVT = EVT::getIntegerVT(*DAG.getContext(), ValueVT.getSizeInBits()); in getCopyFromParts()
251 if (PartEVT == ValueVT) in getCopyFromParts()
254 if (PartEVT.isInteger() && ValueVT.isFloatingPoint() && in getCopyFromParts()
255 ValueVT.bitsLT(PartEVT)) { in getCopyFromParts()
258 PartEVT = EVT::getIntegerVT(*DAG.getContext(), ValueVT.getSizeInBits()); in getCopyFromParts()
263 if (PartEVT.getSizeInBits() == ValueVT.getSizeInBits()) in getCopyFromParts()
264 return DAG.getNode(ISD::BITCAST, DL, ValueVT, Val); in getCopyFromParts()
267 if (PartEVT.isInteger() && ValueVT.isInteger()) { in getCopyFromParts()
268 if (ValueVT.bitsLT(PartEVT)) { in getCopyFromParts()
274 DAG.getValueType(ValueVT)); in getCopyFromParts()
275 return DAG.getNode(ISD::TRUNCATE, DL, ValueVT, Val); in getCopyFromParts()
277 return DAG.getNode(ISD::ANY_EXTEND, DL, ValueVT, Val); in getCopyFromParts()
280 if (PartEVT.isFloatingPoint() && ValueVT.isFloatingPoint()) { in getCopyFromParts()
282 if (ValueVT.bitsLT(Val.getValueType())) in getCopyFromParts()
284 ISD::FP_ROUND, DL, ValueVT, Val, in getCopyFromParts()
287 return DAG.getNode(ISD::FP_EXTEND, DL, ValueVT, Val); in getCopyFromParts()
292 if (PartEVT == MVT::x86mmx && ValueVT.isInteger() && in getCopyFromParts()
293 ValueVT.bitsLT(PartEVT)) { in getCopyFromParts()
295 return DAG.getNode(ISD::TRUNCATE, DL, ValueVT, Val); in getCopyFromParts()
322 MVT PartVT, EVT ValueVT, const Value *V, in getCopyFromPartsVector() argument
324 assert(ValueVT.isVector() && "Not a vector value"); in getCopyFromPartsVector()
340 *DAG.getContext(), *CallConv, ValueVT, IntermediateVT, in getCopyFromPartsVector()
344 TLI.getVectorTypeBreakdown(*DAG.getContext(), ValueVT, IntermediateVT, in getCopyFromPartsVector()
392 if (PartEVT == ValueVT) in getCopyFromPartsVector()
397 if (ValueVT.getSizeInBits() == PartEVT.getSizeInBits()) in getCopyFromPartsVector()
398 return DAG.getNode(ISD::BITCAST, DL, ValueVT, Val); in getCopyFromPartsVector()
404 if (PartEVT.getVectorElementCount() != ValueVT.getVectorElementCount()) { in getCopyFromPartsVector()
406 ValueVT.getVectorElementCount().getKnownMinValue()) && in getCopyFromPartsVector()
408 ValueVT.getVectorElementCount().isScalable()) && in getCopyFromPartsVector()
412 ValueVT.getVectorElementCount()); in getCopyFromPartsVector()
415 if (PartEVT == ValueVT) in getCopyFromPartsVector()
420 return DAG.getAnyExtOrTrunc(Val, DL, ValueVT); in getCopyFromPartsVector()
425 if (PartEVT.getSizeInBits() == ValueVT.getSizeInBits() && in getCopyFromPartsVector()
426 TLI.isTypeLegal(ValueVT)) in getCopyFromPartsVector()
427 return DAG.getNode(ISD::BITCAST, DL, ValueVT, Val); in getCopyFromPartsVector()
429 if (ValueVT.getVectorNumElements() != 1) { in getCopyFromPartsVector()
432 if (ValueVT.getSizeInBits() == PartEVT.getSizeInBits()) { in getCopyFromPartsVector()
433 return DAG.getNode(ISD::BITCAST, DL, ValueVT, Val); in getCopyFromPartsVector()
434 } else if (ValueVT.bitsLT(PartEVT)) { in getCopyFromPartsVector()
435 const uint64_t ValueSize = ValueVT.getFixedSizeInBits(); in getCopyFromPartsVector()
439 return DAG.getBitcast(ValueVT, Val); in getCopyFromPartsVector()
444 return DAG.getUNDEF(ValueVT); in getCopyFromPartsVector()
448 EVT ValueSVT = ValueVT.getVectorElementType(); in getCopyFromPartsVector()
449 if (ValueVT.getVectorNumElements() == 1 && ValueSVT != PartEVT) { in getCopyFromPartsVector()
453 Val = ValueVT.isFloatingPoint() in getCopyFromPartsVector()
458 return DAG.getBuildVector(ValueVT, DL, Val); in getCopyFromPartsVector()
479 EVT ValueVT = Val.getValueType(); in getCopyToParts() local
482 if (ValueVT.isVector()) in getCopyToParts()
494 assert(!ValueVT.isVector() && "Vector case handled elsewhere"); in getCopyToParts()
496 if (PartEVT == ValueVT) { in getCopyToParts()
502 if (NumParts * PartBits > ValueVT.getSizeInBits()) { in getCopyToParts()
504 if (PartVT.isFloatingPoint() && ValueVT.isFloatingPoint()) { in getCopyToParts()
508 if (ValueVT.isFloatingPoint()) { in getCopyToParts()
511 ValueVT = EVT::getIntegerVT(*DAG.getContext(), ValueVT.getSizeInBits()); in getCopyToParts()
512 Val = DAG.getNode(ISD::BITCAST, DL, ValueVT, Val); in getCopyToParts()
515 ValueVT.isInteger() && in getCopyToParts()
517 ValueVT = EVT::getIntegerVT(*DAG.getContext(), NumParts * PartBits); in getCopyToParts()
518 Val = DAG.getNode(ExtendKind, DL, ValueVT, Val); in getCopyToParts()
522 } else if (PartBits == ValueVT.getSizeInBits()) { in getCopyToParts()
524 assert(NumParts == 1 && PartEVT != ValueVT); in getCopyToParts()
526 } else if (NumParts * PartBits < ValueVT.getSizeInBits()) { in getCopyToParts()
529 ValueVT.isInteger() && in getCopyToParts()
531 ValueVT = EVT::getIntegerVT(*DAG.getContext(), NumParts * PartBits); in getCopyToParts()
532 Val = DAG.getNode(ISD::TRUNCATE, DL, ValueVT, Val); in getCopyToParts()
538 ValueVT = Val.getValueType(); in getCopyToParts()
539 assert(NumParts * PartBits == ValueVT.getSizeInBits() && in getCopyToParts()
543 if (PartEVT != ValueVT) { in getCopyToParts()
556 assert(PartVT.isInteger() && ValueVT.isInteger() && in getCopyToParts()
561 SDValue OddVal = DAG.getNode(ISD::SRL, DL, ValueVT, Val, in getCopyToParts()
562 DAG.getShiftAmountConstant(RoundBits, ValueVT, DL)); in getCopyToParts()
572 ValueVT = EVT::getIntegerVT(*DAG.getContext(), NumParts * PartBits); in getCopyToParts()
573 Val = DAG.getNode(ISD::TRUNCATE, DL, ValueVT, Val); in getCopyToParts()
580 ValueVT.getSizeInBits()), in getCopyToParts()
611 EVT ValueVT = Val.getValueType(); in widenVectorToPartType() local
613 ElementCount ValueNumElts = ValueVT.getVectorElementCount(); in widenVectorToPartType()
620 PartVT.getVectorElementType() != ValueVT.getVectorElementType()) in widenVectorToPartType()
647 EVT ValueVT = Val.getValueType(); in getCopyToPartsVector() local
648 assert(ValueVT.isVector() && "Not a vector"); in getCopyToPartsVector()
654 if (PartEVT == ValueVT) { in getCopyToPartsVector()
656 } else if (PartVT.getSizeInBits() == ValueVT.getSizeInBits()) { in getCopyToPartsVector()
663 ValueVT.getVectorElementType()) && in getCopyToPartsVector()
665 ValueVT.getVectorElementCount()) { in getCopyToPartsVector()
671 ValueVT.getVectorElementType() && in getCopyToPartsVector()
672 TLI.getTypeAction(*DAG.getContext(), ValueVT) == in getCopyToPartsVector()
676 EVT::getVectorVT(*DAG.getContext(), ValueVT.getVectorElementType(), in getCopyToPartsVector()
681 if (ValueVT.getVectorElementCount().isScalar()) { in getCopyToPartsVector()
685 uint64_t ValueSize = ValueVT.getFixedSizeInBits(); in getCopyToPartsVector()
706 *DAG.getContext(), CallConv.value(), ValueVT, IntermediateVT, in getCopyToPartsVector()
710 TLI.getVectorTypeBreakdown(*DAG.getContext(), ValueVT, IntermediateVT, in getCopyToPartsVector()
718 assert(IntermediateVT.isScalableVector() == ValueVT.isScalableVector() && in getCopyToPartsVector()
731 if (ValueVT == BuiltVectorTy) { in getCopyToPartsVector()
733 } else if (ValueVT.getSizeInBits() == BuiltVectorTy.getSizeInBits()) { in getCopyToPartsVector()
738 ValueVT.getVectorElementType())) { in getCopyToPartsVector()
740 ValueVT = EVT::getVectorVT(*DAG.getContext(), in getCopyToPartsVector()
742 ValueVT.getVectorElementCount()); in getCopyToPartsVector()
743 Val = DAG.getNode(ISD::ANY_EXTEND, DL, ValueVT, Val); in getCopyToPartsVector()
800 for (EVT ValueVT : ValueVTs) { in RegsForValue() local
803 ? TLI.getNumRegistersForCallingConv(Context, CC.value(), ValueVT) in RegsForValue()
804 : TLI.getNumRegisters(Context, ValueVT); in RegsForValue()
807 ? TLI.getRegisterTypeForCallingConv(Context, CC.value(), ValueVT) in RegsForValue()
808 : TLI.getRegisterType(Context, ValueVT); in RegsForValue()
832 EVT ValueVT = ValueVTs[Value]; in getCopyFromRegs() local
896 RegisterVT, ValueVT, V, CallConv); in getCopyFromRegs()
8573 EVT ValueVT = OpInfo.ConstraintVT; in getRegistersForValue() local
8575 ValueVT = RegVT; in getRegistersForValue()
8608 OpInfo.AssignedRegs = RegsForValue(Regs, RegVT, ValueVT); in getRegistersForValue()