Lines Matching refs:ValueVT
190 MVT PartVT, EVT ValueVT, const Value *V,
200 MVT PartVT, EVT ValueVT, const Value *V, in getCopyFromParts() argument
203 if (ValueVT.isVector()) in getCopyFromParts()
204 return getCopyFromPartsVector(DAG, DL, Parts, NumParts, PartVT, ValueVT, V, in getCopyFromParts()
213 if (ValueVT.isInteger()) { in getCopyFromParts()
215 unsigned ValueBits = ValueVT.getSizeInBits(); in getCopyFromParts()
222 ValueVT : EVT::getIntegerVT(*DAG.getContext(), RoundBits); in getCopyFromParts()
264 assert(ValueVT == EVT(MVT::ppcf128) && PartVT == MVT::f64 && in getCopyFromParts()
269 if (TLI.hasBigEndianPartOrdering(ValueVT, DAG.getDataLayout())) in getCopyFromParts()
271 Val = DAG.getNode(ISD::BUILD_PAIR, DL, ValueVT, Lo, Hi); in getCopyFromParts()
274 assert(ValueVT.isFloatingPoint() && PartVT.isInteger() && in getCopyFromParts()
276 EVT IntVT = EVT::getIntegerVT(*DAG.getContext(), ValueVT.getSizeInBits()); in getCopyFromParts()
286 if (PartEVT == ValueVT) in getCopyFromParts()
289 if (PartEVT.isInteger() && ValueVT.isFloatingPoint() && in getCopyFromParts()
290 ValueVT.bitsLT(PartEVT)) { in getCopyFromParts()
293 PartEVT = EVT::getIntegerVT(*DAG.getContext(), ValueVT.getSizeInBits()); in getCopyFromParts()
298 if (PartEVT.getSizeInBits() == ValueVT.getSizeInBits()) in getCopyFromParts()
299 return DAG.getNode(ISD::BITCAST, DL, ValueVT, Val); in getCopyFromParts()
302 if (PartEVT.isInteger() && ValueVT.isInteger()) { in getCopyFromParts()
303 if (ValueVT.bitsLT(PartEVT)) { in getCopyFromParts()
309 DAG.getValueType(ValueVT)); in getCopyFromParts()
310 return DAG.getNode(ISD::TRUNCATE, DL, ValueVT, Val); in getCopyFromParts()
312 return DAG.getNode(ISD::ANY_EXTEND, DL, ValueVT, Val); in getCopyFromParts()
315 if (PartEVT.isFloatingPoint() && ValueVT.isFloatingPoint()) { in getCopyFromParts()
317 if (ValueVT.bitsLT(Val.getValueType())) in getCopyFromParts()
319 ISD::FP_ROUND, DL, ValueVT, Val, in getCopyFromParts()
322 return DAG.getNode(ISD::FP_EXTEND, DL, ValueVT, Val); in getCopyFromParts()
349 MVT PartVT, EVT ValueVT, const Value *V, in getCopyFromPartsVector() argument
351 assert(ValueVT.isVector() && "Not a vector value"); in getCopyFromPartsVector()
367 *DAG.getContext(), CallConv.getValue(), ValueVT, IntermediateVT, in getCopyFromPartsVector()
371 TLI.getVectorTypeBreakdown(*DAG.getContext(), ValueVT, IntermediateVT, in getCopyFromPartsVector()
416 if (PartEVT == ValueVT) in getCopyFromPartsVector()
424 if (PartEVT.getVectorElementType() == ValueVT.getVectorElementType()) { in getCopyFromPartsVector()
425 assert(PartEVT.getVectorNumElements() > ValueVT.getVectorNumElements() && in getCopyFromPartsVector()
428 ISD::EXTRACT_SUBVECTOR, DL, ValueVT, Val, in getCopyFromPartsVector()
433 if (ValueVT.getSizeInBits() == PartEVT.getSizeInBits()) in getCopyFromPartsVector()
434 return DAG.getNode(ISD::BITCAST, DL, ValueVT, Val); in getCopyFromPartsVector()
436 assert(PartEVT.getVectorNumElements() == ValueVT.getVectorNumElements() && in getCopyFromPartsVector()
439 return DAG.getAnyExtOrTrunc(Val, DL, ValueVT); in getCopyFromPartsVector()
445 if (PartEVT.getSizeInBits() == ValueVT.getSizeInBits() && in getCopyFromPartsVector()
446 TLI.isTypeLegal(ValueVT)) in getCopyFromPartsVector()
447 return DAG.getNode(ISD::BITCAST, DL, ValueVT, Val); in getCopyFromPartsVector()
449 if (ValueVT.getVectorNumElements() != 1) { in getCopyFromPartsVector()
452 if (ValueVT.getSizeInBits() == PartEVT.getSizeInBits()) { in getCopyFromPartsVector()
453 return DAG.getNode(ISD::BITCAST, DL, ValueVT, Val); in getCopyFromPartsVector()
454 } else if (ValueVT.getSizeInBits() < PartEVT.getSizeInBits()) { in getCopyFromPartsVector()
457 unsigned Elts = PartEVT.getSizeInBits() / ValueVT.getScalarSizeInBits(); in getCopyFromPartsVector()
459 ValueVT.getVectorElementType(), Elts); in getCopyFromPartsVector()
462 ISD::EXTRACT_SUBVECTOR, DL, ValueVT, Val, in getCopyFromPartsVector()
468 return DAG.getUNDEF(ValueVT); in getCopyFromPartsVector()
472 EVT ValueSVT = ValueVT.getVectorElementType(); in getCopyFromPartsVector()
473 if (ValueVT.getVectorNumElements() == 1 && ValueSVT != PartEVT) in getCopyFromPartsVector()
474 Val = ValueVT.isFloatingPoint() ? DAG.getFPExtendOrRound(Val, DL, ValueSVT) in getCopyFromPartsVector()
477 return DAG.getBuildVector(ValueVT, DL, Val); in getCopyFromPartsVector()
493 EVT ValueVT = Val.getValueType(); in getCopyToParts() local
496 if (ValueVT.isVector()) in getCopyToParts()
508 assert(!ValueVT.isVector() && "Vector case handled elsewhere"); in getCopyToParts()
510 if (PartEVT == ValueVT) { in getCopyToParts()
516 if (NumParts * PartBits > ValueVT.getSizeInBits()) { in getCopyToParts()
518 if (PartVT.isFloatingPoint() && ValueVT.isFloatingPoint()) { in getCopyToParts()
522 if (ValueVT.isFloatingPoint()) { in getCopyToParts()
525 ValueVT = EVT::getIntegerVT(*DAG.getContext(), ValueVT.getSizeInBits()); in getCopyToParts()
526 Val = DAG.getNode(ISD::BITCAST, DL, ValueVT, Val); in getCopyToParts()
529 ValueVT.isInteger() && in getCopyToParts()
531 ValueVT = EVT::getIntegerVT(*DAG.getContext(), NumParts * PartBits); in getCopyToParts()
532 Val = DAG.getNode(ExtendKind, DL, ValueVT, Val); in getCopyToParts()
536 } else if (PartBits == ValueVT.getSizeInBits()) { in getCopyToParts()
538 assert(NumParts == 1 && PartEVT != ValueVT); in getCopyToParts()
540 } else if (NumParts * PartBits < ValueVT.getSizeInBits()) { in getCopyToParts()
543 ValueVT.isInteger() && in getCopyToParts()
545 ValueVT = EVT::getIntegerVT(*DAG.getContext(), NumParts * PartBits); in getCopyToParts()
546 Val = DAG.getNode(ISD::TRUNCATE, DL, ValueVT, Val); in getCopyToParts()
552 ValueVT = Val.getValueType(); in getCopyToParts()
553 assert(NumParts * PartBits == ValueVT.getSizeInBits() && in getCopyToParts()
557 if (PartEVT != ValueVT) { in getCopyToParts()
570 assert(PartVT.isInteger() && ValueVT.isInteger() && in getCopyToParts()
575 SDValue OddVal = DAG.getNode(ISD::SRL, DL, ValueVT, Val, in getCopyToParts()
585 ValueVT = EVT::getIntegerVT(*DAG.getContext(), NumParts * PartBits); in getCopyToParts()
586 Val = DAG.getNode(ISD::TRUNCATE, DL, ValueVT, Val); in getCopyToParts()
593 ValueVT.getSizeInBits()), in getCopyToParts()
624 EVT ValueVT = Val.getValueType(); in widenVectorToPartType() local
626 unsigned ValueNumElts = ValueVT.getVectorNumElements(); in widenVectorToPartType()
628 PartVT.getVectorElementType() == ValueVT.getVectorElementType()) { in widenVectorToPartType()
651 EVT ValueVT = Val.getValueType(); in getCopyToPartsVector() local
652 assert(ValueVT.isVector() && "Not a vector"); in getCopyToPartsVector()
658 if (PartEVT == ValueVT) { in getCopyToPartsVector()
660 } else if (PartVT.getSizeInBits() == ValueVT.getSizeInBits()) { in getCopyToPartsVector()
667 ValueVT.getVectorElementType()) && in getCopyToPartsVector()
668 PartEVT.getVectorNumElements() == ValueVT.getVectorNumElements()) { in getCopyToPartsVector()
673 if (ValueVT.getVectorNumElements() == 1) { in getCopyToPartsVector()
678 assert(PartVT.getSizeInBits() > ValueVT.getSizeInBits() && in getCopyToPartsVector()
681 EVT::getIntegerVT(*DAG.getContext(), ValueVT.getSizeInBits()); in getCopyToPartsVector()
699 *DAG.getContext(), CallConv.getValue(), ValueVT, IntermediateVT, in getCopyToPartsVector()
703 TLI.getVectorTypeBreakdown(*DAG.getContext(), ValueVT, IntermediateVT, in getCopyToPartsVector()
720 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()
7413 EVT ValueVT = OpInfo.ConstraintVT; in GetRegistersForValue() local
7415 ValueVT = RegVT; in GetRegistersForValue()
7444 OpInfo.AssignedRegs = RegsForValue(Regs, RegVT, ValueVT); in GetRegistersForValue()