reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
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);