Lines Matching refs:ValueVT
155 MVT PartVT, EVT ValueVT, const Value *V,
166 unsigned NumParts, MVT PartVT, EVT ValueVT, const Value *V, in getCopyFromParts() argument
173 PartVT, ValueVT, CC)) in getCopyFromParts()
176 if (ValueVT.isVector()) in getCopyFromParts()
177 return getCopyFromPartsVector(DAG, DL, Parts, NumParts, PartVT, ValueVT, V, in getCopyFromParts()
185 if (ValueVT.isInteger()) { in getCopyFromParts()
187 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()
258 if (PartEVT == ValueVT) in getCopyFromParts()
261 if (PartEVT.isInteger() && ValueVT.isFloatingPoint() && in getCopyFromParts()
262 ValueVT.bitsLT(PartEVT)) { in getCopyFromParts()
265 PartEVT = EVT::getIntegerVT(*DAG.getContext(), ValueVT.getSizeInBits()); in getCopyFromParts()
270 if (PartEVT.getSizeInBits() == ValueVT.getSizeInBits()) in getCopyFromParts()
271 return DAG.getNode(ISD::BITCAST, DL, ValueVT, Val); in getCopyFromParts()
274 if (PartEVT.isInteger() && ValueVT.isInteger()) { in getCopyFromParts()
275 if (ValueVT.bitsLT(PartEVT)) { in getCopyFromParts()
281 DAG.getValueType(ValueVT)); in getCopyFromParts()
282 return DAG.getNode(ISD::TRUNCATE, DL, ValueVT, Val); in getCopyFromParts()
284 return DAG.getNode(ISD::ANY_EXTEND, DL, ValueVT, Val); in getCopyFromParts()
287 if (PartEVT.isFloatingPoint() && ValueVT.isFloatingPoint()) { in getCopyFromParts()
289 if (ValueVT.bitsLT(Val.getValueType())) { in getCopyFromParts()
297 DAG.getVTList(ValueVT, MVT::Other), InChain, Val, in getCopyFromParts()
301 return DAG.getNode(ISD::FP_ROUND, DL, ValueVT, Val, NoChange); in getCopyFromParts()
304 return DAG.getNode(ISD::FP_EXTEND, DL, ValueVT, Val); in getCopyFromParts()
309 if (PartEVT == MVT::x86mmx && ValueVT.isInteger() && in getCopyFromParts()
310 ValueVT.bitsLT(PartEVT)) { in getCopyFromParts()
312 return DAG.getNode(ISD::TRUNCATE, DL, ValueVT, Val); in getCopyFromParts()
339 MVT PartVT, EVT ValueVT, const Value *V, in getCopyFromPartsVector() argument
342 assert(ValueVT.isVector() && "Not a vector value"); in getCopyFromPartsVector()
358 *DAG.getContext(), *CallConv, ValueVT, IntermediateVT, in getCopyFromPartsVector()
362 TLI.getVectorTypeBreakdown(*DAG.getContext(), ValueVT, IntermediateVT, in getCopyFromPartsVector()
410 if (PartEVT == ValueVT) in getCopyFromPartsVector()
415 if (ValueVT.getSizeInBits() == PartEVT.getSizeInBits()) in getCopyFromPartsVector()
416 return DAG.getNode(ISD::BITCAST, DL, ValueVT, Val); in getCopyFromPartsVector()
421 if (PartEVT.getVectorElementCount() != ValueVT.getVectorElementCount()) { in getCopyFromPartsVector()
423 ValueVT.getVectorElementCount().getKnownMinValue()) && in getCopyFromPartsVector()
425 ValueVT.getVectorElementCount().isScalable()) && in getCopyFromPartsVector()
429 ValueVT.getVectorElementCount()); in getCopyFromPartsVector()
432 if (PartEVT == ValueVT) in getCopyFromPartsVector()
434 if (PartEVT.isInteger() && ValueVT.isFloatingPoint()) in getCopyFromPartsVector()
435 return DAG.getNode(ISD::BITCAST, DL, ValueVT, Val); in getCopyFromPartsVector()
438 if (ValueVT.getSizeInBits() == PartEVT.getSizeInBits()) in getCopyFromPartsVector()
439 return DAG.getNode(ISD::BITCAST, DL, ValueVT, Val); in getCopyFromPartsVector()
443 return DAG.getAnyExtOrTrunc(Val, DL, ValueVT); in getCopyFromPartsVector()
448 if (PartEVT.getSizeInBits() == ValueVT.getSizeInBits() && in getCopyFromPartsVector()
449 TLI.isTypeLegal(ValueVT)) in getCopyFromPartsVector()
450 return DAG.getNode(ISD::BITCAST, DL, ValueVT, Val); in getCopyFromPartsVector()
452 if (ValueVT.getVectorNumElements() != 1) { in getCopyFromPartsVector()
455 if (ValueVT.getSizeInBits() == PartEVT.getSizeInBits()) { in getCopyFromPartsVector()
456 return DAG.getNode(ISD::BITCAST, DL, ValueVT, Val); in getCopyFromPartsVector()
457 } else if (ValueVT.bitsLT(PartEVT)) { in getCopyFromPartsVector()
458 const uint64_t ValueSize = ValueVT.getFixedSizeInBits(); in getCopyFromPartsVector()
462 return DAG.getBitcast(ValueVT, Val); in getCopyFromPartsVector()
467 return DAG.getUNDEF(ValueVT); in getCopyFromPartsVector()
471 EVT ValueSVT = ValueVT.getVectorElementType(); in getCopyFromPartsVector()
472 if (ValueVT.getVectorNumElements() == 1 && ValueSVT != PartEVT) { in getCopyFromPartsVector()
485 Val = ValueVT.isFloatingPoint() in getCopyFromPartsVector()
491 return DAG.getBuildVector(ValueVT, DL, Val); in getCopyFromPartsVector()
512 EVT ValueVT = Val.getValueType(); in getCopyToParts() local
515 if (ValueVT.isVector()) in getCopyToParts()
526 assert(!ValueVT.isVector() && "Vector case handled elsewhere"); in getCopyToParts()
528 if (PartEVT == ValueVT) { in getCopyToParts()
535 if (NumParts * PartBits > ValueVT.getSizeInBits()) { in getCopyToParts()
537 if (PartVT.isFloatingPoint() && ValueVT.isFloatingPoint()) { in getCopyToParts()
541 if (ValueVT.isFloatingPoint()) { in getCopyToParts()
544 ValueVT = EVT::getIntegerVT(*DAG.getContext(), ValueVT.getSizeInBits()); in getCopyToParts()
545 Val = DAG.getNode(ISD::BITCAST, DL, ValueVT, Val); in getCopyToParts()
548 ValueVT.isInteger() && in getCopyToParts()
550 ValueVT = EVT::getIntegerVT(*DAG.getContext(), NumParts * PartBits); in getCopyToParts()
551 Val = DAG.getNode(ExtendKind, DL, ValueVT, Val); in getCopyToParts()
555 } else if (PartBits == ValueVT.getSizeInBits()) { in getCopyToParts()
557 assert(NumParts == 1 && PartEVT != ValueVT); in getCopyToParts()
559 } else if (NumParts * PartBits < ValueVT.getSizeInBits()) { in getCopyToParts()
562 ValueVT.isInteger() && in getCopyToParts()
564 ValueVT = EVT::getIntegerVT(*DAG.getContext(), NumParts * PartBits); in getCopyToParts()
565 Val = DAG.getNode(ISD::TRUNCATE, DL, ValueVT, Val); in getCopyToParts()
571 ValueVT = Val.getValueType(); in getCopyToParts()
572 assert(NumParts * PartBits == ValueVT.getSizeInBits() && in getCopyToParts()
576 if (PartEVT != ValueVT) { in getCopyToParts()
589 assert(PartVT.isInteger() && ValueVT.isInteger() && in getCopyToParts()
594 SDValue OddVal = DAG.getNode(ISD::SRL, DL, ValueVT, Val, in getCopyToParts()
595 DAG.getShiftAmountConstant(RoundBits, ValueVT, DL)); in getCopyToParts()
605 ValueVT = EVT::getIntegerVT(*DAG.getContext(), NumParts * PartBits); in getCopyToParts()
606 Val = DAG.getNode(ISD::TRUNCATE, DL, ValueVT, Val); in getCopyToParts()
613 ValueVT.getSizeInBits()), in getCopyToParts()
644 EVT ValueVT = Val.getValueType(); in widenVectorToPartType() local
646 EVT ValueEVT = ValueVT.getVectorElementType(); in widenVectorToPartType()
648 ElementCount ValueNumElts = ValueVT.getVectorElementCount(); in widenVectorToPartType()
662 ValueVT.changeVectorElementType(MVT::f16), Val); in widenVectorToPartType()
690 EVT ValueVT = Val.getValueType(); in getCopyToPartsVector() local
691 assert(ValueVT.isVector() && "Not a vector"); in getCopyToPartsVector()
697 if (PartEVT == ValueVT) { in getCopyToPartsVector()
699 } else if (PartVT.getSizeInBits() == ValueVT.getSizeInBits()) { in getCopyToPartsVector()
706 ValueVT.getVectorElementType()) && in getCopyToPartsVector()
708 ValueVT.getVectorElementCount()) { in getCopyToPartsVector()
714 ValueVT.getVectorElementType() && in getCopyToPartsVector()
715 TLI.getTypeAction(*DAG.getContext(), ValueVT) == in getCopyToPartsVector()
719 EVT::getVectorVT(*DAG.getContext(), ValueVT.getVectorElementType(), in getCopyToPartsVector()
727 if (ValueVT.getVectorElementCount().isScalar() && in getCopyToPartsVector()
728 (!ValueVT.isFloatingPoint() || !PartVT.isInteger())) { in getCopyToPartsVector()
732 uint64_t ValueSize = ValueVT.getFixedSizeInBits(); in getCopyToPartsVector()
753 *DAG.getContext(), *CallConv, ValueVT, IntermediateVT, NumIntermediates, in getCopyToPartsVector()
757 TLI.getVectorTypeBreakdown(*DAG.getContext(), ValueVT, IntermediateVT, in getCopyToPartsVector()
765 assert(IntermediateVT.isScalableVector() == ValueVT.isScalableVector() && in getCopyToPartsVector()
778 if (ValueVT == BuiltVectorTy) { in getCopyToPartsVector()
780 } else if (ValueVT.getSizeInBits() == BuiltVectorTy.getSizeInBits()) { in getCopyToPartsVector()
785 ValueVT.getVectorElementType())) { in getCopyToPartsVector()
787 ValueVT = EVT::getVectorVT(*DAG.getContext(), in getCopyToPartsVector()
789 ValueVT.getVectorElementCount()); in getCopyToPartsVector()
790 Val = DAG.getNode(ISD::ANY_EXTEND, DL, ValueVT, Val); in getCopyToPartsVector()
847 for (EVT ValueVT : ValueVTs) { in RegsForValue() local
850 ? TLI.getNumRegistersForCallingConv(Context, *CC, ValueVT) in RegsForValue()
851 : TLI.getNumRegisters(Context, ValueVT); in RegsForValue()
854 ? TLI.getRegisterTypeForCallingConv(Context, *CC, ValueVT) in RegsForValue()
855 : TLI.getRegisterType(Context, ValueVT); in RegsForValue()
879 EVT ValueVT = ValueVTs[Value]; in getCopyFromRegs() local
943 RegisterVT, ValueVT, V, Chain, CallConv); in getCopyFromRegs()
9150 EVT ValueVT = OpInfo.ConstraintVT; in getRegistersForValue() local
9152 ValueVT = RegVT; in getRegistersForValue()
9185 OpInfo.AssignedRegs = RegsForValue(Regs, RegVT, ValueVT); in getRegistersForValue()