reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
  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);