reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
361 assert(ValueVT.isVector() && "Not a vector value"); 377 *DAG.getContext(), CallConv.getValue(), ValueVT, IntermediateVT, 381 TLI.getVectorTypeBreakdown(*DAG.getContext(), ValueVT, IntermediateVT, 426 if (PartEVT == ValueVT) 434 if (PartEVT.getVectorElementType() == ValueVT.getVectorElementType()) { 435 assert(PartEVT.getVectorNumElements() > ValueVT.getVectorNumElements() && 438 ISD::EXTRACT_SUBVECTOR, DL, ValueVT, Val, 443 if (ValueVT.getSizeInBits() == PartEVT.getSizeInBits()) 444 return DAG.getNode(ISD::BITCAST, DL, ValueVT, Val); 446 assert(PartEVT.getVectorNumElements() == ValueVT.getVectorNumElements() && 449 return DAG.getAnyExtOrTrunc(Val, DL, ValueVT); 455 if (PartEVT.getSizeInBits() == ValueVT.getSizeInBits() && 456 TLI.isTypeLegal(ValueVT)) 457 return DAG.getNode(ISD::BITCAST, DL, ValueVT, Val); 459 if (ValueVT.getVectorNumElements() != 1) { 462 if (ValueVT.getSizeInBits() == PartEVT.getSizeInBits()) { 463 return DAG.getNode(ISD::BITCAST, DL, ValueVT, Val); 464 } else if (ValueVT.getSizeInBits() < PartEVT.getSizeInBits()) { 467 unsigned Elts = PartEVT.getSizeInBits() / ValueVT.getScalarSizeInBits(); 469 ValueVT.getVectorElementType(), Elts); 472 ISD::EXTRACT_SUBVECTOR, DL, ValueVT, Val, 478 return DAG.getUNDEF(ValueVT); 482 EVT ValueSVT = ValueVT.getVectorElementType(); 483 if (ValueVT.getVectorNumElements() == 1 && ValueSVT != PartEVT) 484 Val = ValueVT.isFloatingPoint() ? DAG.getFPExtendOrRound(Val, DL, ValueSVT) 487 return DAG.getBuildVector(ValueVT, DL, Val);