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

References

lib/Target/AArch64/AArch64ISelLowering.cpp
  818   assert(VT.isVector() && "VT should be a vector type");
  820   if (VT.isFloatingPoint()) {
  821     MVT PromoteTo = EVT(VT).changeVectorElementTypeToInteger().getSimpleVT();
  822     setOperationPromotedToType(ISD::LOAD, VT, PromoteTo);
  823     setOperationPromotedToType(ISD::STORE, VT, PromoteTo);
  827   if (VT == MVT::v2f32 || VT == MVT::v4f32 || VT == MVT::v2f64) {
  827   if (VT == MVT::v2f32 || VT == MVT::v4f32 || VT == MVT::v2f64) {
  827   if (VT == MVT::v2f32 || VT == MVT::v4f32 || VT == MVT::v2f64) {
  828     setOperationAction(ISD::FSIN, VT, Expand);
  829     setOperationAction(ISD::FCOS, VT, Expand);
  830     setOperationAction(ISD::FPOW, VT, Expand);
  831     setOperationAction(ISD::FLOG, VT, Expand);
  832     setOperationAction(ISD::FLOG2, VT, Expand);
  833     setOperationAction(ISD::FLOG10, VT, Expand);
  834     setOperationAction(ISD::FEXP, VT, Expand);
  835     setOperationAction(ISD::FEXP2, VT, Expand);
  838     setOperationAction(ISD::FCOPYSIGN, VT, Custom);
  841   setOperationAction(ISD::EXTRACT_VECTOR_ELT, VT, Custom);
  842   setOperationAction(ISD::INSERT_VECTOR_ELT, VT, Custom);
  843   setOperationAction(ISD::BUILD_VECTOR, VT, Custom);
  844   setOperationAction(ISD::VECTOR_SHUFFLE, VT, Custom);
  845   setOperationAction(ISD::EXTRACT_SUBVECTOR, VT, Custom);
  846   setOperationAction(ISD::SRA, VT, Custom);
  847   setOperationAction(ISD::SRL, VT, Custom);
  848   setOperationAction(ISD::SHL, VT, Custom);
  849   setOperationAction(ISD::OR, VT, Custom);
  850   setOperationAction(ISD::SETCC, VT, Custom);
  851   setOperationAction(ISD::CONCAT_VECTORS, VT, Legal);
  853   setOperationAction(ISD::SELECT, VT, Expand);
  854   setOperationAction(ISD::SELECT_CC, VT, Expand);
  855   setOperationAction(ISD::VSELECT, VT, Expand);
  857     setLoadExtAction(ISD::EXTLOAD, InnerVT, VT, Expand);
  860   if (VT != MVT::v8i8 && VT != MVT::v16i8)
  860   if (VT != MVT::v8i8 && VT != MVT::v16i8)
  861     setOperationAction(ISD::CTPOP, VT, Custom);
  863   setOperationAction(ISD::UDIV, VT, Expand);
  864   setOperationAction(ISD::SDIV, VT, Expand);
  865   setOperationAction(ISD::UREM, VT, Expand);
  866   setOperationAction(ISD::SREM, VT, Expand);
  867   setOperationAction(ISD::FREM, VT, Expand);
  869   setOperationAction(ISD::FP_TO_SINT, VT, Custom);
  870   setOperationAction(ISD::FP_TO_UINT, VT, Custom);
  872   if (!VT.isFloatingPoint())
  873     setOperationAction(ISD::ABS, VT, Legal);
  876   if (!VT.isFloatingPoint() && VT != MVT::v2i64 && VT != MVT::v1i64)
  876   if (!VT.isFloatingPoint() && VT != MVT::v2i64 && VT != MVT::v1i64)
  876   if (!VT.isFloatingPoint() && VT != MVT::v2i64 && VT != MVT::v1i64)
  878       setOperationAction(Opcode, VT, Legal);
  881   if (VT.isFloatingPoint() &&
  882       (VT.getVectorElementType() != MVT::f16 || Subtarget->hasFullFP16()))
  885       setOperationAction(Opcode, VT, Legal);
  890       setIndexedLoadAction(im, VT, Legal);
  891       setIndexedStoreAction(im, VT, Legal);