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

References

include/llvm/CodeGen/TargetLowering.h
 2116     setOperationAction(Opc, OrigVT, Promote);
lib/CodeGen/TargetLoweringBase.cpp
  615       setOperationAction(ISD::ATOMIC_SWAP, VT, Promote);
  630     setOperationAction(ISD::ATOMIC_CMP_SWAP_WITH_SUCCESS, VT, Expand);
  633     setOperationAction(ISD::FGETSIGN, VT, Expand);
  634     setOperationAction(ISD::CONCAT_VECTORS, VT, Expand);
  635     setOperationAction(ISD::FMINNUM, VT, Expand);
  636     setOperationAction(ISD::FMAXNUM, VT, Expand);
  637     setOperationAction(ISD::FMINNUM_IEEE, VT, Expand);
  638     setOperationAction(ISD::FMAXNUM_IEEE, VT, Expand);
  639     setOperationAction(ISD::FMINIMUM, VT, Expand);
  640     setOperationAction(ISD::FMAXIMUM, VT, Expand);
  641     setOperationAction(ISD::FMAD, VT, Expand);
  642     setOperationAction(ISD::SMIN, VT, Expand);
  643     setOperationAction(ISD::SMAX, VT, Expand);
  644     setOperationAction(ISD::UMIN, VT, Expand);
  645     setOperationAction(ISD::UMAX, VT, Expand);
  646     setOperationAction(ISD::ABS, VT, Expand);
  647     setOperationAction(ISD::FSHL, VT, Expand);
  648     setOperationAction(ISD::FSHR, VT, Expand);
  649     setOperationAction(ISD::SADDSAT, VT, Expand);
  650     setOperationAction(ISD::UADDSAT, VT, Expand);
  651     setOperationAction(ISD::SSUBSAT, VT, Expand);
  652     setOperationAction(ISD::USUBSAT, VT, Expand);
  653     setOperationAction(ISD::SMULFIX, VT, Expand);
  654     setOperationAction(ISD::SMULFIXSAT, VT, Expand);
  655     setOperationAction(ISD::UMULFIX, VT, Expand);
  656     setOperationAction(ISD::UMULFIXSAT, VT, Expand);
  659     setOperationAction(ISD::SADDO, VT, Expand);
  660     setOperationAction(ISD::SSUBO, VT, Expand);
  661     setOperationAction(ISD::UADDO, VT, Expand);
  662     setOperationAction(ISD::USUBO, VT, Expand);
  663     setOperationAction(ISD::SMULO, VT, Expand);
  664     setOperationAction(ISD::UMULO, VT, Expand);
  667     setOperationAction(ISD::ADDCARRY, VT, Expand);
  668     setOperationAction(ISD::SUBCARRY, VT, Expand);
  669     setOperationAction(ISD::SETCCCARRY, VT, Expand);
  672     setOperationAction(ISD::ADDC, VT, Expand);
  673     setOperationAction(ISD::ADDE, VT, Expand);
  674     setOperationAction(ISD::SUBC, VT, Expand);
  675     setOperationAction(ISD::SUBE, VT, Expand);
  678     setOperationAction(ISD::CTLZ_ZERO_UNDEF, VT, Expand);
  679     setOperationAction(ISD::CTTZ_ZERO_UNDEF, VT, Expand);
  681     setOperationAction(ISD::BITREVERSE, VT, Expand);
  684     setOperationAction(ISD::FROUND, VT, Expand);
  685     setOperationAction(ISD::FPOWI, VT, Expand);
  689       setOperationAction(ISD::FCOPYSIGN, VT, Expand);
  690       setOperationAction(ISD::ANY_EXTEND_VECTOR_INREG, VT, Expand);
  691       setOperationAction(ISD::SIGN_EXTEND_VECTOR_INREG, VT, Expand);
  692       setOperationAction(ISD::ZERO_EXTEND_VECTOR_INREG, VT, Expand);
  693       setOperationAction(ISD::SPLAT_VECTOR, VT, Expand);
  697     setOperationAction(ISD::STRICT_FADD, VT, Expand);
  698     setOperationAction(ISD::STRICT_FSUB, VT, Expand);
  699     setOperationAction(ISD::STRICT_FMUL, VT, Expand);
  700     setOperationAction(ISD::STRICT_FDIV, VT, Expand);
  701     setOperationAction(ISD::STRICT_FREM, VT, Expand);
  702     setOperationAction(ISD::STRICT_FMA, VT, Expand);
  703     setOperationAction(ISD::STRICT_FSQRT, VT, Expand);
  704     setOperationAction(ISD::STRICT_FPOW, VT, Expand);
  705     setOperationAction(ISD::STRICT_FPOWI, VT, Expand);
  706     setOperationAction(ISD::STRICT_FSIN, VT, Expand);
  707     setOperationAction(ISD::STRICT_FCOS, VT, Expand);
  708     setOperationAction(ISD::STRICT_FEXP, VT, Expand);
  709     setOperationAction(ISD::STRICT_FEXP2, VT, Expand);
  710     setOperationAction(ISD::STRICT_FLOG, VT, Expand);
  711     setOperationAction(ISD::STRICT_FLOG10, VT, Expand);
  712     setOperationAction(ISD::STRICT_FLOG2, VT, Expand);
  713     setOperationAction(ISD::STRICT_LRINT, VT, Expand);
  714     setOperationAction(ISD::STRICT_LLRINT, VT, Expand);
  715     setOperationAction(ISD::STRICT_FRINT, VT, Expand);
  716     setOperationAction(ISD::STRICT_FNEARBYINT, VT, Expand);
  717     setOperationAction(ISD::STRICT_FCEIL, VT, Expand);
  718     setOperationAction(ISD::STRICT_FFLOOR, VT, Expand);
  719     setOperationAction(ISD::STRICT_LROUND, VT, Expand);
  720     setOperationAction(ISD::STRICT_LLROUND, VT, Expand);
  721     setOperationAction(ISD::STRICT_FROUND, VT, Expand);
  722     setOperationAction(ISD::STRICT_FTRUNC, VT, Expand);
  723     setOperationAction(ISD::STRICT_FMAXNUM, VT, Expand);
  724     setOperationAction(ISD::STRICT_FMINNUM, VT, Expand);
  725     setOperationAction(ISD::STRICT_FP_ROUND, VT, Expand);
  726     setOperationAction(ISD::STRICT_FP_EXTEND, VT, Expand);
  727     setOperationAction(ISD::STRICT_FP_TO_SINT, VT, Expand);
  728     setOperationAction(ISD::STRICT_FP_TO_UINT, VT, Expand);
  731     setOperationAction(ISD::GET_DYNAMIC_AREA_OFFSET, VT, Expand);
  734     setOperationAction(ISD::VECREDUCE_FADD, VT, Expand);
  735     setOperationAction(ISD::VECREDUCE_FMUL, VT, Expand);
  736     setOperationAction(ISD::VECREDUCE_ADD, VT, Expand);
  737     setOperationAction(ISD::VECREDUCE_MUL, VT, Expand);
  738     setOperationAction(ISD::VECREDUCE_AND, VT, Expand);
  739     setOperationAction(ISD::VECREDUCE_OR, VT, Expand);
  740     setOperationAction(ISD::VECREDUCE_XOR, VT, Expand);
  741     setOperationAction(ISD::VECREDUCE_SMAX, VT, Expand);
  742     setOperationAction(ISD::VECREDUCE_SMIN, VT, Expand);
  743     setOperationAction(ISD::VECREDUCE_UMAX, VT, Expand);
  744     setOperationAction(ISD::VECREDUCE_UMIN, VT, Expand);
  745     setOperationAction(ISD::VECREDUCE_FMAX, VT, Expand);
  746     setOperationAction(ISD::VECREDUCE_FMIN, VT, Expand);
  750   setOperationAction(ISD::PREFETCH, MVT::Other, Expand);
  753   setOperationAction(ISD::READCYCLECOUNTER, MVT::i64, Expand);
  758   setOperationAction(ISD::ConstantFP, MVT::f16, Expand);
  759   setOperationAction(ISD::ConstantFP, MVT::f32, Expand);
  760   setOperationAction(ISD::ConstantFP, MVT::f64, Expand);
  761   setOperationAction(ISD::ConstantFP, MVT::f80, Expand);
  762   setOperationAction(ISD::ConstantFP, MVT::f128, Expand);
  766     setOperationAction(ISD::FCBRT,      VT, Expand);
  767     setOperationAction(ISD::FLOG ,      VT, Expand);
  768     setOperationAction(ISD::FLOG2,      VT, Expand);
  769     setOperationAction(ISD::FLOG10,     VT, Expand);
  770     setOperationAction(ISD::FEXP ,      VT, Expand);
  771     setOperationAction(ISD::FEXP2,      VT, Expand);
  772     setOperationAction(ISD::FFLOOR,     VT, Expand);
  773     setOperationAction(ISD::FNEARBYINT, VT, Expand);
  774     setOperationAction(ISD::FCEIL,      VT, Expand);
  775     setOperationAction(ISD::FRINT,      VT, Expand);
  776     setOperationAction(ISD::FTRUNC,     VT, Expand);
  777     setOperationAction(ISD::FROUND,     VT, Expand);
  778     setOperationAction(ISD::LROUND,     VT, Expand);
  779     setOperationAction(ISD::LLROUND,    VT, Expand);
  780     setOperationAction(ISD::LRINT,      VT, Expand);
  781     setOperationAction(ISD::LLRINT,     VT, Expand);
  785   setOperationAction(ISD::TRAP, MVT::Other, Expand);
  789   setOperationAction(ISD::DEBUGTRAP, MVT::Other, Expand);
lib/Target/AArch64/AArch64ISelLowering.cpp
  192   setOperationAction(ISD::GlobalAddress, MVT::i64, Custom);
  193   setOperationAction(ISD::GlobalTLSAddress, MVT::i64, Custom);
  194   setOperationAction(ISD::SETCC, MVT::i32, Custom);
  195   setOperationAction(ISD::SETCC, MVT::i64, Custom);
  196   setOperationAction(ISD::SETCC, MVT::f16, Custom);
  197   setOperationAction(ISD::SETCC, MVT::f32, Custom);
  198   setOperationAction(ISD::SETCC, MVT::f64, Custom);
  199   setOperationAction(ISD::BITREVERSE, MVT::i32, Legal);
  200   setOperationAction(ISD::BITREVERSE, MVT::i64, Legal);
  201   setOperationAction(ISD::BRCOND, MVT::Other, Expand);
  202   setOperationAction(ISD::BR_CC, MVT::i32, Custom);
  203   setOperationAction(ISD::BR_CC, MVT::i64, Custom);
  204   setOperationAction(ISD::BR_CC, MVT::f16, Custom);
  205   setOperationAction(ISD::BR_CC, MVT::f32, Custom);
  206   setOperationAction(ISD::BR_CC, MVT::f64, Custom);
  207   setOperationAction(ISD::SELECT, MVT::i32, Custom);
  208   setOperationAction(ISD::SELECT, MVT::i64, Custom);
  209   setOperationAction(ISD::SELECT, MVT::f16, Custom);
  210   setOperationAction(ISD::SELECT, MVT::f32, Custom);
  211   setOperationAction(ISD::SELECT, MVT::f64, Custom);
  212   setOperationAction(ISD::SELECT_CC, MVT::i32, Custom);
  213   setOperationAction(ISD::SELECT_CC, MVT::i64, Custom);
  214   setOperationAction(ISD::SELECT_CC, MVT::f16, Custom);
  215   setOperationAction(ISD::SELECT_CC, MVT::f32, Custom);
  216   setOperationAction(ISD::SELECT_CC, MVT::f64, Custom);
  217   setOperationAction(ISD::BR_JT, MVT::Other, Custom);
  218   setOperationAction(ISD::JumpTable, MVT::i64, Custom);
  220   setOperationAction(ISD::SHL_PARTS, MVT::i64, Custom);
  221   setOperationAction(ISD::SRA_PARTS, MVT::i64, Custom);
  222   setOperationAction(ISD::SRL_PARTS, MVT::i64, Custom);
  224   setOperationAction(ISD::FREM, MVT::f32, Expand);
  225   setOperationAction(ISD::FREM, MVT::f64, Expand);
  226   setOperationAction(ISD::FREM, MVT::f80, Expand);
  228   setOperationAction(ISD::BUILD_PAIR, MVT::i64, Expand);
  232   setOperationAction(ISD::XOR, MVT::i32, Custom);
  233   setOperationAction(ISD::XOR, MVT::i64, Custom);
  237   setOperationAction(ISD::FABS, MVT::f128, Expand);
  238   setOperationAction(ISD::FADD, MVT::f128, Custom);
  239   setOperationAction(ISD::FCOPYSIGN, MVT::f128, Expand);
  240   setOperationAction(ISD::FCOS, MVT::f128, Expand);
  241   setOperationAction(ISD::FDIV, MVT::f128, Custom);
  242   setOperationAction(ISD::FMA, MVT::f128, Expand);
  243   setOperationAction(ISD::FMUL, MVT::f128, Custom);
  244   setOperationAction(ISD::FNEG, MVT::f128, Expand);
  245   setOperationAction(ISD::FPOW, MVT::f128, Expand);
  246   setOperationAction(ISD::FREM, MVT::f128, Expand);
  247   setOperationAction(ISD::FRINT, MVT::f128, Expand);
  248   setOperationAction(ISD::FSIN, MVT::f128, Expand);
  249   setOperationAction(ISD::FSINCOS, MVT::f128, Expand);
  250   setOperationAction(ISD::FSQRT, MVT::f128, Expand);
  251   setOperationAction(ISD::FSUB, MVT::f128, Custom);
  252   setOperationAction(ISD::FTRUNC, MVT::f128, Expand);
  253   setOperationAction(ISD::SETCC, MVT::f128, Custom);
  254   setOperationAction(ISD::BR_CC, MVT::f128, Custom);
  255   setOperationAction(ISD::SELECT, MVT::f128, Custom);
  256   setOperationAction(ISD::SELECT_CC, MVT::f128, Custom);
  257   setOperationAction(ISD::FP_EXTEND, MVT::f128, Custom);
  261   setOperationAction(ISD::FP_TO_SINT, MVT::i32, Custom);
  262   setOperationAction(ISD::FP_TO_SINT, MVT::i64, Custom);
  263   setOperationAction(ISD::FP_TO_SINT, MVT::i128, Custom);
  264   setOperationAction(ISD::FP_TO_UINT, MVT::i32, Custom);
  265   setOperationAction(ISD::FP_TO_UINT, MVT::i64, Custom);
  266   setOperationAction(ISD::FP_TO_UINT, MVT::i128, Custom);
  267   setOperationAction(ISD::SINT_TO_FP, MVT::i32, Custom);
  268   setOperationAction(ISD::SINT_TO_FP, MVT::i64, Custom);
  269   setOperationAction(ISD::SINT_TO_FP, MVT::i128, Custom);
  270   setOperationAction(ISD::UINT_TO_FP, MVT::i32, Custom);
  271   setOperationAction(ISD::UINT_TO_FP, MVT::i64, Custom);
  272   setOperationAction(ISD::UINT_TO_FP, MVT::i128, Custom);
  273   setOperationAction(ISD::FP_ROUND, MVT::f32, Custom);
  274   setOperationAction(ISD::FP_ROUND, MVT::f64, Custom);
  277   setOperationAction(ISD::VASTART, MVT::Other, Custom);
  278   setOperationAction(ISD::VAARG, MVT::Other, Custom);
  279   setOperationAction(ISD::VACOPY, MVT::Other, Custom);
  280   setOperationAction(ISD::VAEND, MVT::Other, Expand);
  283   setOperationAction(ISD::STACKSAVE, MVT::Other, Expand);
  284   setOperationAction(ISD::STACKRESTORE, MVT::Other, Expand);
  287     setOperationAction(ISD::DYNAMIC_STACKALLOC, MVT::i64, Custom);
  289     setOperationAction(ISD::DYNAMIC_STACKALLOC, MVT::i64, Expand);
  292   setOperationAction(ISD::ConstantPool, MVT::i64, Custom);
  295   setOperationAction(ISD::BlockAddress, MVT::i64, Custom);
  298   setOperationAction(ISD::ADDC, MVT::i32, Custom);
  299   setOperationAction(ISD::ADDE, MVT::i32, Custom);
  300   setOperationAction(ISD::SUBC, MVT::i32, Custom);
  301   setOperationAction(ISD::SUBE, MVT::i32, Custom);
  302   setOperationAction(ISD::ADDC, MVT::i64, Custom);
  303   setOperationAction(ISD::ADDE, MVT::i64, Custom);
  304   setOperationAction(ISD::SUBC, MVT::i64, Custom);
  305   setOperationAction(ISD::SUBE, MVT::i64, Custom);
  308   setOperationAction(ISD::ROTL, MVT::i32, Expand);
  309   setOperationAction(ISD::ROTL, MVT::i64, Expand);
  311     setOperationAction(ISD::ROTL, VT, Expand);
  312     setOperationAction(ISD::ROTR, VT, Expand);
  316   setOperationAction(ISD::UMUL_LOHI, MVT::i64, Expand);
  317   setOperationAction(ISD::SMUL_LOHI, MVT::i64, Expand);
  319   setOperationAction(ISD::CTPOP, MVT::i32, Custom);
  320   setOperationAction(ISD::CTPOP, MVT::i64, Custom);
  322   setOperationAction(ISD::SDIVREM, MVT::i32, Expand);
  323   setOperationAction(ISD::SDIVREM, MVT::i64, Expand);
  325     setOperationAction(ISD::SDIVREM, VT, Expand);
  326     setOperationAction(ISD::UDIVREM, VT, Expand);
  328   setOperationAction(ISD::SREM, MVT::i32, Expand);
  329   setOperationAction(ISD::SREM, MVT::i64, Expand);
  330   setOperationAction(ISD::UDIVREM, MVT::i32, Expand);
  331   setOperationAction(ISD::UDIVREM, MVT::i64, Expand);
  332   setOperationAction(ISD::UREM, MVT::i32, Expand);
  333   setOperationAction(ISD::UREM, MVT::i64, Expand);
  336   setOperationAction(ISD::SADDO, MVT::i32, Custom);
  337   setOperationAction(ISD::SADDO, MVT::i64, Custom);
  338   setOperationAction(ISD::UADDO, MVT::i32, Custom);
  339   setOperationAction(ISD::UADDO, MVT::i64, Custom);
  340   setOperationAction(ISD::SSUBO, MVT::i32, Custom);
  341   setOperationAction(ISD::SSUBO, MVT::i64, Custom);
  342   setOperationAction(ISD::USUBO, MVT::i32, Custom);
  343   setOperationAction(ISD::USUBO, MVT::i64, Custom);
  344   setOperationAction(ISD::SMULO, MVT::i32, Custom);
  345   setOperationAction(ISD::SMULO, MVT::i64, Custom);
  346   setOperationAction(ISD::UMULO, MVT::i32, Custom);
  347   setOperationAction(ISD::UMULO, MVT::i64, Custom);
  349   setOperationAction(ISD::FSIN, MVT::f32, Expand);
  350   setOperationAction(ISD::FSIN, MVT::f64, Expand);
  351   setOperationAction(ISD::FCOS, MVT::f32, Expand);
  352   setOperationAction(ISD::FCOS, MVT::f64, Expand);
  353   setOperationAction(ISD::FPOW, MVT::f32, Expand);
  354   setOperationAction(ISD::FPOW, MVT::f64, Expand);
  355   setOperationAction(ISD::FCOPYSIGN, MVT::f64, Custom);
  356   setOperationAction(ISD::FCOPYSIGN, MVT::f32, Custom);
  358     setOperationAction(ISD::FCOPYSIGN, MVT::f16, Custom);
  360     setOperationAction(ISD::FCOPYSIGN, MVT::f16, Promote);
  362   setOperationAction(ISD::FREM,    MVT::f16,   Promote);
  363   setOperationAction(ISD::FREM,    MVT::v4f16, Expand);
  364   setOperationAction(ISD::FREM,    MVT::v8f16, Expand);
  365   setOperationAction(ISD::FPOW,    MVT::f16,   Promote);
  366   setOperationAction(ISD::FPOW,    MVT::v4f16, Expand);
  367   setOperationAction(ISD::FPOW,    MVT::v8f16, Expand);
  368   setOperationAction(ISD::FPOWI,   MVT::f16,   Promote);
  369   setOperationAction(ISD::FPOWI,   MVT::v4f16, Expand);
  370   setOperationAction(ISD::FPOWI,   MVT::v8f16, Expand);
  371   setOperationAction(ISD::FCOS,    MVT::f16,   Promote);
  372   setOperationAction(ISD::FCOS,    MVT::v4f16, Expand);
  373   setOperationAction(ISD::FCOS,    MVT::v8f16, Expand);
  374   setOperationAction(ISD::FSIN,    MVT::f16,   Promote);
  375   setOperationAction(ISD::FSIN,    MVT::v4f16, Expand);
  376   setOperationAction(ISD::FSIN,    MVT::v8f16, Expand);
  377   setOperationAction(ISD::FSINCOS, MVT::f16,   Promote);
  378   setOperationAction(ISD::FSINCOS, MVT::v4f16, Expand);
  379   setOperationAction(ISD::FSINCOS, MVT::v8f16, Expand);
  380   setOperationAction(ISD::FEXP,    MVT::f16,   Promote);
  381   setOperationAction(ISD::FEXP,    MVT::v4f16, Expand);
  382   setOperationAction(ISD::FEXP,    MVT::v8f16, Expand);
  383   setOperationAction(ISD::FEXP2,   MVT::f16,   Promote);
  384   setOperationAction(ISD::FEXP2,   MVT::v4f16, Expand);
  385   setOperationAction(ISD::FEXP2,   MVT::v8f16, Expand);
  386   setOperationAction(ISD::FLOG,    MVT::f16,   Promote);
  387   setOperationAction(ISD::FLOG,    MVT::v4f16, Expand);
  388   setOperationAction(ISD::FLOG,    MVT::v8f16, Expand);
  389   setOperationAction(ISD::FLOG2,   MVT::f16,   Promote);
  390   setOperationAction(ISD::FLOG2,   MVT::v4f16, Expand);
  391   setOperationAction(ISD::FLOG2,   MVT::v8f16, Expand);
  392   setOperationAction(ISD::FLOG10,  MVT::f16,   Promote);
  393   setOperationAction(ISD::FLOG10,  MVT::v4f16, Expand);
  394   setOperationAction(ISD::FLOG10,  MVT::v8f16, Expand);
  397     setOperationAction(ISD::SELECT,      MVT::f16,  Promote);
  398     setOperationAction(ISD::SELECT_CC,   MVT::f16,  Promote);
  399     setOperationAction(ISD::SETCC,       MVT::f16,  Promote);
  400     setOperationAction(ISD::BR_CC,       MVT::f16,  Promote);
  401     setOperationAction(ISD::FADD,        MVT::f16,  Promote);
  402     setOperationAction(ISD::FSUB,        MVT::f16,  Promote);
  403     setOperationAction(ISD::FMUL,        MVT::f16,  Promote);
  404     setOperationAction(ISD::FDIV,        MVT::f16,  Promote);
  405     setOperationAction(ISD::FMA,         MVT::f16,  Promote);
  406     setOperationAction(ISD::FNEG,        MVT::f16,  Promote);
  407     setOperationAction(ISD::FABS,        MVT::f16,  Promote);
  408     setOperationAction(ISD::FCEIL,       MVT::f16,  Promote);
  409     setOperationAction(ISD::FSQRT,       MVT::f16,  Promote);
  410     setOperationAction(ISD::FFLOOR,      MVT::f16,  Promote);
  411     setOperationAction(ISD::FNEARBYINT,  MVT::f16,  Promote);
  412     setOperationAction(ISD::FRINT,       MVT::f16,  Promote);
  413     setOperationAction(ISD::FROUND,      MVT::f16,  Promote);
  414     setOperationAction(ISD::FTRUNC,      MVT::f16,  Promote);
  415     setOperationAction(ISD::FMINNUM,     MVT::f16,  Promote);
  416     setOperationAction(ISD::FMAXNUM,     MVT::f16,  Promote);
  417     setOperationAction(ISD::FMINIMUM,    MVT::f16,  Promote);
  418     setOperationAction(ISD::FMAXIMUM,    MVT::f16,  Promote);
  421     setOperationAction(ISD::FADD,        MVT::v4f16, Promote);
  422     setOperationAction(ISD::FSUB,        MVT::v4f16, Promote);
  423     setOperationAction(ISD::FMUL,        MVT::v4f16, Promote);
  424     setOperationAction(ISD::FDIV,        MVT::v4f16, Promote);
  425     setOperationAction(ISD::FP_EXTEND,   MVT::v4f16, Promote);
  426     setOperationAction(ISD::FP_ROUND,    MVT::v4f16, Promote);
  434     setOperationAction(ISD::FABS,        MVT::v4f16, Expand);
  435     setOperationAction(ISD::FNEG,        MVT::v4f16, Expand);
  436     setOperationAction(ISD::FROUND,      MVT::v4f16, Expand);
  437     setOperationAction(ISD::FMA,         MVT::v4f16, Expand);
  438     setOperationAction(ISD::SETCC,       MVT::v4f16, Expand);
  439     setOperationAction(ISD::BR_CC,       MVT::v4f16, Expand);
  440     setOperationAction(ISD::SELECT,      MVT::v4f16, Expand);
  441     setOperationAction(ISD::SELECT_CC,   MVT::v4f16, Expand);
  442     setOperationAction(ISD::FTRUNC,      MVT::v4f16, Expand);
  443     setOperationAction(ISD::FCOPYSIGN,   MVT::v4f16, Expand);
  444     setOperationAction(ISD::FFLOOR,      MVT::v4f16, Expand);
  445     setOperationAction(ISD::FCEIL,       MVT::v4f16, Expand);
  446     setOperationAction(ISD::FRINT,       MVT::v4f16, Expand);
  447     setOperationAction(ISD::FNEARBYINT,  MVT::v4f16, Expand);
  448     setOperationAction(ISD::FSQRT,       MVT::v4f16, Expand);
  450     setOperationAction(ISD::FABS,        MVT::v8f16, Expand);
  451     setOperationAction(ISD::FADD,        MVT::v8f16, Expand);
  452     setOperationAction(ISD::FCEIL,       MVT::v8f16, Expand);
  453     setOperationAction(ISD::FCOPYSIGN,   MVT::v8f16, Expand);
  454     setOperationAction(ISD::FDIV,        MVT::v8f16, Expand);
  455     setOperationAction(ISD::FFLOOR,      MVT::v8f16, Expand);
  456     setOperationAction(ISD::FMA,         MVT::v8f16, Expand);
  457     setOperationAction(ISD::FMUL,        MVT::v8f16, Expand);
  458     setOperationAction(ISD::FNEARBYINT,  MVT::v8f16, Expand);
  459     setOperationAction(ISD::FNEG,        MVT::v8f16, Expand);
  460     setOperationAction(ISD::FROUND,      MVT::v8f16, Expand);
  461     setOperationAction(ISD::FRINT,       MVT::v8f16, Expand);
  462     setOperationAction(ISD::FSQRT,       MVT::v8f16, Expand);
  463     setOperationAction(ISD::FSUB,        MVT::v8f16, Expand);
  464     setOperationAction(ISD::FTRUNC,      MVT::v8f16, Expand);
  465     setOperationAction(ISD::SETCC,       MVT::v8f16, Expand);
  466     setOperationAction(ISD::BR_CC,       MVT::v8f16, Expand);
  467     setOperationAction(ISD::SELECT,      MVT::v8f16, Expand);
  468     setOperationAction(ISD::SELECT_CC,   MVT::v8f16, Expand);
  469     setOperationAction(ISD::FP_EXTEND,   MVT::v8f16, Expand);
  474     setOperationAction(ISD::FFLOOR, Ty, Legal);
  475     setOperationAction(ISD::FNEARBYINT, Ty, Legal);
  476     setOperationAction(ISD::FCEIL, Ty, Legal);
  477     setOperationAction(ISD::FRINT, Ty, Legal);
  478     setOperationAction(ISD::FTRUNC, Ty, Legal);
  479     setOperationAction(ISD::FROUND, Ty, Legal);
  480     setOperationAction(ISD::FMINNUM, Ty, Legal);
  481     setOperationAction(ISD::FMAXNUM, Ty, Legal);
  482     setOperationAction(ISD::FMINIMUM, Ty, Legal);
  483     setOperationAction(ISD::FMAXIMUM, Ty, Legal);
  484     setOperationAction(ISD::LROUND, Ty, Legal);
  485     setOperationAction(ISD::LLROUND, Ty, Legal);
  486     setOperationAction(ISD::LRINT, Ty, Legal);
  487     setOperationAction(ISD::LLRINT, Ty, Legal);
  491     setOperationAction(ISD::FNEARBYINT, MVT::f16, Legal);
  492     setOperationAction(ISD::FFLOOR,  MVT::f16, Legal);
  493     setOperationAction(ISD::FCEIL,   MVT::f16, Legal);
  494     setOperationAction(ISD::FRINT,   MVT::f16, Legal);
  495     setOperationAction(ISD::FTRUNC,  MVT::f16, Legal);
  496     setOperationAction(ISD::FROUND,  MVT::f16, Legal);
  497     setOperationAction(ISD::FMINNUM, MVT::f16, Legal);
  498     setOperationAction(ISD::FMAXNUM, MVT::f16, Legal);
  499     setOperationAction(ISD::FMINIMUM, MVT::f16, Legal);
  500     setOperationAction(ISD::FMAXIMUM, MVT::f16, Legal);
  503   setOperationAction(ISD::PREFETCH, MVT::Other, Custom);
  505   setOperationAction(ISD::FLT_ROUNDS_, MVT::i32, Custom);
  507   setOperationAction(ISD::ATOMIC_CMP_SWAP, MVT::i128, Custom);
  508   setOperationAction(ISD::ATOMIC_LOAD_SUB, MVT::i32, Custom);
  509   setOperationAction(ISD::ATOMIC_LOAD_SUB, MVT::i64, Custom);
  510   setOperationAction(ISD::ATOMIC_LOAD_AND, MVT::i32, Custom);
  511   setOperationAction(ISD::ATOMIC_LOAD_AND, MVT::i64, Custom);
  516     setOperationAction(ISD::READCYCLECOUNTER, MVT::i64, Legal);
  521     setOperationAction(ISD::FSINCOS, MVT::f64, Custom);
  522     setOperationAction(ISD::FSINCOS, MVT::f32, Custom);
  524     setOperationAction(ISD::FSINCOS, MVT::f64, Expand);
  525     setOperationAction(ISD::FSINCOS, MVT::f32, Expand);
  531     setOperationAction(ISD::ConstantFP, MVT::f32, Legal);
  532     setOperationAction(ISD::ConstantFP, MVT::f64, Legal);
  554   setOperationAction(ISD::BITCAST, MVT::i16, Custom);
  555   setOperationAction(ISD::BITCAST, MVT::f16, Custom);
  577   setOperationAction(ISD::TRAP, MVT::Other, Legal);
  579     setOperationAction(ISD::DEBUGTRAP, MVT::Other, Legal);
  657   setOperationAction(ISD::INTRINSIC_WO_CHAIN, MVT::Other, Custom);
  662     setOperationAction(ISD::FABS, MVT::v1f64, Expand);
  663     setOperationAction(ISD::FADD, MVT::v1f64, Expand);
  664     setOperationAction(ISD::FCEIL, MVT::v1f64, Expand);
  665     setOperationAction(ISD::FCOPYSIGN, MVT::v1f64, Expand);
  666     setOperationAction(ISD::FCOS, MVT::v1f64, Expand);
  667     setOperationAction(ISD::FDIV, MVT::v1f64, Expand);
  668     setOperationAction(ISD::FFLOOR, MVT::v1f64, Expand);
  669     setOperationAction(ISD::FMA, MVT::v1f64, Expand);
  670     setOperationAction(ISD::FMUL, MVT::v1f64, Expand);
  671     setOperationAction(ISD::FNEARBYINT, MVT::v1f64, Expand);
  672     setOperationAction(ISD::FNEG, MVT::v1f64, Expand);
  673     setOperationAction(ISD::FPOW, MVT::v1f64, Expand);
  674     setOperationAction(ISD::FREM, MVT::v1f64, Expand);
  675     setOperationAction(ISD::FROUND, MVT::v1f64, Expand);
  676     setOperationAction(ISD::FRINT, MVT::v1f64, Expand);
  677     setOperationAction(ISD::FSIN, MVT::v1f64, Expand);
  678     setOperationAction(ISD::FSINCOS, MVT::v1f64, Expand);
  679     setOperationAction(ISD::FSQRT, MVT::v1f64, Expand);
  680     setOperationAction(ISD::FSUB, MVT::v1f64, Expand);
  681     setOperationAction(ISD::FTRUNC, MVT::v1f64, Expand);
  682     setOperationAction(ISD::SETCC, MVT::v1f64, Expand);
  683     setOperationAction(ISD::BR_CC, MVT::v1f64, Expand);
  684     setOperationAction(ISD::SELECT, MVT::v1f64, Expand);
  685     setOperationAction(ISD::SELECT_CC, MVT::v1f64, Expand);
  686     setOperationAction(ISD::FP_EXTEND, MVT::v1f64, Expand);
  688     setOperationAction(ISD::FP_TO_SINT, MVT::v1i64, Expand);
  689     setOperationAction(ISD::FP_TO_UINT, MVT::v1i64, Expand);
  690     setOperationAction(ISD::SINT_TO_FP, MVT::v1i64, Expand);
  691     setOperationAction(ISD::UINT_TO_FP, MVT::v1i64, Expand);
  692     setOperationAction(ISD::FP_ROUND, MVT::v1f64, Expand);
  694     setOperationAction(ISD::MUL, MVT::v1i64, Expand);
  704     setOperationAction(ISD::SINT_TO_FP, MVT::v2i32, Custom);
  705     setOperationAction(ISD::UINT_TO_FP, MVT::v2i32, Custom);
  706     setOperationAction(ISD::SINT_TO_FP, MVT::v2i64, Custom);
  707     setOperationAction(ISD::UINT_TO_FP, MVT::v2i64, Custom);
  710     setOperationAction(ISD::SINT_TO_FP, MVT::v4i32, Custom);
  711     setOperationAction(ISD::UINT_TO_FP, MVT::v4i32, Custom);
  714       setOperationAction(ISD::SINT_TO_FP, MVT::v4i16, Custom);
  715       setOperationAction(ISD::UINT_TO_FP, MVT::v4i16, Custom);
  716       setOperationAction(ISD::SINT_TO_FP, MVT::v8i16, Custom);
  717       setOperationAction(ISD::UINT_TO_FP, MVT::v8i16, Custom);
  727     setOperationAction(ISD::CTLZ,       MVT::v1i64, Expand);
  728     setOperationAction(ISD::CTLZ,       MVT::v2i64, Expand);
  731     setOperationAction(ISD::MUL, MVT::v2i64, Expand);
  733     setOperationAction(ISD::MUL, MVT::v8i16, Custom);
  734     setOperationAction(ISD::MUL, MVT::v4i32, Custom);
  735     setOperationAction(ISD::MUL, MVT::v2i64, Custom);
  740       setOperationAction(ISD::VECREDUCE_ADD, VT, Custom);
  741       setOperationAction(ISD::VECREDUCE_SMAX, VT, Custom);
  742       setOperationAction(ISD::VECREDUCE_SMIN, VT, Custom);
  743       setOperationAction(ISD::VECREDUCE_UMAX, VT, Custom);
  744       setOperationAction(ISD::VECREDUCE_UMIN, VT, Custom);
  748       setOperationAction(ISD::VECREDUCE_FMAX, VT, Custom);
  749       setOperationAction(ISD::VECREDUCE_FMIN, VT, Custom);
  752     setOperationAction(ISD::ANY_EXTEND, MVT::v4i32, Legal);
  757       setOperationAction(ISD::SIGN_EXTEND_INREG, VT, Expand);
  760         setOperationAction(ISD::MULHS, VT, Legal);
  761         setOperationAction(ISD::MULHU, VT, Legal);
  763         setOperationAction(ISD::MULHS, VT, Expand);
  764         setOperationAction(ISD::MULHU, VT, Expand);
  766       setOperationAction(ISD::SMUL_LOHI, VT, Expand);
  767       setOperationAction(ISD::UMUL_LOHI, VT, Expand);
  769       setOperationAction(ISD::BSWAP, VT, Expand);
  770       setOperationAction(ISD::CTTZ, VT, Expand);
  782       setOperationAction(ISD::FFLOOR, Ty, Legal);
  783       setOperationAction(ISD::FNEARBYINT, Ty, Legal);
  784       setOperationAction(ISD::FCEIL, Ty, Legal);
  785       setOperationAction(ISD::FRINT, Ty, Legal);
  786       setOperationAction(ISD::FTRUNC, Ty, Legal);
  787       setOperationAction(ISD::FROUND, Ty, Legal);
  792         setOperationAction(ISD::FFLOOR, Ty, Legal);
  793         setOperationAction(ISD::FNEARBYINT, Ty, Legal);
  794         setOperationAction(ISD::FCEIL, Ty, Legal);
  795         setOperationAction(ISD::FRINT, Ty, Legal);
  796         setOperationAction(ISD::FTRUNC, Ty, Legal);
  797         setOperationAction(ISD::FROUND, Ty, Legal);
  810         setOperationAction(ISD::SPLAT_VECTOR, VT, Custom);
  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);
  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);
  873     setOperationAction(ISD::ABS, VT, Legal);
  878       setOperationAction(Opcode, VT, Legal);
  885       setOperationAction(Opcode, VT, Legal);
lib/Target/AMDGPU/AMDGPUISelLowering.cpp
   70   setOperationAction(ISD::LOAD, MVT::f32, Promote);
   73   setOperationAction(ISD::LOAD, MVT::v2f32, Promote);
   76   setOperationAction(ISD::LOAD, MVT::v3f32, Promote);
   79   setOperationAction(ISD::LOAD, MVT::v4f32, Promote);
   82   setOperationAction(ISD::LOAD, MVT::v5f32, Promote);
   85   setOperationAction(ISD::LOAD, MVT::v8f32, Promote);
   88   setOperationAction(ISD::LOAD, MVT::v16f32, Promote);
   91   setOperationAction(ISD::LOAD, MVT::v32f32, Promote);
   94   setOperationAction(ISD::LOAD, MVT::i64, Promote);
   97   setOperationAction(ISD::LOAD, MVT::v2i64, Promote);
  100   setOperationAction(ISD::LOAD, MVT::f64, Promote);
  103   setOperationAction(ISD::LOAD, MVT::v2f64, Promote);
  170   setOperationAction(ISD::STORE, MVT::f32, Promote);
  173   setOperationAction(ISD::STORE, MVT::v2f32, Promote);
  176   setOperationAction(ISD::STORE, MVT::v3f32, Promote);
  179   setOperationAction(ISD::STORE, MVT::v4f32, Promote);
  182   setOperationAction(ISD::STORE, MVT::v5f32, Promote);
  185   setOperationAction(ISD::STORE, MVT::v8f32, Promote);
  188   setOperationAction(ISD::STORE, MVT::v16f32, Promote);
  191   setOperationAction(ISD::STORE, MVT::v32f32, Promote);
  194   setOperationAction(ISD::STORE, MVT::i64, Promote);
  197   setOperationAction(ISD::STORE, MVT::v2i64, Promote);
  200   setOperationAction(ISD::STORE, MVT::f64, Promote);
  203   setOperationAction(ISD::STORE, MVT::v2f64, Promote);
  237   setOperationAction(ISD::Constant, MVT::i32, Legal);
  238   setOperationAction(ISD::Constant, MVT::i64, Legal);
  239   setOperationAction(ISD::ConstantFP, MVT::f32, Legal);
  240   setOperationAction(ISD::ConstantFP, MVT::f64, Legal);
  242   setOperationAction(ISD::BR_JT, MVT::Other, Expand);
  243   setOperationAction(ISD::BRIND, MVT::Other, Expand);
  246   setOperationAction(ISD::DYNAMIC_STACKALLOC, MVT::i32, Custom);
  250   setOperationAction(ISD::FCEIL,  MVT::f32, Legal);
  251   setOperationAction(ISD::FEXP2,  MVT::f32, Legal);
  252   setOperationAction(ISD::FPOW,   MVT::f32, Legal);
  253   setOperationAction(ISD::FLOG2,  MVT::f32, Legal);
  254   setOperationAction(ISD::FABS,   MVT::f32, Legal);
  255   setOperationAction(ISD::FFLOOR, MVT::f32, Legal);
  256   setOperationAction(ISD::FRINT,  MVT::f32, Legal);
  257   setOperationAction(ISD::FTRUNC, MVT::f32, Legal);
  258   setOperationAction(ISD::FMINNUM, MVT::f32, Legal);
  259   setOperationAction(ISD::FMAXNUM, MVT::f32, Legal);
  261   setOperationAction(ISD::FROUND, MVT::f32, Custom);
  262   setOperationAction(ISD::FROUND, MVT::f64, Custom);
  264   setOperationAction(ISD::FLOG, MVT::f32, Custom);
  265   setOperationAction(ISD::FLOG10, MVT::f32, Custom);
  266   setOperationAction(ISD::FEXP, MVT::f32, Custom);
  269   setOperationAction(ISD::FNEARBYINT, MVT::f32, Custom);
  270   setOperationAction(ISD::FNEARBYINT, MVT::f64, Custom);
  272   setOperationAction(ISD::FREM, MVT::f32, Custom);
  273   setOperationAction(ISD::FREM, MVT::f64, Custom);
  276   setOperationAction(ISD::FSUB, MVT::f64, Expand);
  278   setOperationAction(ISD::CONCAT_VECTORS, MVT::v3i32, Custom);
  279   setOperationAction(ISD::CONCAT_VECTORS, MVT::v3f32, Custom);
  280   setOperationAction(ISD::CONCAT_VECTORS, MVT::v4i32, Custom);
  281   setOperationAction(ISD::CONCAT_VECTORS, MVT::v4f32, Custom);
  282   setOperationAction(ISD::CONCAT_VECTORS, MVT::v5i32, Custom);
  283   setOperationAction(ISD::CONCAT_VECTORS, MVT::v5f32, Custom);
  284   setOperationAction(ISD::CONCAT_VECTORS, MVT::v8i32, Custom);
  285   setOperationAction(ISD::CONCAT_VECTORS, MVT::v8f32, Custom);
  286   setOperationAction(ISD::EXTRACT_SUBVECTOR, MVT::v2f32, Custom);
  287   setOperationAction(ISD::EXTRACT_SUBVECTOR, MVT::v2i32, Custom);
  288   setOperationAction(ISD::EXTRACT_SUBVECTOR, MVT::v3f32, Custom);
  289   setOperationAction(ISD::EXTRACT_SUBVECTOR, MVT::v3i32, Custom);
  290   setOperationAction(ISD::EXTRACT_SUBVECTOR, MVT::v4f32, Custom);
  291   setOperationAction(ISD::EXTRACT_SUBVECTOR, MVT::v4i32, Custom);
  292   setOperationAction(ISD::EXTRACT_SUBVECTOR, MVT::v5f32, Custom);
  293   setOperationAction(ISD::EXTRACT_SUBVECTOR, MVT::v5i32, Custom);
  294   setOperationAction(ISD::EXTRACT_SUBVECTOR, MVT::v8f32, Custom);
  295   setOperationAction(ISD::EXTRACT_SUBVECTOR, MVT::v8i32, Custom);
  296   setOperationAction(ISD::EXTRACT_SUBVECTOR, MVT::v16f32, Custom);
  297   setOperationAction(ISD::EXTRACT_SUBVECTOR, MVT::v16i32, Custom);
  298   setOperationAction(ISD::EXTRACT_SUBVECTOR, MVT::v32f32, Custom);
  299   setOperationAction(ISD::EXTRACT_SUBVECTOR, MVT::v32i32, Custom);
  301   setOperationAction(ISD::FP16_TO_FP, MVT::f64, Expand);
  302   setOperationAction(ISD::FP_TO_FP16, MVT::f64, Custom);
  303   setOperationAction(ISD::FP_TO_FP16, MVT::f32, Custom);
  308     setOperationAction(ISD::SDIV, VT, Expand);
  309     setOperationAction(ISD::UDIV, VT, Expand);
  310     setOperationAction(ISD::SREM, VT, Expand);
  311     setOperationAction(ISD::UREM, VT, Expand);
  314     setOperationAction(ISD::SDIVREM, VT, Custom);
  315     setOperationAction(ISD::UDIVREM, VT, Custom);
  318     setOperationAction(ISD::SMUL_LOHI, VT, Expand);
  319     setOperationAction(ISD::UMUL_LOHI, VT, Expand);
  321     setOperationAction(ISD::BSWAP, VT, Expand);
  322     setOperationAction(ISD::CTTZ, VT, Expand);
  323     setOperationAction(ISD::CTLZ, VT, Expand);
  326     setOperationAction(ISD::ADDC, VT, Legal);
  327     setOperationAction(ISD::SUBC, VT, Legal);
  328     setOperationAction(ISD::ADDE, VT, Legal);
  329     setOperationAction(ISD::SUBE, VT, Legal);
  333   setOperationAction(ISD::ROTL, MVT::i32, Expand);
  334   setOperationAction(ISD::ROTL, MVT::i64, Expand);
  335   setOperationAction(ISD::ROTR, MVT::i64, Expand);
  337   setOperationAction(ISD::MUL, MVT::i64, Expand);
  338   setOperationAction(ISD::MULHU, MVT::i64, Expand);
  339   setOperationAction(ISD::MULHS, MVT::i64, Expand);
  340   setOperationAction(ISD::UINT_TO_FP, MVT::i64, Custom);
  341   setOperationAction(ISD::SINT_TO_FP, MVT::i64, Custom);
  342   setOperationAction(ISD::FP_TO_SINT, MVT::i64, Custom);
  343   setOperationAction(ISD::FP_TO_UINT, MVT::i64, Custom);
  344   setOperationAction(ISD::SELECT_CC, MVT::i64, Expand);
  346   setOperationAction(ISD::SMIN, MVT::i32, Legal);
  347   setOperationAction(ISD::UMIN, MVT::i32, Legal);
  348   setOperationAction(ISD::SMAX, MVT::i32, Legal);
  349   setOperationAction(ISD::UMAX, MVT::i32, Legal);
  351   setOperationAction(ISD::CTTZ, MVT::i64, Custom);
  352   setOperationAction(ISD::CTTZ_ZERO_UNDEF, MVT::i64, Custom);
  353   setOperationAction(ISD::CTLZ, MVT::i64, Custom);
  354   setOperationAction(ISD::CTLZ_ZERO_UNDEF, MVT::i64, Custom);
  362     setOperationAction(ISD::ADD,  VT, Expand);
  363     setOperationAction(ISD::AND,  VT, Expand);
  364     setOperationAction(ISD::FP_TO_SINT, VT, Expand);
  365     setOperationAction(ISD::FP_TO_UINT, VT, Expand);
  366     setOperationAction(ISD::MUL,  VT, Expand);
  367     setOperationAction(ISD::MULHU, VT, Expand);
  368     setOperationAction(ISD::MULHS, VT, Expand);
  369     setOperationAction(ISD::OR,   VT, Expand);
  370     setOperationAction(ISD::SHL,  VT, Expand);
  371     setOperationAction(ISD::SRA,  VT, Expand);
  372     setOperationAction(ISD::SRL,  VT, Expand);
  373     setOperationAction(ISD::ROTL, VT, Expand);
  374     setOperationAction(ISD::ROTR, VT, Expand);
  375     setOperationAction(ISD::SUB,  VT, Expand);
  376     setOperationAction(ISD::SINT_TO_FP, VT, Expand);
  377     setOperationAction(ISD::UINT_TO_FP, VT, Expand);
  378     setOperationAction(ISD::SDIV, VT, Expand);
  379     setOperationAction(ISD::UDIV, VT, Expand);
  380     setOperationAction(ISD::SREM, VT, Expand);
  381     setOperationAction(ISD::UREM, VT, Expand);
  382     setOperationAction(ISD::SMUL_LOHI, VT, Expand);
  383     setOperationAction(ISD::UMUL_LOHI, VT, Expand);
  384     setOperationAction(ISD::SDIVREM, VT, Custom);
  385     setOperationAction(ISD::UDIVREM, VT, Expand);
  386     setOperationAction(ISD::SELECT, VT, Expand);
  387     setOperationAction(ISD::VSELECT, VT, Expand);
  388     setOperationAction(ISD::SELECT_CC, VT, Expand);
  389     setOperationAction(ISD::XOR,  VT, Expand);
  390     setOperationAction(ISD::BSWAP, VT, Expand);
  391     setOperationAction(ISD::CTPOP, VT, Expand);
  392     setOperationAction(ISD::CTTZ, VT, Expand);
  393     setOperationAction(ISD::CTLZ, VT, Expand);
  394     setOperationAction(ISD::VECTOR_SHUFFLE, VT, Expand);
  395     setOperationAction(ISD::SETCC, VT, Expand);
  403     setOperationAction(ISD::FABS, VT, Expand);
  404     setOperationAction(ISD::FMINNUM, VT, Expand);
  405     setOperationAction(ISD::FMAXNUM, VT, Expand);
  406     setOperationAction(ISD::FADD, VT, Expand);
  407     setOperationAction(ISD::FCEIL, VT, Expand);
  408     setOperationAction(ISD::FCOS, VT, Expand);
  409     setOperationAction(ISD::FDIV, VT, Expand);
  410     setOperationAction(ISD::FEXP2, VT, Expand);
  411     setOperationAction(ISD::FEXP, VT, Expand);
  412     setOperationAction(ISD::FLOG2, VT, Expand);
  413     setOperationAction(ISD::FREM, VT, Expand);
  414     setOperationAction(ISD::FLOG, VT, Expand);
  415     setOperationAction(ISD::FLOG10, VT, Expand);
  416     setOperationAction(ISD::FPOW, VT, Expand);
  417     setOperationAction(ISD::FFLOOR, VT, Expand);
  418     setOperationAction(ISD::FTRUNC, VT, Expand);
  419     setOperationAction(ISD::FMUL, VT, Expand);
  420     setOperationAction(ISD::FMA, VT, Expand);
  421     setOperationAction(ISD::FRINT, VT, Expand);
  422     setOperationAction(ISD::FNEARBYINT, VT, Expand);
  423     setOperationAction(ISD::FSQRT, VT, Expand);
  424     setOperationAction(ISD::FSIN, VT, Expand);
  425     setOperationAction(ISD::FSUB, VT, Expand);
  426     setOperationAction(ISD::FNEG, VT, Expand);
  427     setOperationAction(ISD::VSELECT, VT, Expand);
  428     setOperationAction(ISD::SELECT_CC, VT, Expand);
  429     setOperationAction(ISD::FCOPYSIGN, VT, Expand);
  430     setOperationAction(ISD::VECTOR_SHUFFLE, VT, Expand);
  431     setOperationAction(ISD::SETCC, VT, Expand);
  432     setOperationAction(ISD::FCANONICALIZE, VT, Expand);
  438   setOperationAction(ISD::SELECT, MVT::v2f32, Promote);
  441   setOperationAction(ISD::SELECT, MVT::v3f32, Promote);
  444   setOperationAction(ISD::SELECT, MVT::v4f32, Promote);
  447   setOperationAction(ISD::SELECT, MVT::v5f32, Promote);
lib/Target/AMDGPU/R600ISelLowering.cpp
   68   setOperationAction(ISD::LOAD, MVT::i32, Custom);
   69   setOperationAction(ISD::LOAD, MVT::v2i32, Custom);
   70   setOperationAction(ISD::LOAD, MVT::v4i32, Custom);
   97   setOperationAction(ISD::STORE, MVT::i8, Custom);
   98   setOperationAction(ISD::STORE, MVT::i32, Custom);
   99   setOperationAction(ISD::STORE, MVT::v2i32, Custom);
  100   setOperationAction(ISD::STORE, MVT::v4i32, Custom);
  140   setOperationAction(ISD::FCOS, MVT::f32, Custom);
  141   setOperationAction(ISD::FSIN, MVT::f32, Custom);
  143   setOperationAction(ISD::SETCC, MVT::v4i32, Expand);
  144   setOperationAction(ISD::SETCC, MVT::v2i32, Expand);
  146   setOperationAction(ISD::BR_CC, MVT::i32, Expand);
  147   setOperationAction(ISD::BR_CC, MVT::f32, Expand);
  148   setOperationAction(ISD::BRCOND, MVT::Other, Custom);
  150   setOperationAction(ISD::FSUB, MVT::f32, Expand);
  152   setOperationAction(ISD::FCEIL, MVT::f64, Custom);
  153   setOperationAction(ISD::FTRUNC, MVT::f64, Custom);
  154   setOperationAction(ISD::FRINT, MVT::f64, Custom);
  155   setOperationAction(ISD::FFLOOR, MVT::f64, Custom);
  157   setOperationAction(ISD::SELECT_CC, MVT::f32, Custom);
  158   setOperationAction(ISD::SELECT_CC, MVT::i32, Custom);
  160   setOperationAction(ISD::SETCC, MVT::i32, Expand);
  161   setOperationAction(ISD::SETCC, MVT::f32, Expand);
  162   setOperationAction(ISD::FP_TO_UINT, MVT::i1, Custom);
  163   setOperationAction(ISD::FP_TO_SINT, MVT::i1, Custom);
  164   setOperationAction(ISD::FP_TO_SINT, MVT::i64, Custom);
  165   setOperationAction(ISD::FP_TO_UINT, MVT::i64, Custom);
  167   setOperationAction(ISD::SELECT, MVT::i32, Expand);
  168   setOperationAction(ISD::SELECT, MVT::f32, Expand);
  169   setOperationAction(ISD::SELECT, MVT::v2i32, Expand);
  170   setOperationAction(ISD::SELECT, MVT::v4i32, Expand);
  175     setOperationAction(ISD::UADDO, MVT::i32, Custom);
  178     setOperationAction(ISD::USUBO, MVT::i32, Custom);
  182     setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i1, Expand);
  184   setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::v2i1, Expand);
  185   setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::v4i1, Expand);
  188     setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i8, Expand);
  189   setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::v2i8, Expand);
  190   setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::v4i8, Expand);
  193     setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i16, Expand);
  194   setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::v2i16, Expand);
  195   setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::v4i16, Expand);
  197   setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i32, Legal);
  198   setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::v2i32, Expand);
  199   setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::v4i32, Expand);
  201   setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::Other, Expand);
  203   setOperationAction(ISD::FrameIndex, MVT::i32, Custom);
  205   setOperationAction(ISD::EXTRACT_VECTOR_ELT, MVT::v2i32, Custom);
  206   setOperationAction(ISD::EXTRACT_VECTOR_ELT, MVT::v2f32, Custom);
  207   setOperationAction(ISD::EXTRACT_VECTOR_ELT, MVT::v4i32, Custom);
  208   setOperationAction(ISD::EXTRACT_VECTOR_ELT, MVT::v4f32, Custom);
  210   setOperationAction(ISD::INSERT_VECTOR_ELT, MVT::v2i32, Custom);
  211   setOperationAction(ISD::INSERT_VECTOR_ELT, MVT::v2f32, Custom);
  212   setOperationAction(ISD::INSERT_VECTOR_ELT, MVT::v4i32, Custom);
  213   setOperationAction(ISD::INSERT_VECTOR_ELT, MVT::v4f32, Custom);
  217   setOperationAction(ISD::SHL_PARTS, MVT::i32, Custom);
  218   setOperationAction(ISD::SRL_PARTS, MVT::i32, Custom);
  219   setOperationAction(ISD::SRA_PARTS, MVT::i32, Custom);
  222     setOperationAction(ISD::FMA, MVT::f32, Expand);
  223     setOperationAction(ISD::FMA, MVT::f64, Expand);
  229     setOperationAction(ISD::FMAD, MVT::f32, Legal);
  233     setOperationAction(ISD::FCOPYSIGN, MVT::f32, Expand);
  234     setOperationAction(ISD::FCOPYSIGN, MVT::f64, Expand);
  238     setOperationAction(ISD::CTPOP, MVT::i32, Expand);
  241     setOperationAction(ISD::CTPOP, MVT::i64, Expand);
  244     setOperationAction(ISD::CTLZ_ZERO_UNDEF, MVT::i32, Custom);
  247     setOperationAction(ISD::CTTZ_ZERO_UNDEF, MVT::i32, Custom);
  254   setOperationAction(ISD::GlobalAddress, MVT::i32, Custom);
  258     setOperationAction(ISD::ADDC, VT, Expand);
  259     setOperationAction(ISD::SUBC, VT, Expand);
  260     setOperationAction(ISD::ADDE, VT, Expand);
  261     setOperationAction(ISD::SUBE, VT, Expand);
  266   setOperationAction(ISD::ATOMIC_LOAD, MVT::i32, Expand);
  267   setOperationAction(ISD::ATOMIC_STORE, MVT::i32, Expand);
  270   setOperationAction(ISD::INTRINSIC_VOID, MVT::Other, Custom);
  271   setOperationAction(ISD::INTRINSIC_WO_CHAIN, MVT::Other, Custom);
lib/Target/AMDGPU/SIISelLowering.cpp
  164   setOperationAction(ISD::LOAD, MVT::v2i32, Custom);
  165   setOperationAction(ISD::LOAD, MVT::v3i32, Custom);
  166   setOperationAction(ISD::LOAD, MVT::v4i32, Custom);
  167   setOperationAction(ISD::LOAD, MVT::v5i32, Custom);
  168   setOperationAction(ISD::LOAD, MVT::v8i32, Custom);
  169   setOperationAction(ISD::LOAD, MVT::v16i32, Custom);
  170   setOperationAction(ISD::LOAD, MVT::i1, Custom);
  171   setOperationAction(ISD::LOAD, MVT::v32i32, Custom);
  173   setOperationAction(ISD::STORE, MVT::v2i32, Custom);
  174   setOperationAction(ISD::STORE, MVT::v3i32, Custom);
  175   setOperationAction(ISD::STORE, MVT::v4i32, Custom);
  176   setOperationAction(ISD::STORE, MVT::v5i32, Custom);
  177   setOperationAction(ISD::STORE, MVT::v8i32, Custom);
  178   setOperationAction(ISD::STORE, MVT::v16i32, Custom);
  179   setOperationAction(ISD::STORE, MVT::i1, Custom);
  180   setOperationAction(ISD::STORE, MVT::v32i32, Custom);
  194   setOperationAction(ISD::GlobalAddress, MVT::i32, Custom);
  195   setOperationAction(ISD::GlobalAddress, MVT::i64, Custom);
  197   setOperationAction(ISD::SELECT, MVT::i1, Promote);
  198   setOperationAction(ISD::SELECT, MVT::i64, Custom);
  199   setOperationAction(ISD::SELECT, MVT::f64, Promote);
  202   setOperationAction(ISD::SELECT_CC, MVT::f32, Expand);
  203   setOperationAction(ISD::SELECT_CC, MVT::i32, Expand);
  204   setOperationAction(ISD::SELECT_CC, MVT::i64, Expand);
  205   setOperationAction(ISD::SELECT_CC, MVT::f64, Expand);
  206   setOperationAction(ISD::SELECT_CC, MVT::i1, Expand);
  208   setOperationAction(ISD::SETCC, MVT::i1, Promote);
  209   setOperationAction(ISD::SETCC, MVT::v2i1, Expand);
  210   setOperationAction(ISD::SETCC, MVT::v4i1, Expand);
  213   setOperationAction(ISD::TRUNCATE, MVT::v2i32, Expand);
  214   setOperationAction(ISD::FP_ROUND, MVT::v2f32, Expand);
  216   setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::v2i1, Custom);
  217   setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::v4i1, Custom);
  218   setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::v2i8, Custom);
  219   setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::v4i8, Custom);
  220   setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::v2i16, Custom);
  221   setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::v3i16, Custom);
  222   setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::v4i16, Custom);
  223   setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::Other, Custom);
  225   setOperationAction(ISD::BRCOND, MVT::Other, Custom);
  226   setOperationAction(ISD::BR_CC, MVT::i1, Expand);
  227   setOperationAction(ISD::BR_CC, MVT::i32, Expand);
  228   setOperationAction(ISD::BR_CC, MVT::i64, Expand);
  229   setOperationAction(ISD::BR_CC, MVT::f32, Expand);
  230   setOperationAction(ISD::BR_CC, MVT::f64, Expand);
  232   setOperationAction(ISD::UADDO, MVT::i32, Legal);
  233   setOperationAction(ISD::USUBO, MVT::i32, Legal);
  235   setOperationAction(ISD::ADDCARRY, MVT::i32, Legal);
  236   setOperationAction(ISD::SUBCARRY, MVT::i32, Legal);
  238   setOperationAction(ISD::SHL_PARTS, MVT::i64, Expand);
  239   setOperationAction(ISD::SRA_PARTS, MVT::i64, Expand);
  240   setOperationAction(ISD::SRL_PARTS, MVT::i64, Expand);
  265         setOperationAction(Op, VT, Custom);
  268         setOperationAction(Op, VT, Expand);
  274   setOperationAction(ISD::FP_EXTEND, MVT::v4f32, Expand);
  282     setOperationAction(ISD::BUILD_VECTOR, Vec64, Promote);
  285     setOperationAction(ISD::EXTRACT_VECTOR_ELT, Vec64, Promote);
  288     setOperationAction(ISD::INSERT_VECTOR_ELT, Vec64, Promote);
  291     setOperationAction(ISD::SCALAR_TO_VECTOR, Vec64, Promote);
  295   setOperationAction(ISD::VECTOR_SHUFFLE, MVT::v8i32, Expand);
  296   setOperationAction(ISD::VECTOR_SHUFFLE, MVT::v8f32, Expand);
  297   setOperationAction(ISD::VECTOR_SHUFFLE, MVT::v16i32, Expand);
  298   setOperationAction(ISD::VECTOR_SHUFFLE, MVT::v16f32, Expand);
  300   setOperationAction(ISD::BUILD_VECTOR, MVT::v4f16, Custom);
  301   setOperationAction(ISD::BUILD_VECTOR, MVT::v4i16, Custom);
  305   setOperationAction(ISD::INSERT_VECTOR_ELT, MVT::v2i16, Custom);
  306   setOperationAction(ISD::INSERT_VECTOR_ELT, MVT::v2f16, Custom);
  307   setOperationAction(ISD::INSERT_VECTOR_ELT, MVT::v4i16, Custom);
  308   setOperationAction(ISD::INSERT_VECTOR_ELT, MVT::v4f16, Custom);
  310   setOperationAction(ISD::EXTRACT_VECTOR_ELT, MVT::v2i16, Custom);
  311   setOperationAction(ISD::EXTRACT_VECTOR_ELT, MVT::v2f16, Custom);
  312   setOperationAction(ISD::EXTRACT_VECTOR_ELT, MVT::v2i8, Custom);
  313   setOperationAction(ISD::EXTRACT_VECTOR_ELT, MVT::v4i8, Custom);
  314   setOperationAction(ISD::EXTRACT_VECTOR_ELT, MVT::v8i8, Custom);
  316   setOperationAction(ISD::INSERT_VECTOR_ELT, MVT::v2i8, Custom);
  317   setOperationAction(ISD::INSERT_VECTOR_ELT, MVT::v4i8, Custom);
  318   setOperationAction(ISD::INSERT_VECTOR_ELT, MVT::v8i8, Custom);
  320   setOperationAction(ISD::EXTRACT_VECTOR_ELT, MVT::v4i16, Custom);
  321   setOperationAction(ISD::EXTRACT_VECTOR_ELT, MVT::v4f16, Custom);
  322   setOperationAction(ISD::INSERT_VECTOR_ELT, MVT::v4i16, Custom);
  323   setOperationAction(ISD::INSERT_VECTOR_ELT, MVT::v4f16, Custom);
  326   setOperationAction(ISD::INSERT_SUBVECTOR, MVT::v3i32, Custom);
  327   setOperationAction(ISD::INSERT_SUBVECTOR, MVT::v3f32, Custom);
  328   setOperationAction(ISD::INSERT_SUBVECTOR, MVT::v4i32, Custom);
  329   setOperationAction(ISD::INSERT_SUBVECTOR, MVT::v4f32, Custom);
  332   setOperationAction(ISD::INSERT_SUBVECTOR, MVT::v5i32, Custom);
  333   setOperationAction(ISD::INSERT_SUBVECTOR, MVT::v5f32, Custom);
  334   setOperationAction(ISD::INSERT_SUBVECTOR, MVT::v8i32, Custom);
  335   setOperationAction(ISD::INSERT_SUBVECTOR, MVT::v8f32, Custom);
  339   setOperationAction(ISD::ATOMIC_CMP_SWAP, MVT::i32, Custom);
  340   setOperationAction(ISD::ATOMIC_CMP_SWAP, MVT::i64, Custom);
  344   setOperationAction(ISD::ATOMIC_CMP_SWAP_WITH_SUCCESS, MVT::i32, Expand);
  345   setOperationAction(ISD::ATOMIC_CMP_SWAP_WITH_SUCCESS, MVT::i64, Expand);
  348     setOperationAction(ISD::ADDRSPACECAST, MVT::i32, Custom);
  349     setOperationAction(ISD::ADDRSPACECAST, MVT::i64, Custom);
  352   setOperationAction(ISD::BSWAP, MVT::i32, Legal);
  353   setOperationAction(ISD::BITREVERSE, MVT::i32, Legal);
  356   setOperationAction(ISD::READCYCLECOUNTER, MVT::i64, Legal);
  357   setOperationAction(ISD::TRAP, MVT::Other, Custom);
  358   setOperationAction(ISD::DEBUGTRAP, MVT::Other, Custom);
  361     setOperationAction(ISD::FLOG, MVT::f16, Custom);
  362     setOperationAction(ISD::FEXP, MVT::f16, Custom);
  363     setOperationAction(ISD::FLOG10, MVT::f16, Custom);
  368     setOperationAction(ISD::FMAD, MVT::f32, Legal);
  372     setOperationAction(ISD::FCOPYSIGN, MVT::f32, Expand);
  373     setOperationAction(ISD::FCOPYSIGN, MVT::f64, Expand);
  377     setOperationAction(ISD::CTPOP, MVT::i32, Expand);
  380     setOperationAction(ISD::CTPOP, MVT::i64, Expand);
  383     setOperationAction(ISD::CTLZ_ZERO_UNDEF, MVT::i32, Custom);
  386     setOperationAction(ISD::CTTZ_ZERO_UNDEF, MVT::i32, Custom);
  399   setOperationAction(ISD::FMINNUM, MVT::f32, Custom);
  400   setOperationAction(ISD::FMAXNUM, MVT::f32, Custom);
  401   setOperationAction(ISD::FMINNUM, MVT::f64, Custom);
  402   setOperationAction(ISD::FMAXNUM, MVT::f64, Custom);
  408   setOperationAction(ISD::FMINNUM_IEEE, MVT::f32, Legal);
  409   setOperationAction(ISD::FMAXNUM_IEEE, MVT::f32, Legal);
  410   setOperationAction(ISD::FMINNUM_IEEE, MVT::f64, Legal);
  411   setOperationAction(ISD::FMAXNUM_IEEE, MVT::f64, Legal);
  415     setOperationAction(ISD::FTRUNC, MVT::f64, Legal);
  416     setOperationAction(ISD::FCEIL, MVT::f64, Legal);
  417     setOperationAction(ISD::FRINT, MVT::f64, Legal);
  419     setOperationAction(ISD::FCEIL, MVT::f64, Custom);
  420     setOperationAction(ISD::FTRUNC, MVT::f64, Custom);
  421     setOperationAction(ISD::FRINT, MVT::f64, Custom);
  422     setOperationAction(ISD::FFLOOR, MVT::f64, Custom);
  425   setOperationAction(ISD::FFLOOR, MVT::f64, Legal);
  427   setOperationAction(ISD::FSIN, MVT::f32, Custom);
  428   setOperationAction(ISD::FCOS, MVT::f32, Custom);
  429   setOperationAction(ISD::FDIV, MVT::f32, Custom);
  430   setOperationAction(ISD::FDIV, MVT::f64, Custom);
  433     setOperationAction(ISD::Constant, MVT::i16, Legal);
  435     setOperationAction(ISD::SMIN, MVT::i16, Legal);
  436     setOperationAction(ISD::SMAX, MVT::i16, Legal);
  438     setOperationAction(ISD::UMIN, MVT::i16, Legal);
  439     setOperationAction(ISD::UMAX, MVT::i16, Legal);
  441     setOperationAction(ISD::SIGN_EXTEND, MVT::i16, Promote);
  444     setOperationAction(ISD::ROTR, MVT::i16, Promote);
  445     setOperationAction(ISD::ROTL, MVT::i16, Promote);
  447     setOperationAction(ISD::SDIV, MVT::i16, Promote);
  448     setOperationAction(ISD::UDIV, MVT::i16, Promote);
  449     setOperationAction(ISD::SREM, MVT::i16, Promote);
  450     setOperationAction(ISD::UREM, MVT::i16, Promote);
  452     setOperationAction(ISD::BSWAP, MVT::i16, Promote);
  453     setOperationAction(ISD::BITREVERSE, MVT::i16, Promote);
  455     setOperationAction(ISD::CTTZ, MVT::i16, Promote);
  456     setOperationAction(ISD::CTTZ_ZERO_UNDEF, MVT::i16, Promote);
  457     setOperationAction(ISD::CTLZ, MVT::i16, Promote);
  458     setOperationAction(ISD::CTLZ_ZERO_UNDEF, MVT::i16, Promote);
  459     setOperationAction(ISD::CTPOP, MVT::i16, Promote);
  461     setOperationAction(ISD::SELECT_CC, MVT::i16, Expand);
  463     setOperationAction(ISD::BR_CC, MVT::i16, Expand);
  465     setOperationAction(ISD::LOAD, MVT::i16, Custom);
  469     setOperationAction(ISD::FP16_TO_FP, MVT::i16, Promote);
  471     setOperationAction(ISD::FP_TO_FP16, MVT::i16, Promote);
  474     setOperationAction(ISD::FP_TO_SINT, MVT::i16, Promote);
  475     setOperationAction(ISD::FP_TO_UINT, MVT::i16, Promote);
  476     setOperationAction(ISD::SINT_TO_FP, MVT::i16, Promote);
  477     setOperationAction(ISD::UINT_TO_FP, MVT::i16, Promote);
  480     setOperationAction(ISD::ConstantFP, MVT::f16, Legal);
  483     setOperationAction(ISD::LOAD, MVT::f16, Promote);
  485     setOperationAction(ISD::STORE, MVT::f16, Promote);
  489     setOperationAction(ISD::FP_ROUND, MVT::f16, Custom);
  490     setOperationAction(ISD::FCOS, MVT::f16, Promote);
  491     setOperationAction(ISD::FSIN, MVT::f16, Promote);
  492     setOperationAction(ISD::FP_TO_SINT, MVT::f16, Promote);
  493     setOperationAction(ISD::FP_TO_UINT, MVT::f16, Promote);
  494     setOperationAction(ISD::SINT_TO_FP, MVT::f16, Promote);
  495     setOperationAction(ISD::UINT_TO_FP, MVT::f16, Promote);
  496     setOperationAction(ISD::FROUND, MVT::f16, Custom);
  499     setOperationAction(ISD::BR_CC, MVT::f16, Expand);
  500     setOperationAction(ISD::SELECT_CC, MVT::f16, Expand);
  502     setOperationAction(ISD::FDIV, MVT::f16, Custom);
  505     setOperationAction(ISD::FMA, MVT::f16, Legal);
  507       setOperationAction(ISD::FMAD, MVT::f16, Legal);
  523           setOperationAction(Op, VT, Custom);
  526           setOperationAction(Op, VT, Expand);
  533     setOperationAction(ISD::Constant, MVT::v2i16, Legal);
  534     setOperationAction(ISD::ConstantFP, MVT::v2f16, Legal);
  536     setOperationAction(ISD::UNDEF, MVT::v2i16, Legal);
  537     setOperationAction(ISD::UNDEF, MVT::v2f16, Legal);
  539     setOperationAction(ISD::STORE, MVT::v2i16, Promote);
  541     setOperationAction(ISD::STORE, MVT::v2f16, Promote);
  544     setOperationAction(ISD::LOAD, MVT::v2i16, Promote);
  546     setOperationAction(ISD::LOAD, MVT::v2f16, Promote);
  549     setOperationAction(ISD::AND, MVT::v2i16, Promote);
  551     setOperationAction(ISD::OR, MVT::v2i16, Promote);
  553     setOperationAction(ISD::XOR, MVT::v2i16, Promote);
  556     setOperationAction(ISD::LOAD, MVT::v4i16, Promote);
  558     setOperationAction(ISD::LOAD, MVT::v4f16, Promote);
  561     setOperationAction(ISD::STORE, MVT::v4i16, Promote);
  563     setOperationAction(ISD::STORE, MVT::v4f16, Promote);
  566     setOperationAction(ISD::ANY_EXTEND, MVT::v2i32, Expand);
  567     setOperationAction(ISD::ZERO_EXTEND, MVT::v2i32, Expand);
  568     setOperationAction(ISD::SIGN_EXTEND, MVT::v2i32, Expand);
  569     setOperationAction(ISD::FP_EXTEND, MVT::v2f32, Expand);
  571     setOperationAction(ISD::ANY_EXTEND, MVT::v4i32, Expand);
  572     setOperationAction(ISD::ZERO_EXTEND, MVT::v4i32, Expand);
  573     setOperationAction(ISD::SIGN_EXTEND, MVT::v4i32, Expand);
  576       setOperationAction(ISD::BUILD_VECTOR, MVT::v2i16, Custom);
  577       setOperationAction(ISD::BUILD_VECTOR, MVT::v2f16, Custom);
  580     setOperationAction(ISD::FNEG, MVT::v2f16, Legal);
  583     setOperationAction(ISD::FABS, MVT::v2f16, Legal);
  585     setOperationAction(ISD::FMAXNUM, MVT::f16, Custom);
  586     setOperationAction(ISD::FMINNUM, MVT::f16, Custom);
  587     setOperationAction(ISD::FMAXNUM_IEEE, MVT::f16, Legal);
  588     setOperationAction(ISD::FMINNUM_IEEE, MVT::f16, Legal);
  590     setOperationAction(ISD::FMINNUM_IEEE, MVT::v4f16, Custom);
  591     setOperationAction(ISD::FMAXNUM_IEEE, MVT::v4f16, Custom);
  593     setOperationAction(ISD::FMINNUM, MVT::v4f16, Expand);
  594     setOperationAction(ISD::FMAXNUM, MVT::v4f16, Expand);
  598     setOperationAction(ISD::ADD, MVT::v2i16, Legal);
  599     setOperationAction(ISD::SUB, MVT::v2i16, Legal);
  600     setOperationAction(ISD::MUL, MVT::v2i16, Legal);
  601     setOperationAction(ISD::SHL, MVT::v2i16, Legal);
  602     setOperationAction(ISD::SRL, MVT::v2i16, Legal);
  603     setOperationAction(ISD::SRA, MVT::v2i16, Legal);
  604     setOperationAction(ISD::SMIN, MVT::v2i16, Legal);
  605     setOperationAction(ISD::UMIN, MVT::v2i16, Legal);
  606     setOperationAction(ISD::SMAX, MVT::v2i16, Legal);
  607     setOperationAction(ISD::UMAX, MVT::v2i16, Legal);
  609     setOperationAction(ISD::FADD, MVT::v2f16, Legal);
  610     setOperationAction(ISD::FMUL, MVT::v2f16, Legal);
  611     setOperationAction(ISD::FMA, MVT::v2f16, Legal);
  613     setOperationAction(ISD::FMINNUM_IEEE, MVT::v2f16, Legal);
  614     setOperationAction(ISD::FMAXNUM_IEEE, MVT::v2f16, Legal);
  616     setOperationAction(ISD::FCANONICALIZE, MVT::v2f16, Legal);
  618     setOperationAction(ISD::EXTRACT_VECTOR_ELT, MVT::v2i16, Custom);
  619     setOperationAction(ISD::EXTRACT_VECTOR_ELT, MVT::v2f16, Custom);
  621     setOperationAction(ISD::VECTOR_SHUFFLE, MVT::v4f16, Custom);
  622     setOperationAction(ISD::VECTOR_SHUFFLE, MVT::v4i16, Custom);
  624     setOperationAction(ISD::SHL, MVT::v4i16, Custom);
  625     setOperationAction(ISD::SRA, MVT::v4i16, Custom);
  626     setOperationAction(ISD::SRL, MVT::v4i16, Custom);
  627     setOperationAction(ISD::ADD, MVT::v4i16, Custom);
  628     setOperationAction(ISD::SUB, MVT::v4i16, Custom);
  629     setOperationAction(ISD::MUL, MVT::v4i16, Custom);
  631     setOperationAction(ISD::SMIN, MVT::v4i16, Custom);
  632     setOperationAction(ISD::SMAX, MVT::v4i16, Custom);
  633     setOperationAction(ISD::UMIN, MVT::v4i16, Custom);
  634     setOperationAction(ISD::UMAX, MVT::v4i16, Custom);
  636     setOperationAction(ISD::FADD, MVT::v4f16, Custom);
  637     setOperationAction(ISD::FMUL, MVT::v4f16, Custom);
  638     setOperationAction(ISD::FMA, MVT::v4f16, Custom);
  640     setOperationAction(ISD::FMAXNUM, MVT::v2f16, Custom);
  641     setOperationAction(ISD::FMINNUM, MVT::v2f16, Custom);
  643     setOperationAction(ISD::FMINNUM, MVT::v4f16, Custom);
  644     setOperationAction(ISD::FMAXNUM, MVT::v4f16, Custom);
  645     setOperationAction(ISD::FCANONICALIZE, MVT::v4f16, Custom);
  647     setOperationAction(ISD::FEXP, MVT::v2f16, Custom);
  648     setOperationAction(ISD::SELECT, MVT::v4i16, Custom);
  649     setOperationAction(ISD::SELECT, MVT::v4f16, Custom);
  652   setOperationAction(ISD::FNEG, MVT::v4f16, Custom);
  653   setOperationAction(ISD::FABS, MVT::v4f16, Custom);
  656     setOperationAction(ISD::SELECT, MVT::v2i16, Promote);
  658     setOperationAction(ISD::SELECT, MVT::v2f16, Promote);
  662     setOperationAction(ISD::SELECT, MVT::v2i16, Custom);
  663     setOperationAction(ISD::SELECT, MVT::v2f16, Custom);
  665     setOperationAction(ISD::FNEG, MVT::v2f16, Custom);
  666     setOperationAction(ISD::FABS, MVT::v2f16, Custom);
  670     setOperationAction(ISD::SELECT, VT, Custom);
  673   setOperationAction(ISD::INTRINSIC_WO_CHAIN, MVT::Other, Custom);
  674   setOperationAction(ISD::INTRINSIC_WO_CHAIN, MVT::f32, Custom);
  675   setOperationAction(ISD::INTRINSIC_WO_CHAIN, MVT::v4f32, Custom);
  676   setOperationAction(ISD::INTRINSIC_WO_CHAIN, MVT::i16, Custom);
  677   setOperationAction(ISD::INTRINSIC_WO_CHAIN, MVT::f16, Custom);
  678   setOperationAction(ISD::INTRINSIC_WO_CHAIN, MVT::v2i16, Custom);
  679   setOperationAction(ISD::INTRINSIC_WO_CHAIN, MVT::v2f16, Custom);
  681   setOperationAction(ISD::INTRINSIC_W_CHAIN, MVT::v2f16, Custom);
  682   setOperationAction(ISD::INTRINSIC_W_CHAIN, MVT::v2i16, Custom);
  683   setOperationAction(ISD::INTRINSIC_W_CHAIN, MVT::v4f16, Custom);
  684   setOperationAction(ISD::INTRINSIC_W_CHAIN, MVT::v4i16, Custom);
  685   setOperationAction(ISD::INTRINSIC_W_CHAIN, MVT::v8f16, Custom);
  686   setOperationAction(ISD::INTRINSIC_W_CHAIN, MVT::Other, Custom);
  687   setOperationAction(ISD::INTRINSIC_W_CHAIN, MVT::f16, Custom);
  688   setOperationAction(ISD::INTRINSIC_W_CHAIN, MVT::i16, Custom);
  689   setOperationAction(ISD::INTRINSIC_W_CHAIN, MVT::i8, Custom);
  691   setOperationAction(ISD::INTRINSIC_VOID, MVT::Other, Custom);
  692   setOperationAction(ISD::INTRINSIC_VOID, MVT::v2i16, Custom);
  693   setOperationAction(ISD::INTRINSIC_VOID, MVT::v2f16, Custom);
  694   setOperationAction(ISD::INTRINSIC_VOID, MVT::v4f16, Custom);
  695   setOperationAction(ISD::INTRINSIC_VOID, MVT::v4i16, Custom);
  696   setOperationAction(ISD::INTRINSIC_VOID, MVT::f16, Custom);
  697   setOperationAction(ISD::INTRINSIC_VOID, MVT::i16, Custom);
  698   setOperationAction(ISD::INTRINSIC_VOID, MVT::i8, Custom);
lib/Target/ARC/ARCISelLowering.cpp
   90     setOperationAction(Opc, MVT::i32, Expand);
   94   setOperationAction(ISD::ADD, MVT::i32, Legal);
   95   setOperationAction(ISD::SUB, MVT::i32, Legal);
   96   setOperationAction(ISD::AND, MVT::i32, Legal);
   97   setOperationAction(ISD::SMAX, MVT::i32, Legal);
   98   setOperationAction(ISD::SMIN, MVT::i32, Legal);
  101   setOperationAction(ISD::SHL, MVT::i32, Legal);
  102   setOperationAction(ISD::SRA, MVT::i32, Legal);
  103   setOperationAction(ISD::SRL, MVT::i32, Legal);
  104   setOperationAction(ISD::ROTR, MVT::i32, Legal);
  106   setOperationAction(ISD::Constant, MVT::i32, Legal);
  107   setOperationAction(ISD::UNDEF, MVT::i32, Legal);
  110   setOperationAction(ISD::MUL, MVT::i32, Legal);
  111   setOperationAction(ISD::MULHS, MVT::i32, Legal);
  112   setOperationAction(ISD::MULHU, MVT::i32, Legal);
  113   setOperationAction(ISD::LOAD, MVT::i32, Legal);
  114   setOperationAction(ISD::STORE, MVT::i32, Legal);
  116   setOperationAction(ISD::SELECT_CC, MVT::i32, Custom);
  117   setOperationAction(ISD::BR_CC, MVT::i32, Custom);
  118   setOperationAction(ISD::BRCOND, MVT::Other, Expand);
  119   setOperationAction(ISD::BR_JT, MVT::Other, Expand);
  120   setOperationAction(ISD::JumpTable, MVT::i32, Custom);
  123   setOperationAction(ISD::FRAMEADDR, MVT::i32, Legal);
  125   setOperationAction(ISD::GlobalAddress, MVT::i32, Custom);
  128   setOperationAction(ISD::VASTART, MVT::Other, Custom);
  129   setOperationAction(ISD::VAEND, MVT::Other, Expand);
  130   setOperationAction(ISD::VAARG, MVT::Other, Expand);
  131   setOperationAction(ISD::VACOPY, MVT::Other, Expand);
  134   setOperationAction(ISD::STACKSAVE, MVT::Other, Expand);
  135   setOperationAction(ISD::STACKRESTORE, MVT::Other, Expand);
  138   setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i1, Custom);
lib/Target/ARM/ARMISelLowering.cpp
  153     setOperationAction(ISD::LOAD, VT, Promote);
  156     setOperationAction(ISD::STORE, VT, Promote);
  162     setOperationAction(ISD::SETCC, VT, Custom);
  163   setOperationAction(ISD::INSERT_VECTOR_ELT, VT, Custom);
  164   setOperationAction(ISD::EXTRACT_VECTOR_ELT, VT, Custom);
  166     setOperationAction(ISD::SINT_TO_FP, VT, Custom);
  167     setOperationAction(ISD::UINT_TO_FP, VT, Custom);
  168     setOperationAction(ISD::FP_TO_SINT, VT, Custom);
  169     setOperationAction(ISD::FP_TO_UINT, VT, Custom);
  171     setOperationAction(ISD::SINT_TO_FP, VT, Expand);
  172     setOperationAction(ISD::UINT_TO_FP, VT, Expand);
  173     setOperationAction(ISD::FP_TO_SINT, VT, Expand);
  174     setOperationAction(ISD::FP_TO_UINT, VT, Expand);
  176   setOperationAction(ISD::BUILD_VECTOR,      VT, Custom);
  177   setOperationAction(ISD::VECTOR_SHUFFLE,    VT, Custom);
  178   setOperationAction(ISD::CONCAT_VECTORS,    VT, Legal);
  179   setOperationAction(ISD::EXTRACT_SUBVECTOR, VT, Legal);
  180   setOperationAction(ISD::SELECT,            VT, Expand);
  181   setOperationAction(ISD::SELECT_CC,         VT, Expand);
  182   setOperationAction(ISD::VSELECT,           VT, Expand);
  183   setOperationAction(ISD::SIGN_EXTEND_INREG, VT, Expand);
  185     setOperationAction(ISD::SHL, VT, Custom);
  186     setOperationAction(ISD::SRA, VT, Custom);
  187     setOperationAction(ISD::SRL, VT, Custom);
  192     setOperationAction(ISD::AND, VT, Promote);
  194     setOperationAction(ISD::OR,  VT, Promote);
  196     setOperationAction(ISD::XOR, VT, Promote);
  201   setOperationAction(ISD::SDIV, VT, Expand);
  202   setOperationAction(ISD::UDIV, VT, Expand);
  203   setOperationAction(ISD::FDIV, VT, Expand);
  204   setOperationAction(ISD::SREM, VT, Expand);
  205   setOperationAction(ISD::UREM, VT, Expand);
  206   setOperationAction(ISD::FREM, VT, Expand);
  211       setOperationAction(Opcode, VT, Legal);
  226     setOperationAction(Opc, VT, Expand);
  231   setOperationAction(ISD::BITCAST, VT, Legal);
  232   setOperationAction(ISD::LOAD, VT, Legal);
  233   setOperationAction(ISD::STORE, VT, Legal);
  234   setOperationAction(ISD::UNDEF, VT, Legal);
  249     setOperationAction(ISD::VECTOR_SHUFFLE, VT, Custom);
  250     setOperationAction(ISD::INSERT_VECTOR_ELT, VT, Custom);
  251     setOperationAction(ISD::EXTRACT_VECTOR_ELT, VT, Custom);
  252     setOperationAction(ISD::BUILD_VECTOR, VT, Custom);
  253     setOperationAction(ISD::SHL, VT, Custom);
  254     setOperationAction(ISD::SRA, VT, Custom);
  255     setOperationAction(ISD::SRL, VT, Custom);
  256     setOperationAction(ISD::SMIN, VT, Legal);
  257     setOperationAction(ISD::SMAX, VT, Legal);
  258     setOperationAction(ISD::UMIN, VT, Legal);
  259     setOperationAction(ISD::UMAX, VT, Legal);
  260     setOperationAction(ISD::ABS, VT, Legal);
  261     setOperationAction(ISD::SETCC, VT, Custom);
  262     setOperationAction(ISD::MLOAD, VT, Custom);
  263     setOperationAction(ISD::MSTORE, VT, Legal);
  264     setOperationAction(ISD::CTLZ, VT, Legal);
  265     setOperationAction(ISD::CTTZ, VT, Custom);
  266     setOperationAction(ISD::BITREVERSE, VT, Legal);
  267     setOperationAction(ISD::BSWAP, VT, Legal);
  268     setOperationAction(ISD::SADDSAT, VT, Legal);
  269     setOperationAction(ISD::UADDSAT, VT, Legal);
  270     setOperationAction(ISD::SSUBSAT, VT, Legal);
  271     setOperationAction(ISD::USUBSAT, VT, Legal);
  274     setOperationAction(ISD::UDIV, VT, Expand);
  275     setOperationAction(ISD::SDIV, VT, Expand);
  276     setOperationAction(ISD::UREM, VT, Expand);
  277     setOperationAction(ISD::SREM, VT, Expand);
  278     setOperationAction(ISD::CTPOP, VT, Expand);
  281     setOperationAction(ISD::VECREDUCE_ADD, VT, Legal);
  282     setOperationAction(ISD::VECREDUCE_SMAX, VT, Legal);
  283     setOperationAction(ISD::VECREDUCE_UMAX, VT, Legal);
  284     setOperationAction(ISD::VECREDUCE_SMIN, VT, Legal);
  285     setOperationAction(ISD::VECREDUCE_UMIN, VT, Legal);
  288       setOperationAction(ISD::SINT_TO_FP, VT, Expand);
  289       setOperationAction(ISD::UINT_TO_FP, VT, Expand);
  290       setOperationAction(ISD::FP_TO_SINT, VT, Expand);
  291       setOperationAction(ISD::FP_TO_UINT, VT, Expand);
  309     setOperationAction(ISD::VECTOR_SHUFFLE, VT, Custom);
  310     setOperationAction(ISD::INSERT_VECTOR_ELT, VT, Custom);
  311     setOperationAction(ISD::INSERT_VECTOR_ELT, VT.getVectorElementType(), Custom);
  312     setOperationAction(ISD::EXTRACT_VECTOR_ELT, VT, Custom);
  313     setOperationAction(ISD::BUILD_VECTOR, VT, Custom);
  314     setOperationAction(ISD::BUILD_VECTOR, VT.getVectorElementType(), Custom);
  315     setOperationAction(ISD::SCALAR_TO_VECTOR, VT, Legal);
  316     setOperationAction(ISD::SETCC, VT, Custom);
  317     setOperationAction(ISD::MLOAD, VT, Custom);
  318     setOperationAction(ISD::MSTORE, VT, Legal);
  328       setOperationAction(ISD::FMINNUM, VT, Legal);
  329       setOperationAction(ISD::FMAXNUM, VT, Legal);
  330       setOperationAction(ISD::FROUND, VT, Legal);
  333       setOperationAction(ISD::FDIV, VT, Expand);
  334       setOperationAction(ISD::FREM, VT, Expand);
  335       setOperationAction(ISD::FSQRT, VT, Expand);
  336       setOperationAction(ISD::FSIN, VT, Expand);
  337       setOperationAction(ISD::FCOS, VT, Expand);
  338       setOperationAction(ISD::FPOW, VT, Expand);
  339       setOperationAction(ISD::FLOG, VT, Expand);
  340       setOperationAction(ISD::FLOG2, VT, Expand);
  341       setOperationAction(ISD::FLOG10, VT, Expand);
  342       setOperationAction(ISD::FEXP, VT, Expand);
  343       setOperationAction(ISD::FEXP2, VT, Expand);
  344       setOperationAction(ISD::FNEARBYINT, VT, Expand);
  355     setOperationAction(ISD::INSERT_VECTOR_ELT, VT, Custom);
  356     setOperationAction(ISD::EXTRACT_VECTOR_ELT, VT, Custom);
  357     setOperationAction(ISD::BUILD_VECTOR, VT, Custom);
  360   setOperationAction(ISD::AND, MVT::v2i64, Legal);
  361   setOperationAction(ISD::OR, MVT::v2i64, Legal);
  362   setOperationAction(ISD::XOR, MVT::v2i64, Legal);
  389     setOperationAction(ISD::BUILD_VECTOR, VT, Custom);
  390     setOperationAction(ISD::VECTOR_SHUFFLE, VT, Custom);
  391     setOperationAction(ISD::EXTRACT_SUBVECTOR, VT, Custom);
  392     setOperationAction(ISD::CONCAT_VECTORS, VT, Custom);
  393     setOperationAction(ISD::INSERT_VECTOR_ELT, VT, Custom);
  394     setOperationAction(ISD::EXTRACT_VECTOR_ELT, VT, Custom);
  395     setOperationAction(ISD::SETCC, VT, Custom);
  396     setOperationAction(ISD::SCALAR_TO_VECTOR, VT, Expand);
  397     setOperationAction(ISD::LOAD, VT, Custom);
  398     setOperationAction(ISD::STORE, VT, Custom);
  703     setOperationAction(ISD::BITCAST, MVT::i16, Custom);
  704     setOperationAction(ISD::BITCAST, MVT::i32, Custom);
  705     setOperationAction(ISD::BITCAST, MVT::f16, Custom);
  707     setOperationAction(ISD::FMINNUM, MVT::f16, Legal);
  708     setOperationAction(ISD::FMAXNUM, MVT::f16, Legal);
  717     setOperationAction(ISD::MULHS, VT, Expand);
  718     setOperationAction(ISD::SMUL_LOHI, VT, Expand);
  719     setOperationAction(ISD::MULHU, VT, Expand);
  720     setOperationAction(ISD::UMUL_LOHI, VT, Expand);
  722     setOperationAction(ISD::BSWAP, VT, Expand);
  725   setOperationAction(ISD::ConstantFP, MVT::f32, Custom);
  726   setOperationAction(ISD::ConstantFP, MVT::f64, Custom);
  728   setOperationAction(ISD::READ_REGISTER, MVT::i64, Custom);
  729   setOperationAction(ISD::WRITE_REGISTER, MVT::i64, Custom);
  763     setOperationAction(ISD::FADD, MVT::v2f64, Expand);
  764     setOperationAction(ISD::FSUB, MVT::v2f64, Expand);
  765     setOperationAction(ISD::FMUL, MVT::v2f64, Expand);
  768     setOperationAction(ISD::FDIV, MVT::v2f64, Expand);
  769     setOperationAction(ISD::FREM, MVT::v2f64, Expand);
  773     setOperationAction(ISD::FCOPYSIGN, MVT::v2f64, Expand);
  776     setOperationAction(ISD::SETCC, MVT::v2f64, Expand);
  778     setOperationAction(ISD::FNEG, MVT::v2f64, Expand);
  779     setOperationAction(ISD::FABS, MVT::v2f64, Expand);
  780     setOperationAction(ISD::FSQRT, MVT::v2f64, Expand);
  781     setOperationAction(ISD::FSIN, MVT::v2f64, Expand);
  782     setOperationAction(ISD::FCOS, MVT::v2f64, Expand);
  783     setOperationAction(ISD::FPOW, MVT::v2f64, Expand);
  784     setOperationAction(ISD::FLOG, MVT::v2f64, Expand);
  785     setOperationAction(ISD::FLOG2, MVT::v2f64, Expand);
  786     setOperationAction(ISD::FLOG10, MVT::v2f64, Expand);
  787     setOperationAction(ISD::FEXP, MVT::v2f64, Expand);
  788     setOperationAction(ISD::FEXP2, MVT::v2f64, Expand);
  790     setOperationAction(ISD::FCEIL, MVT::v2f64, Expand);
  791     setOperationAction(ISD::FTRUNC, MVT::v2f64, Expand);
  792     setOperationAction(ISD::FRINT, MVT::v2f64, Expand);
  793     setOperationAction(ISD::FNEARBYINT, MVT::v2f64, Expand);
  794     setOperationAction(ISD::FFLOOR, MVT::v2f64, Expand);
  795     setOperationAction(ISD::FMA, MVT::v2f64, Expand);
  801     setOperationAction(ISD::FSQRT, MVT::v4f32, Expand);
  802     setOperationAction(ISD::FSIN, MVT::v4f32, Expand);
  803     setOperationAction(ISD::FCOS, MVT::v4f32, Expand);
  804     setOperationAction(ISD::FPOW, MVT::v4f32, Expand);
  805     setOperationAction(ISD::FLOG, MVT::v4f32, Expand);
  806     setOperationAction(ISD::FLOG2, MVT::v4f32, Expand);
  807     setOperationAction(ISD::FLOG10, MVT::v4f32, Expand);
  808     setOperationAction(ISD::FEXP, MVT::v4f32, Expand);
  809     setOperationAction(ISD::FEXP2, MVT::v4f32, Expand);
  810     setOperationAction(ISD::FCEIL, MVT::v4f32, Expand);
  811     setOperationAction(ISD::FTRUNC, MVT::v4f32, Expand);
  812     setOperationAction(ISD::FRINT, MVT::v4f32, Expand);
  813     setOperationAction(ISD::FNEARBYINT, MVT::v4f32, Expand);
  814     setOperationAction(ISD::FFLOOR, MVT::v4f32, Expand);
  817     setOperationAction(ISD::FSQRT, MVT::v2f32, Expand);
  818     setOperationAction(ISD::FSIN, MVT::v2f32, Expand);
  819     setOperationAction(ISD::FCOS, MVT::v2f32, Expand);
  820     setOperationAction(ISD::FPOW, MVT::v2f32, Expand);
  821     setOperationAction(ISD::FLOG, MVT::v2f32, Expand);
  822     setOperationAction(ISD::FLOG2, MVT::v2f32, Expand);
  823     setOperationAction(ISD::FLOG10, MVT::v2f32, Expand);
  824     setOperationAction(ISD::FEXP, MVT::v2f32, Expand);
  825     setOperationAction(ISD::FEXP2, MVT::v2f32, Expand);
  826     setOperationAction(ISD::FCEIL, MVT::v2f32, Expand);
  827     setOperationAction(ISD::FTRUNC, MVT::v2f32, Expand);
  828     setOperationAction(ISD::FRINT, MVT::v2f32, Expand);
  829     setOperationAction(ISD::FNEARBYINT, MVT::v2f32, Expand);
  830     setOperationAction(ISD::FFLOOR, MVT::v2f32, Expand);
  833     setOperationAction(ISD::MUL, MVT::v1i64, Expand);
  835     setOperationAction(ISD::MUL, MVT::v8i16, Custom);
  836     setOperationAction(ISD::MUL, MVT::v4i32, Custom);
  837     setOperationAction(ISD::MUL, MVT::v2i64, Custom);
  839     setOperationAction(ISD::SDIV, MVT::v4i16, Custom);
  840     setOperationAction(ISD::SDIV, MVT::v8i8, Custom);
  841     setOperationAction(ISD::UDIV, MVT::v4i16, Custom);
  842     setOperationAction(ISD::UDIV, MVT::v8i8, Custom);
  847     setOperationAction(ISD::SINT_TO_FP, MVT::v4i16, Custom);
  848     setOperationAction(ISD::SINT_TO_FP, MVT::v8i16, Custom);
  849     setOperationAction(ISD::UINT_TO_FP, MVT::v4i16, Custom);
  850     setOperationAction(ISD::UINT_TO_FP, MVT::v8i16, Custom);
  851     setOperationAction(ISD::FP_TO_UINT, MVT::v4i16, Custom);
  852     setOperationAction(ISD::FP_TO_UINT, MVT::v8i16, Custom);
  853     setOperationAction(ISD::FP_TO_SINT, MVT::v4i16, Custom);
  854     setOperationAction(ISD::FP_TO_SINT, MVT::v8i16, Custom);
  856     setOperationAction(ISD::FP_ROUND,   MVT::v2f32, Expand);
  857     setOperationAction(ISD::FP_EXTEND,  MVT::v2f64, Expand);
  862     setOperationAction(ISD::CTPOP,      MVT::v2i32, Custom);
  863     setOperationAction(ISD::CTPOP,      MVT::v4i32, Custom);
  864     setOperationAction(ISD::CTPOP,      MVT::v4i16, Custom);
  865     setOperationAction(ISD::CTPOP,      MVT::v8i16, Custom);
  866     setOperationAction(ISD::CTPOP,      MVT::v1i64, Custom);
  867     setOperationAction(ISD::CTPOP,      MVT::v2i64, Custom);
  869     setOperationAction(ISD::CTLZ,       MVT::v1i64, Expand);
  870     setOperationAction(ISD::CTLZ,       MVT::v2i64, Expand);
  873     setOperationAction(ISD::CTTZ, MVT::v8i8, Custom);
  874     setOperationAction(ISD::CTTZ, MVT::v4i16, Custom);
  875     setOperationAction(ISD::CTTZ, MVT::v2i32, Custom);
  876     setOperationAction(ISD::CTTZ, MVT::v1i64, Custom);
  878     setOperationAction(ISD::CTTZ, MVT::v16i8, Custom);
  879     setOperationAction(ISD::CTTZ, MVT::v8i16, Custom);
  880     setOperationAction(ISD::CTTZ, MVT::v4i32, Custom);
  881     setOperationAction(ISD::CTTZ, MVT::v2i64, Custom);
  883     setOperationAction(ISD::CTTZ_ZERO_UNDEF, MVT::v8i8, Custom);
  884     setOperationAction(ISD::CTTZ_ZERO_UNDEF, MVT::v4i16, Custom);
  885     setOperationAction(ISD::CTTZ_ZERO_UNDEF, MVT::v2i32, Custom);
  886     setOperationAction(ISD::CTTZ_ZERO_UNDEF, MVT::v1i64, Custom);
  888     setOperationAction(ISD::CTTZ_ZERO_UNDEF, MVT::v16i8, Custom);
  889     setOperationAction(ISD::CTTZ_ZERO_UNDEF, MVT::v8i16, Custom);
  890     setOperationAction(ISD::CTTZ_ZERO_UNDEF, MVT::v4i32, Custom);
  891     setOperationAction(ISD::CTTZ_ZERO_UNDEF, MVT::v2i64, Custom);
  895       setOperationAction(ISD::FMA, MVT::v2f32, Expand);
  896       setOperationAction(ISD::FMA, MVT::v4f32, Expand);
  936     setOperationAction(ISD::FADD,       MVT::f64, Expand);
  937     setOperationAction(ISD::FSUB,       MVT::f64, Expand);
  938     setOperationAction(ISD::FMUL,       MVT::f64, Expand);
  939     setOperationAction(ISD::FMA,        MVT::f64, Expand);
  940     setOperationAction(ISD::FDIV,       MVT::f64, Expand);
  941     setOperationAction(ISD::FREM,       MVT::f64, Expand);
  942     setOperationAction(ISD::FCOPYSIGN,  MVT::f64, Expand);
  943     setOperationAction(ISD::FGETSIGN,   MVT::f64, Expand);
  944     setOperationAction(ISD::FNEG,       MVT::f64, Expand);
  945     setOperationAction(ISD::FABS,       MVT::f64, Expand);
  946     setOperationAction(ISD::FSQRT,      MVT::f64, Expand);
  947     setOperationAction(ISD::FSIN,       MVT::f64, Expand);
  948     setOperationAction(ISD::FCOS,       MVT::f64, Expand);
  949     setOperationAction(ISD::FPOW,       MVT::f64, Expand);
  950     setOperationAction(ISD::FLOG,       MVT::f64, Expand);
  951     setOperationAction(ISD::FLOG2,      MVT::f64, Expand);
  952     setOperationAction(ISD::FLOG10,     MVT::f64, Expand);
  953     setOperationAction(ISD::FEXP,       MVT::f64, Expand);
  954     setOperationAction(ISD::FEXP2,      MVT::f64, Expand);
  955     setOperationAction(ISD::FCEIL,      MVT::f64, Expand);
  956     setOperationAction(ISD::FTRUNC,     MVT::f64, Expand);
  957     setOperationAction(ISD::FRINT,      MVT::f64, Expand);
  958     setOperationAction(ISD::FNEARBYINT, MVT::f64, Expand);
  959     setOperationAction(ISD::FFLOOR,     MVT::f64, Expand);
  960     setOperationAction(ISD::SINT_TO_FP, MVT::i32, Custom);
  961     setOperationAction(ISD::UINT_TO_FP, MVT::i32, Custom);
  962     setOperationAction(ISD::FP_TO_SINT, MVT::i32, Custom);
  963     setOperationAction(ISD::FP_TO_UINT, MVT::i32, Custom);
  964     setOperationAction(ISD::FP_TO_SINT, MVT::f64, Custom);
  965     setOperationAction(ISD::FP_TO_UINT, MVT::f64, Custom);
  966     setOperationAction(ISD::FP_ROUND,   MVT::f32, Custom);
  970     setOperationAction(ISD::FP_EXTEND,  MVT::f64, Custom);
  972       setOperationAction(ISD::FP_ROUND,  MVT::f16, Custom);
  976     setOperationAction(ISD::FP_EXTEND,  MVT::f32, Custom);
  979     setOperationAction(ISD::FP_ROUND,  MVT::f32, Custom);
 1017   setOperationAction(ISD::SADDO, MVT::i32, Custom);
 1018   setOperationAction(ISD::UADDO, MVT::i32, Custom);
 1019   setOperationAction(ISD::SSUBO, MVT::i32, Custom);
 1020   setOperationAction(ISD::USUBO, MVT::i32, Custom);
 1022   setOperationAction(ISD::ADDCARRY, MVT::i32, Custom);
 1023   setOperationAction(ISD::SUBCARRY, MVT::i32, Custom);
 1025     setOperationAction(ISD::SADDSAT, MVT::i8, Custom);
 1026     setOperationAction(ISD::SSUBSAT, MVT::i8, Custom);
 1027     setOperationAction(ISD::SADDSAT, MVT::i16, Custom);
 1028     setOperationAction(ISD::SSUBSAT, MVT::i16, Custom);
 1031     setOperationAction(ISD::SADDSAT, MVT::i32, Legal);
 1032     setOperationAction(ISD::SSUBSAT, MVT::i32, Legal);
 1036   setOperationAction(ISD::MUL,     MVT::i64, Expand);
 1037   setOperationAction(ISD::MULHU,   MVT::i32, Expand);
 1039     setOperationAction(ISD::UMUL_LOHI, MVT::i32, Expand);
 1040     setOperationAction(ISD::SMUL_LOHI, MVT::i32, Expand);
 1044     setOperationAction(ISD::MULHS, MVT::i32, Expand);
 1046   setOperationAction(ISD::SHL_PARTS, MVT::i32, Custom);
 1047   setOperationAction(ISD::SRA_PARTS, MVT::i32, Custom);
 1048   setOperationAction(ISD::SRL_PARTS, MVT::i32, Custom);
 1049   setOperationAction(ISD::SRL,       MVT::i64, Custom);
 1050   setOperationAction(ISD::SRA,       MVT::i64, Custom);
 1051   setOperationAction(ISD::INTRINSIC_VOID, MVT::Other, Custom);
 1052   setOperationAction(ISD::INTRINSIC_WO_CHAIN, MVT::i64, Custom);
 1057     setOperationAction(ISD::SHL, MVT::i64, Custom);
 1061     setOperationAction(ISD::SHL_PARTS, MVT::i32, Expand);
 1062     setOperationAction(ISD::SRA_PARTS, MVT::i32, Expand);
 1063     setOperationAction(ISD::SRL_PARTS, MVT::i32, Expand);
 1067     setOperationAction(ISD::BITREVERSE, MVT::i32, Legal);
 1070   setOperationAction(ISD::ROTL, MVT::i32, Expand);
 1072     setOperationAction(ISD::ROTL, VT, Expand);
 1073     setOperationAction(ISD::ROTR, VT, Expand);
 1075   setOperationAction(ISD::CTTZ,  MVT::i32, Custom);
 1076   setOperationAction(ISD::CTPOP, MVT::i32, Expand);
 1078     setOperationAction(ISD::CTLZ, MVT::i32, Expand);
 1079     setOperationAction(ISD::CTLZ_ZERO_UNDEF, MVT::i32, LibCall);
 1087     setOperationAction(ISD::READCYCLECOUNTER, MVT::i64, Custom);
 1091     setOperationAction(ISD::BSWAP, MVT::i32, Expand);
 1097     setOperationAction(ISD::SDIV,  MVT::i32, LibCall);
 1098     setOperationAction(ISD::UDIV,  MVT::i32, LibCall);
 1102     setOperationAction(ISD::SDIV, MVT::i32, Custom);
 1103     setOperationAction(ISD::UDIV, MVT::i32, Custom);
 1105     setOperationAction(ISD::SDIV, MVT::i64, Custom);
 1106     setOperationAction(ISD::UDIV, MVT::i64, Custom);
 1109   setOperationAction(ISD::SREM,  MVT::i32, Expand);
 1110   setOperationAction(ISD::UREM,  MVT::i32, Expand);
 1116     setOperationAction(ISD::SREM, MVT::i64, Custom);
 1117     setOperationAction(ISD::UREM, MVT::i64, Custom);
 1164     setOperationAction(ISD::SDIVREM, MVT::i32, Custom);
 1165     setOperationAction(ISD::UDIVREM, MVT::i32, Custom);
 1166     setOperationAction(ISD::SDIVREM, MVT::i64, Custom);
 1167     setOperationAction(ISD::UDIVREM, MVT::i64, Custom);
 1169     setOperationAction(ISD::SDIVREM, MVT::i32, Expand);
 1170     setOperationAction(ISD::UDIVREM, MVT::i32, Expand);
 1175       setOperationAction(ISD::FPOWI, VT, Custom);
 1177   setOperationAction(ISD::GlobalAddress, MVT::i32,   Custom);
 1178   setOperationAction(ISD::ConstantPool,  MVT::i32,   Custom);
 1179   setOperationAction(ISD::GlobalTLSAddress, MVT::i32, Custom);
 1180   setOperationAction(ISD::BlockAddress, MVT::i32, Custom);
 1182   setOperationAction(ISD::TRAP, MVT::Other, Legal);
 1183   setOperationAction(ISD::DEBUGTRAP, MVT::Other, Legal);
 1186   setOperationAction(ISD::VASTART,            MVT::Other, Custom);
 1187   setOperationAction(ISD::VAARG,              MVT::Other, Expand);
 1188   setOperationAction(ISD::VACOPY,             MVT::Other, Expand);
 1189   setOperationAction(ISD::VAEND,              MVT::Other, Expand);
 1190   setOperationAction(ISD::STACKSAVE,          MVT::Other, Expand);
 1191   setOperationAction(ISD::STACKRESTORE,       MVT::Other, Expand);
 1194     setOperationAction(ISD::DYNAMIC_STACKALLOC, MVT::i32, Custom);
 1196     setOperationAction(ISD::DYNAMIC_STACKALLOC, MVT::i32, Expand);
 1205     setOperationAction(ISD::ATOMIC_FENCE,     MVT::Other, Custom);
 1207       setOperationAction(ISD::ATOMIC_CMP_SWAP,  MVT::i64, Custom);
 1223     setOperationAction(ISD::ATOMIC_FENCE,   MVT::Other,
 1227     setOperationAction(ISD::ATOMIC_CMP_SWAP,  MVT::i32, Expand);
 1228     setOperationAction(ISD::ATOMIC_SWAP,      MVT::i32, Expand);
 1229     setOperationAction(ISD::ATOMIC_LOAD_ADD,  MVT::i32, Expand);
 1230     setOperationAction(ISD::ATOMIC_LOAD_SUB,  MVT::i32, Expand);
 1231     setOperationAction(ISD::ATOMIC_LOAD_AND,  MVT::i32, Expand);
 1232     setOperationAction(ISD::ATOMIC_LOAD_OR,   MVT::i32, Expand);
 1233     setOperationAction(ISD::ATOMIC_LOAD_XOR,  MVT::i32, Expand);
 1234     setOperationAction(ISD::ATOMIC_LOAD_NAND, MVT::i32, Expand);
 1235     setOperationAction(ISD::ATOMIC_LOAD_MIN, MVT::i32, Expand);
 1236     setOperationAction(ISD::ATOMIC_LOAD_MAX, MVT::i32, Expand);
 1237     setOperationAction(ISD::ATOMIC_LOAD_UMIN, MVT::i32, Expand);
 1238     setOperationAction(ISD::ATOMIC_LOAD_UMAX, MVT::i32, Expand);
 1242       setOperationAction(ISD::ATOMIC_LOAD, MVT::i32, Custom);
 1243       setOperationAction(ISD::ATOMIC_STORE, MVT::i32, Custom);
 1247   setOperationAction(ISD::PREFETCH,         MVT::Other, Custom);
 1251     setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i16, Expand);
 1252     setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i8,  Expand);
 1254   setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i1, Expand);
 1260     setOperationAction(ISD::BITCAST, MVT::i64, Custom);
 1261     setOperationAction(ISD::FLT_ROUNDS_, MVT::i32, Custom);
 1265   setOperationAction(ISD::INTRINSIC_WO_CHAIN, MVT::Other, Custom);
 1266   setOperationAction(ISD::EH_SJLJ_SETJMP, MVT::i32, Custom);
 1267   setOperationAction(ISD::EH_SJLJ_LONGJMP, MVT::Other, Custom);
 1268   setOperationAction(ISD::EH_SJLJ_SETUP_DISPATCH, MVT::Other, Custom);
 1272   setOperationAction(ISD::SETCC,     MVT::i32, Expand);
 1273   setOperationAction(ISD::SETCC,     MVT::f32, Expand);
 1274   setOperationAction(ISD::SETCC,     MVT::f64, Expand);
 1275   setOperationAction(ISD::SELECT,    MVT::i32, Custom);
 1276   setOperationAction(ISD::SELECT,    MVT::f32, Custom);
 1277   setOperationAction(ISD::SELECT,    MVT::f64, Custom);
 1278   setOperationAction(ISD::SELECT_CC, MVT::i32, Custom);
 1279   setOperationAction(ISD::SELECT_CC, MVT::f32, Custom);
 1280   setOperationAction(ISD::SELECT_CC, MVT::f64, Custom);
 1282     setOperationAction(ISD::SETCC,     MVT::f16, Expand);
 1283     setOperationAction(ISD::SELECT,    MVT::f16, Custom);
 1284     setOperationAction(ISD::SELECT_CC, MVT::f16, Custom);
 1287   setOperationAction(ISD::SETCCCARRY, MVT::i32, Custom);
 1289   setOperationAction(ISD::BRCOND,    MVT::Other, Custom);
 1290   setOperationAction(ISD::BR_CC,     MVT::i32,   Custom);
 1292       setOperationAction(ISD::BR_CC, MVT::f16,   Custom);
 1293   setOperationAction(ISD::BR_CC,     MVT::f32,   Custom);
 1294   setOperationAction(ISD::BR_CC,     MVT::f64,   Custom);
 1295   setOperationAction(ISD::BR_JT,     MVT::Other, Custom);
 1298   setOperationAction(ISD::FSIN,      MVT::f64, Expand);
 1299   setOperationAction(ISD::FSIN,      MVT::f32, Expand);
 1300   setOperationAction(ISD::FCOS,      MVT::f32, Expand);
 1301   setOperationAction(ISD::FCOS,      MVT::f64, Expand);
 1302   setOperationAction(ISD::FSINCOS,   MVT::f64, Expand);
 1303   setOperationAction(ISD::FSINCOS,   MVT::f32, Expand);
 1304   setOperationAction(ISD::FREM,      MVT::f64, Expand);
 1305   setOperationAction(ISD::FREM,      MVT::f32, Expand);
 1308     setOperationAction(ISD::FCOPYSIGN, MVT::f64, Custom);
 1309     setOperationAction(ISD::FCOPYSIGN, MVT::f32, Custom);
 1311   setOperationAction(ISD::FPOW,      MVT::f64, Expand);
 1312   setOperationAction(ISD::FPOW,      MVT::f32, Expand);
 1315     setOperationAction(ISD::FMA, MVT::f64, Expand);
 1316     setOperationAction(ISD::FMA, MVT::f32, Expand);
 1323       setOperationAction(ISD::FP16_TO_FP, MVT::f64, Expand);
 1324       setOperationAction(ISD::FP_TO_FP16, MVT::f64, Expand);
 1329       setOperationAction(ISD::FP16_TO_FP, MVT::f32, Expand);
 1330       setOperationAction(ISD::FP_TO_FP16, MVT::f32, Expand);
 1337     setOperationAction(ISD::FSINCOS, MVT::f64, Custom);
 1338     setOperationAction(ISD::FSINCOS, MVT::f32, Custom);
 1343     setOperationAction(ISD::FFLOOR, MVT::f32, Legal);
 1344     setOperationAction(ISD::FCEIL, MVT::f32, Legal);
 1345     setOperationAction(ISD::FROUND, MVT::f32, Legal);
 1346     setOperationAction(ISD::FTRUNC, MVT::f32, Legal);
 1347     setOperationAction(ISD::FNEARBYINT, MVT::f32, Legal);
 1348     setOperationAction(ISD::FRINT, MVT::f32, Legal);
 1349     setOperationAction(ISD::FMINNUM, MVT::f32, Legal);
 1350     setOperationAction(ISD::FMAXNUM, MVT::f32, Legal);
 1352       setOperationAction(ISD::FMINNUM, MVT::v2f32, Legal);
 1353       setOperationAction(ISD::FMAXNUM, MVT::v2f32, Legal);
 1354       setOperationAction(ISD::FMINNUM, MVT::v4f32, Legal);
 1355       setOperationAction(ISD::FMAXNUM, MVT::v4f32, Legal);
 1359       setOperationAction(ISD::FFLOOR, MVT::f64, Legal);
 1360       setOperationAction(ISD::FCEIL, MVT::f64, Legal);
 1361       setOperationAction(ISD::FROUND, MVT::f64, Legal);
 1362       setOperationAction(ISD::FTRUNC, MVT::f64, Legal);
 1363       setOperationAction(ISD::FNEARBYINT, MVT::f64, Legal);
 1364       setOperationAction(ISD::FRINT, MVT::f64, Legal);
 1365       setOperationAction(ISD::FMINNUM, MVT::f64, Legal);
 1366       setOperationAction(ISD::FMAXNUM, MVT::f64, Legal);
 1372     setOperationAction(ISD::FREM, MVT::f16, Promote);
 1373     setOperationAction(ISD::FCOPYSIGN, MVT::f16, Expand);
 1374     setOperationAction(ISD::FSIN, MVT::f16, Promote);
 1375     setOperationAction(ISD::FCOS, MVT::f16, Promote);
 1376     setOperationAction(ISD::FSINCOS, MVT::f16, Promote);
 1377     setOperationAction(ISD::FPOWI, MVT::f16, Promote);
 1378     setOperationAction(ISD::FPOW, MVT::f16, Promote);
 1379     setOperationAction(ISD::FEXP, MVT::f16, Promote);
 1380     setOperationAction(ISD::FEXP2, MVT::f16, Promote);
 1381     setOperationAction(ISD::FLOG, MVT::f16, Promote);
 1382     setOperationAction(ISD::FLOG10, MVT::f16, Promote);
 1383     setOperationAction(ISD::FLOG2, MVT::f16, Promote);
 1385     setOperationAction(ISD::FROUND, MVT::f16, Legal);
 1391     setOperationAction(ISD::FMINIMUM, MVT::f16, Legal);
 1392     setOperationAction(ISD::FMAXIMUM, MVT::f16, Legal);
 1393     setOperationAction(ISD::FMINIMUM, MVT::f32, Legal);
 1394     setOperationAction(ISD::FMAXIMUM, MVT::f32, Legal);
 1395     setOperationAction(ISD::FMINIMUM, MVT::v2f32, Legal);
 1396     setOperationAction(ISD::FMAXIMUM, MVT::v2f32, Legal);
 1397     setOperationAction(ISD::FMINIMUM, MVT::v4f32, Legal);
 1398     setOperationAction(ISD::FMAXIMUM, MVT::v4f32, Legal);
 1401       setOperationAction(ISD::FMINNUM, MVT::v4f16, Legal);
 1402       setOperationAction(ISD::FMAXNUM, MVT::v4f16, Legal);
 1403       setOperationAction(ISD::FMINNUM, MVT::v8f16, Legal);
 1404       setOperationAction(ISD::FMAXNUM, MVT::v8f16, Legal);
 1406       setOperationAction(ISD::FMINIMUM, MVT::v4f16, Legal);
 1407       setOperationAction(ISD::FMAXIMUM, MVT::v4f16, Legal);
 1408       setOperationAction(ISD::FMINIMUM, MVT::v8f16, Legal);
 1409       setOperationAction(ISD::FMAXIMUM, MVT::v8f16, Legal);
lib/Target/AVR/AVRISelLowering.cpp
   50   setOperationAction(ISD::GlobalAddress, MVT::i16, Custom);
   51   setOperationAction(ISD::BlockAddress, MVT::i16, Custom);
   53   setOperationAction(ISD::STACKSAVE, MVT::Other, Expand);
   54   setOperationAction(ISD::STACKRESTORE, MVT::Other, Expand);
   55   setOperationAction(ISD::DYNAMIC_STACKALLOC, MVT::i8, Expand);
   56   setOperationAction(ISD::DYNAMIC_STACKALLOC, MVT::i16, Expand);
   68     setOperationAction(ISD::ADDC, VT, Legal);
   69     setOperationAction(ISD::SUBC, VT, Legal);
   70     setOperationAction(ISD::ADDE, VT, Legal);
   71     setOperationAction(ISD::SUBE, VT, Legal);
   76   setOperationAction(ISD::ADD, MVT::i32, Custom);
   77   setOperationAction(ISD::ADD, MVT::i64, Custom);
   81   setOperationAction(ISD::SRA, MVT::i8, Custom);
   82   setOperationAction(ISD::SHL, MVT::i8, Custom);
   83   setOperationAction(ISD::SRL, MVT::i8, Custom);
   84   setOperationAction(ISD::SRA, MVT::i16, Custom);
   85   setOperationAction(ISD::SHL, MVT::i16, Custom);
   86   setOperationAction(ISD::SRL, MVT::i16, Custom);
   87   setOperationAction(ISD::SHL_PARTS, MVT::i16, Expand);
   88   setOperationAction(ISD::SRA_PARTS, MVT::i16, Expand);
   89   setOperationAction(ISD::SRL_PARTS, MVT::i16, Expand);
   91   setOperationAction(ISD::ROTL, MVT::i8, Custom);
   92   setOperationAction(ISD::ROTL, MVT::i16, Expand);
   93   setOperationAction(ISD::ROTR, MVT::i8, Custom);
   94   setOperationAction(ISD::ROTR, MVT::i16, Expand);
   96   setOperationAction(ISD::BR_CC, MVT::i8, Custom);
   97   setOperationAction(ISD::BR_CC, MVT::i16, Custom);
   98   setOperationAction(ISD::BR_CC, MVT::i32, Custom);
   99   setOperationAction(ISD::BR_CC, MVT::i64, Custom);
  100   setOperationAction(ISD::BRCOND, MVT::Other, Expand);
  102   setOperationAction(ISD::SELECT_CC, MVT::i8, Custom);
  103   setOperationAction(ISD::SELECT_CC, MVT::i16, Custom);
  104   setOperationAction(ISD::SELECT_CC, MVT::i32, Expand);
  105   setOperationAction(ISD::SELECT_CC, MVT::i64, Expand);
  106   setOperationAction(ISD::SETCC, MVT::i8, Custom);
  107   setOperationAction(ISD::SETCC, MVT::i16, Custom);
  108   setOperationAction(ISD::SETCC, MVT::i32, Custom);
  109   setOperationAction(ISD::SETCC, MVT::i64, Custom);
  110   setOperationAction(ISD::SELECT, MVT::i8, Expand);
  111   setOperationAction(ISD::SELECT, MVT::i16, Expand);
  113   setOperationAction(ISD::BSWAP, MVT::i16, Expand);
  125   setOperationAction(ISD::BR_JT, MVT::Other, Expand);
  127   setOperationAction(ISD::VASTART, MVT::Other, Custom);
  128   setOperationAction(ISD::VAEND, MVT::Other, Expand);
  129   setOperationAction(ISD::VAARG, MVT::Other, Expand);
  130   setOperationAction(ISD::VACOPY, MVT::Other, Expand);
  134     setOperationAction(ISD::ATOMIC_SWAP, VT, Expand);
  135     setOperationAction(ISD::ATOMIC_CMP_SWAP, VT, Expand);
  136     setOperationAction(ISD::ATOMIC_LOAD_NAND, VT, Expand);
  137     setOperationAction(ISD::ATOMIC_LOAD_MAX, VT, Expand);
  138     setOperationAction(ISD::ATOMIC_LOAD_MIN, VT, Expand);
  139     setOperationAction(ISD::ATOMIC_LOAD_UMAX, VT, Expand);
  140     setOperationAction(ISD::ATOMIC_LOAD_UMIN, VT, Expand);
  144   setOperationAction(ISD::UDIV, MVT::i8, Expand);
  145   setOperationAction(ISD::UDIV, MVT::i16, Expand);
  146   setOperationAction(ISD::UREM, MVT::i8, Expand);
  147   setOperationAction(ISD::UREM, MVT::i16, Expand);
  148   setOperationAction(ISD::SDIV, MVT::i8, Expand);
  149   setOperationAction(ISD::SDIV, MVT::i16, Expand);
  150   setOperationAction(ISD::SREM, MVT::i8, Expand);
  151   setOperationAction(ISD::SREM, MVT::i16, Expand);
  155     setOperationAction(ISD::UDIVREM, VT, Custom);
  156     setOperationAction(ISD::SDIVREM, VT, Custom);
  160   setOperationAction(ISD::MUL, MVT::i8, Expand);
  161   setOperationAction(ISD::MUL, MVT::i16, Expand);
  164   setOperationAction(ISD::SMUL_LOHI, MVT::i16, Expand);
  165   setOperationAction(ISD::UMUL_LOHI, MVT::i16, Expand);
  170     setOperationAction(ISD::SMUL_LOHI, MVT::i8, Expand);
  171     setOperationAction(ISD::UMUL_LOHI, MVT::i8, Expand);
  175     setOperationAction(ISD::MULHS, VT, Expand);
  176     setOperationAction(ISD::MULHU, VT, Expand);
  180     setOperationAction(ISD::CTPOP, VT, Expand);
  181     setOperationAction(ISD::CTLZ, VT, Expand);
  182     setOperationAction(ISD::CTTZ, VT, Expand);
  186     setOperationAction(ISD::SIGN_EXTEND_INREG, VT, Expand);
lib/Target/BPF/BPFISelLowering.cpp
   71   setOperationAction(ISD::BR_CC, MVT::i64, Custom);
   72   setOperationAction(ISD::BR_JT, MVT::Other, Expand);
   73   setOperationAction(ISD::BRIND, MVT::Other, Expand);
   74   setOperationAction(ISD::BRCOND, MVT::Other, Expand);
   76   setOperationAction(ISD::GlobalAddress, MVT::i64, Custom);
   78   setOperationAction(ISD::DYNAMIC_STACKALLOC, MVT::i64, Custom);
   79   setOperationAction(ISD::STACKSAVE, MVT::Other, Expand);
   80   setOperationAction(ISD::STACKRESTORE, MVT::Other, Expand);
   86     setOperationAction(ISD::SDIVREM, VT, Expand);
   87     setOperationAction(ISD::UDIVREM, VT, Expand);
   88     setOperationAction(ISD::SREM, VT, Expand);
   89     setOperationAction(ISD::UREM, VT, Expand);
   90     setOperationAction(ISD::MULHU, VT, Expand);
   91     setOperationAction(ISD::MULHS, VT, Expand);
   92     setOperationAction(ISD::UMUL_LOHI, VT, Expand);
   93     setOperationAction(ISD::SMUL_LOHI, VT, Expand);
   94     setOperationAction(ISD::ROTR, VT, Expand);
   95     setOperationAction(ISD::ROTL, VT, Expand);
   96     setOperationAction(ISD::SHL_PARTS, VT, Expand);
   97     setOperationAction(ISD::SRL_PARTS, VT, Expand);
   98     setOperationAction(ISD::SRA_PARTS, VT, Expand);
   99     setOperationAction(ISD::CTPOP, VT, Expand);
  101     setOperationAction(ISD::SETCC, VT, Expand);
  102     setOperationAction(ISD::SELECT, VT, Expand);
  103     setOperationAction(ISD::SELECT_CC, VT, Custom);
  107     setOperationAction(ISD::BSWAP, MVT::i32, Promote);
  108     setOperationAction(ISD::BR_CC, MVT::i32,
  112   setOperationAction(ISD::CTTZ, MVT::i64, Custom);
  113   setOperationAction(ISD::CTLZ, MVT::i64, Custom);
  114   setOperationAction(ISD::CTTZ_ZERO_UNDEF, MVT::i64, Custom);
  115   setOperationAction(ISD::CTLZ_ZERO_UNDEF, MVT::i64, Custom);
  117   setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i1, Expand);
  118   setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i8, Expand);
  119   setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i16, Expand);
  120   setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i32, Expand);
lib/Target/Hexagon/HexagonISelLowering.cpp
 1292   setOperationAction(ISD::ConstantFP,           MVT::f32,   Legal);
 1293   setOperationAction(ISD::ConstantFP,           MVT::f64,   Legal);
 1294   setOperationAction(ISD::TRAP,                 MVT::Other, Legal);
 1295   setOperationAction(ISD::ConstantPool,         MVT::i32,   Custom);
 1296   setOperationAction(ISD::JumpTable,            MVT::i32,   Custom);
 1297   setOperationAction(ISD::BUILD_PAIR,           MVT::i64,   Expand);
 1298   setOperationAction(ISD::SIGN_EXTEND_INREG,    MVT::i1,    Expand);
 1299   setOperationAction(ISD::INLINEASM,            MVT::Other, Custom);
 1300   setOperationAction(ISD::INLINEASM_BR,         MVT::Other, Custom);
 1301   setOperationAction(ISD::PREFETCH,             MVT::Other, Custom);
 1302   setOperationAction(ISD::READCYCLECOUNTER,     MVT::i64,   Custom);
 1303   setOperationAction(ISD::INTRINSIC_VOID,       MVT::Other, Custom);
 1304   setOperationAction(ISD::EH_RETURN,            MVT::Other, Custom);
 1305   setOperationAction(ISD::GLOBAL_OFFSET_TABLE,  MVT::i32,   Custom);
 1306   setOperationAction(ISD::GlobalTLSAddress,     MVT::i32,   Custom);
 1307   setOperationAction(ISD::ATOMIC_FENCE,         MVT::Other, Custom);
 1310   setOperationAction(ISD::GlobalAddress, MVT::i32, Custom);
 1311   setOperationAction(ISD::GlobalAddress, MVT::i8,  Custom);
 1312   setOperationAction(ISD::BlockAddress,  MVT::i32, Custom);
 1315   setOperationAction(ISD::SETCC, MVT::i8,    Custom);
 1316   setOperationAction(ISD::SETCC, MVT::i16,   Custom);
 1317   setOperationAction(ISD::SETCC, MVT::v4i8,  Custom);
 1318   setOperationAction(ISD::SETCC, MVT::v2i16, Custom);
 1321   setOperationAction(ISD::VASTART, MVT::Other, Custom);
 1322   setOperationAction(ISD::VAEND,   MVT::Other, Expand);
 1323   setOperationAction(ISD::VAARG,   MVT::Other, Expand);
 1324   setOperationAction(ISD::VACOPY,  MVT::Other, Expand);
 1326   setOperationAction(ISD::STACKSAVE, MVT::Other, Expand);
 1327   setOperationAction(ISD::STACKRESTORE, MVT::Other, Expand);
 1328   setOperationAction(ISD::DYNAMIC_STACKALLOC, MVT::i32, Custom);
 1334   setOperationAction(ISD::BR_JT, MVT::Other, Expand);
 1336   setOperationAction(ISD::ABS, MVT::i32, Legal);
 1337   setOperationAction(ISD::ABS, MVT::i64, Legal);
 1342     setOperationAction(ISD::UADDO,    VT, Custom);
 1343     setOperationAction(ISD::USUBO,    VT, Custom);
 1344     setOperationAction(ISD::SADDO,    VT, Expand);
 1345     setOperationAction(ISD::SSUBO,    VT, Expand);
 1346     setOperationAction(ISD::ADDCARRY, VT, Expand);
 1347     setOperationAction(ISD::SUBCARRY, VT, Expand);
 1349   setOperationAction(ISD::ADDCARRY, MVT::i64, Custom);
 1350   setOperationAction(ISD::SUBCARRY, MVT::i64, Custom);
 1352   setOperationAction(ISD::CTLZ, MVT::i8,  Promote);
 1353   setOperationAction(ISD::CTLZ, MVT::i16, Promote);
 1354   setOperationAction(ISD::CTTZ, MVT::i8,  Promote);
 1355   setOperationAction(ISD::CTTZ, MVT::i16, Promote);
 1358   setOperationAction(ISD::CTPOP, MVT::i8,  Promote);
 1359   setOperationAction(ISD::CTPOP, MVT::i16, Promote);
 1360   setOperationAction(ISD::CTPOP, MVT::i32, Promote);
 1361   setOperationAction(ISD::CTPOP, MVT::i64, Legal);
 1363   setOperationAction(ISD::BITREVERSE, MVT::i32, Legal);
 1364   setOperationAction(ISD::BITREVERSE, MVT::i64, Legal);
 1365   setOperationAction(ISD::BSWAP, MVT::i32, Legal);
 1366   setOperationAction(ISD::BSWAP, MVT::i64, Legal);
 1368   setOperationAction(ISD::FSHL, MVT::i32, Legal);
 1369   setOperationAction(ISD::FSHL, MVT::i64, Legal);
 1370   setOperationAction(ISD::FSHR, MVT::i32, Legal);
 1371   setOperationAction(ISD::FSHR, MVT::i64, Legal);
 1379       setOperationAction(IntExpOp, VT, Expand);
 1386       setOperationAction(FPExpOp, VT, Expand);
 1403     setOperationAction(ISD::BR_CC,     VT, Expand);
 1404     setOperationAction(ISD::SELECT_CC, VT, Expand);
 1407     setOperationAction(ISD::BR_CC,     VT, Expand);
 1408     setOperationAction(ISD::SELECT_CC, VT, Expand);
 1410   setOperationAction(ISD::BR_CC, MVT::Other, Expand);
 1444       setOperationAction(VectExpOp, VT, Expand);
 1459       setOperationAction(ISD::SELECT, VT, Promote);
 1462     setOperationAction(ISD::SRA, VT, Custom);
 1463     setOperationAction(ISD::SHL, VT, Custom);
 1464     setOperationAction(ISD::SRL, VT, Custom);
 1479     setOperationAction(ISD::BUILD_VECTOR,       NativeVT, Custom);
 1480     setOperationAction(ISD::EXTRACT_VECTOR_ELT, NativeVT, Custom);
 1481     setOperationAction(ISD::INSERT_VECTOR_ELT,  NativeVT, Custom);
 1482     setOperationAction(ISD::EXTRACT_SUBVECTOR,  NativeVT, Custom);
 1483     setOperationAction(ISD::INSERT_SUBVECTOR,   NativeVT, Custom);
 1484     setOperationAction(ISD::CONCAT_VECTORS,     NativeVT, Custom);
 1486     setOperationAction(ISD::ADD, NativeVT, Legal);
 1487     setOperationAction(ISD::SUB, NativeVT, Legal);
 1488     setOperationAction(ISD::MUL, NativeVT, Legal);
 1489     setOperationAction(ISD::AND, NativeVT, Legal);
 1490     setOperationAction(ISD::OR,  NativeVT, Legal);
 1491     setOperationAction(ISD::XOR, NativeVT, Legal);
 1500     setOperationAction(ISD::LOAD,  VT, Custom);
 1501     setOperationAction(ISD::STORE, VT, Custom);
 1516   setOperationAction(ISD::BITCAST,        MVT::i8,    Custom);
 1517   setOperationAction(ISD::SETCC,          MVT::v2i16, Custom);
 1518   setOperationAction(ISD::VSELECT,        MVT::v4i8,  Custom);
 1519   setOperationAction(ISD::VSELECT,        MVT::v2i16, Custom);
 1520   setOperationAction(ISD::VECTOR_SHUFFLE, MVT::v4i8,  Custom);
 1521   setOperationAction(ISD::VECTOR_SHUFFLE, MVT::v4i16, Custom);
 1522   setOperationAction(ISD::VECTOR_SHUFFLE, MVT::v8i8,  Custom);
 1525   setOperationAction(ISD::FMA,  MVT::f64, Expand);
 1526   setOperationAction(ISD::FADD, MVT::f64, Expand);
 1527   setOperationAction(ISD::FSUB, MVT::f64, Expand);
 1528   setOperationAction(ISD::FMUL, MVT::f64, Expand);
 1530   setOperationAction(ISD::FMINNUM, MVT::f32, Legal);
 1531   setOperationAction(ISD::FMAXNUM, MVT::f32, Legal);
 1533   setOperationAction(ISD::FP_TO_UINT, MVT::i1,  Promote);
 1534   setOperationAction(ISD::FP_TO_UINT, MVT::i8,  Promote);
 1535   setOperationAction(ISD::FP_TO_UINT, MVT::i16, Promote);
 1536   setOperationAction(ISD::FP_TO_SINT, MVT::i1,  Promote);
 1537   setOperationAction(ISD::FP_TO_SINT, MVT::i8,  Promote);
 1538   setOperationAction(ISD::FP_TO_SINT, MVT::i16, Promote);
 1539   setOperationAction(ISD::UINT_TO_FP, MVT::i1,  Promote);
 1540   setOperationAction(ISD::UINT_TO_FP, MVT::i8,  Promote);
 1541   setOperationAction(ISD::UINT_TO_FP, MVT::i16, Promote);
 1542   setOperationAction(ISD::SINT_TO_FP, MVT::i1,  Promote);
 1543   setOperationAction(ISD::SINT_TO_FP, MVT::i8,  Promote);
 1544   setOperationAction(ISD::SINT_TO_FP, MVT::i16, Promote);
 1557     setOperationAction(ISD::ROTL, MVT::i32, Legal);
 1558     setOperationAction(ISD::ROTL, MVT::i64, Legal);
 1559     setOperationAction(ISD::ROTR, MVT::i32, Legal);
 1560     setOperationAction(ISD::ROTR, MVT::i64, Legal);
 1563     setOperationAction(ISD::FADD, MVT::f64, Legal);
 1564     setOperationAction(ISD::FSUB, MVT::f64, Legal);
lib/Target/Hexagon/HexagonISelLoweringHVX.cpp
   65     setOperationAction(Opc, FromTy, Promote);
   69   setOperationAction(ISD::VECTOR_SHUFFLE, ByteV, Legal);
   70   setOperationAction(ISD::VECTOR_SHUFFLE, ByteW, Legal);
   76     setOperationAction(ISD::AND,            T, Legal);
   77     setOperationAction(ISD::OR,             T, Legal);
   78     setOperationAction(ISD::XOR,            T, Legal);
   79     setOperationAction(ISD::ADD,            T, Legal);
   80     setOperationAction(ISD::SUB,            T, Legal);
   81     setOperationAction(ISD::CTPOP,          T, Legal);
   82     setOperationAction(ISD::CTLZ,           T, Legal);
   84       setOperationAction(ISD::SIGN_EXTEND_VECTOR_INREG, T, Legal);
   85       setOperationAction(ISD::ZERO_EXTEND_VECTOR_INREG, T, Legal);
   86       setOperationAction(ISD::BSWAP,                    T, Legal);
   89     setOperationAction(ISD::CTTZ,               T, Custom);
   90     setOperationAction(ISD::LOAD,               T, Custom);
   91     setOperationAction(ISD::MUL,                T, Custom);
   92     setOperationAction(ISD::MULHS,              T, Custom);
   93     setOperationAction(ISD::MULHU,              T, Custom);
   94     setOperationAction(ISD::BUILD_VECTOR,       T, Custom);
   96     setOperationAction(ISD::CONCAT_VECTORS,     T, Custom);
   97     setOperationAction(ISD::INSERT_SUBVECTOR,   T, Custom);
   98     setOperationAction(ISD::INSERT_VECTOR_ELT,  T, Custom);
   99     setOperationAction(ISD::EXTRACT_SUBVECTOR,  T, Custom);
  100     setOperationAction(ISD::EXTRACT_VECTOR_ELT, T, Custom);
  101     setOperationAction(ISD::ANY_EXTEND,         T, Custom);
  102     setOperationAction(ISD::SIGN_EXTEND,        T, Custom);
  103     setOperationAction(ISD::ZERO_EXTEND,        T, Custom);
  105       setOperationAction(ISD::ANY_EXTEND_VECTOR_INREG, T, Custom);
  107       setOperationAction(ISD::SRA,                     T, Custom);
  108       setOperationAction(ISD::SHL,                     T, Custom);
  109       setOperationAction(ISD::SRL,                     T, Custom);
  128     setOperationAction(ISD::BUILD_VECTOR,   T, Custom);
  130     setOperationAction(ISD::CONCAT_VECTORS, T, Custom);
  134     setOperationAction(ISD::ANY_EXTEND,               T, Custom);
  135     setOperationAction(ISD::SIGN_EXTEND,              T, Custom);
  136     setOperationAction(ISD::ZERO_EXTEND,              T, Custom);
  137     setOperationAction(ISD::SIGN_EXTEND_INREG,        T, Custom);
  138     setOperationAction(ISD::ANY_EXTEND_VECTOR_INREG,  T, Custom);
  139     setOperationAction(ISD::SIGN_EXTEND_VECTOR_INREG, T, Legal);
  140     setOperationAction(ISD::ZERO_EXTEND_VECTOR_INREG, T, Legal);
  142     setOperationAction(ISD::LOAD,     T, Custom);
  143     setOperationAction(ISD::STORE,    T, Custom);
  144     setOperationAction(ISD::CTLZ,     T, Custom);
  145     setOperationAction(ISD::CTTZ,     T, Custom);
  146     setOperationAction(ISD::CTPOP,    T, Custom);
  148     setOperationAction(ISD::ADD,      T, Legal);
  149     setOperationAction(ISD::SUB,      T, Legal);
  150     setOperationAction(ISD::MUL,      T, Custom);
  151     setOperationAction(ISD::MULHS,    T, Custom);
  152     setOperationAction(ISD::MULHU,    T, Custom);
  153     setOperationAction(ISD::AND,      T, Custom);
  154     setOperationAction(ISD::OR,       T, Custom);
  155     setOperationAction(ISD::XOR,      T, Custom);
  156     setOperationAction(ISD::SETCC,    T, Custom);
  157     setOperationAction(ISD::VSELECT,  T, Custom);
  159       setOperationAction(ISD::SRA,      T, Custom);
  160       setOperationAction(ISD::SHL,      T, Custom);
  161       setOperationAction(ISD::SRL,      T, Custom);
  178     setOperationAction(ISD::SETCC,              BoolW, Custom);
  179     setOperationAction(ISD::AND,                BoolW, Custom);
  180     setOperationAction(ISD::OR,                 BoolW, Custom);
  181     setOperationAction(ISD::XOR,                BoolW, Custom);
  186     setOperationAction(ISD::BUILD_VECTOR,       BoolV, Custom);
  187     setOperationAction(ISD::CONCAT_VECTORS,     BoolV, Custom);
  188     setOperationAction(ISD::INSERT_SUBVECTOR,   BoolV, Custom);
  189     setOperationAction(ISD::INSERT_VECTOR_ELT,  BoolV, Custom);
  190     setOperationAction(ISD::EXTRACT_SUBVECTOR,  BoolV, Custom);
  191     setOperationAction(ISD::EXTRACT_VECTOR_ELT, BoolV, Custom);
  192     setOperationAction(ISD::AND,                BoolV, Legal);
  193     setOperationAction(ISD::OR,                 BoolV, Legal);
  194     setOperationAction(ISD::XOR,                BoolV, Legal);
lib/Target/Lanai/LanaiISelLowering.cpp
   85   setOperationAction(ISD::BR_CC, MVT::i32, Custom);
   86   setOperationAction(ISD::BR_JT, MVT::Other, Expand);
   87   setOperationAction(ISD::BRCOND, MVT::Other, Expand);
   88   setOperationAction(ISD::SETCC, MVT::i32, Custom);
   89   setOperationAction(ISD::SELECT, MVT::i32, Expand);
   90   setOperationAction(ISD::SELECT_CC, MVT::i32, Custom);
   92   setOperationAction(ISD::GlobalAddress, MVT::i32, Custom);
   93   setOperationAction(ISD::BlockAddress, MVT::i32, Custom);
   94   setOperationAction(ISD::JumpTable, MVT::i32, Custom);
   95   setOperationAction(ISD::ConstantPool, MVT::i32, Custom);
   97   setOperationAction(ISD::DYNAMIC_STACKALLOC, MVT::i32, Custom);
   98   setOperationAction(ISD::STACKSAVE, MVT::Other, Expand);
   99   setOperationAction(ISD::STACKRESTORE, MVT::Other, Expand);
  101   setOperationAction(ISD::VASTART, MVT::Other, Custom);
  102   setOperationAction(ISD::VAARG, MVT::Other, Expand);
  103   setOperationAction(ISD::VACOPY, MVT::Other, Expand);
  104   setOperationAction(ISD::VAEND, MVT::Other, Expand);
  106   setOperationAction(ISD::SDIV, MVT::i32, Expand);
  107   setOperationAction(ISD::UDIV, MVT::i32, Expand);
  108   setOperationAction(ISD::SDIVREM, MVT::i32, Expand);
  109   setOperationAction(ISD::UDIVREM, MVT::i32, Expand);
  110   setOperationAction(ISD::SREM, MVT::i32, Expand);
  111   setOperationAction(ISD::UREM, MVT::i32, Expand);
  113   setOperationAction(ISD::MUL, MVT::i32, Custom);
  114   setOperationAction(ISD::MULHU, MVT::i32, Expand);
  115   setOperationAction(ISD::MULHS, MVT::i32, Expand);
  116   setOperationAction(ISD::UMUL_LOHI, MVT::i32, Expand);
  117   setOperationAction(ISD::SMUL_LOHI, MVT::i32, Expand);
  119   setOperationAction(ISD::ROTR, MVT::i32, Expand);
  120   setOperationAction(ISD::ROTL, MVT::i32, Expand);
  121   setOperationAction(ISD::SHL_PARTS, MVT::i32, Custom);
  122   setOperationAction(ISD::SRL_PARTS, MVT::i32, Custom);
  123   setOperationAction(ISD::SRA_PARTS, MVT::i32, Expand);
  125   setOperationAction(ISD::BSWAP, MVT::i32, Expand);
  126   setOperationAction(ISD::CTPOP, MVT::i32, Legal);
  127   setOperationAction(ISD::CTLZ, MVT::i32, Legal);
  128   setOperationAction(ISD::CTTZ, MVT::i32, Legal);
  130   setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i1, Expand);
  131   setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i8, Expand);
  132   setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i16, Expand);
lib/Target/MSP430/MSP430ISelLowering.cpp
   71   setOperationAction(ISD::SRA,              MVT::i8,    Custom);
   72   setOperationAction(ISD::SHL,              MVT::i8,    Custom);
   73   setOperationAction(ISD::SRL,              MVT::i8,    Custom);
   74   setOperationAction(ISD::SRA,              MVT::i16,   Custom);
   75   setOperationAction(ISD::SHL,              MVT::i16,   Custom);
   76   setOperationAction(ISD::SRL,              MVT::i16,   Custom);
   77   setOperationAction(ISD::ROTL,             MVT::i8,    Expand);
   78   setOperationAction(ISD::ROTR,             MVT::i8,    Expand);
   79   setOperationAction(ISD::ROTL,             MVT::i16,   Expand);
   80   setOperationAction(ISD::ROTR,             MVT::i16,   Expand);
   81   setOperationAction(ISD::GlobalAddress,    MVT::i16,   Custom);
   82   setOperationAction(ISD::ExternalSymbol,   MVT::i16,   Custom);
   83   setOperationAction(ISD::BlockAddress,     MVT::i16,   Custom);
   84   setOperationAction(ISD::BR_JT,            MVT::Other, Expand);
   85   setOperationAction(ISD::BR_CC,            MVT::i8,    Custom);
   86   setOperationAction(ISD::BR_CC,            MVT::i16,   Custom);
   87   setOperationAction(ISD::BRCOND,           MVT::Other, Expand);
   88   setOperationAction(ISD::SETCC,            MVT::i8,    Custom);
   89   setOperationAction(ISD::SETCC,            MVT::i16,   Custom);
   90   setOperationAction(ISD::SELECT,           MVT::i8,    Expand);
   91   setOperationAction(ISD::SELECT,           MVT::i16,   Expand);
   92   setOperationAction(ISD::SELECT_CC,        MVT::i8,    Custom);
   93   setOperationAction(ISD::SELECT_CC,        MVT::i16,   Custom);
   94   setOperationAction(ISD::SIGN_EXTEND,      MVT::i16,   Custom);
   95   setOperationAction(ISD::DYNAMIC_STACKALLOC, MVT::i8, Expand);
   96   setOperationAction(ISD::DYNAMIC_STACKALLOC, MVT::i16, Expand);
   97   setOperationAction(ISD::STACKSAVE,        MVT::Other, Expand);
   98   setOperationAction(ISD::STACKRESTORE,     MVT::Other, Expand);
  100   setOperationAction(ISD::CTTZ,             MVT::i8,    Expand);
  101   setOperationAction(ISD::CTTZ,             MVT::i16,   Expand);
  102   setOperationAction(ISD::CTLZ,             MVT::i8,    Expand);
  103   setOperationAction(ISD::CTLZ,             MVT::i16,   Expand);
  104   setOperationAction(ISD::CTPOP,            MVT::i8,    Expand);
  105   setOperationAction(ISD::CTPOP,            MVT::i16,   Expand);
  107   setOperationAction(ISD::SHL_PARTS,        MVT::i8,    Expand);
  108   setOperationAction(ISD::SHL_PARTS,        MVT::i16,   Expand);
  109   setOperationAction(ISD::SRL_PARTS,        MVT::i8,    Expand);
  110   setOperationAction(ISD::SRL_PARTS,        MVT::i16,   Expand);
  111   setOperationAction(ISD::SRA_PARTS,        MVT::i8,    Expand);
  112   setOperationAction(ISD::SRA_PARTS,        MVT::i16,   Expand);
  114   setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i1,   Expand);
  117   setOperationAction(ISD::MUL,              MVT::i8,    Promote);
  118   setOperationAction(ISD::MULHS,            MVT::i8,    Promote);
  119   setOperationAction(ISD::MULHU,            MVT::i8,    Promote);
  120   setOperationAction(ISD::SMUL_LOHI,        MVT::i8,    Promote);
  121   setOperationAction(ISD::UMUL_LOHI,        MVT::i8,    Promote);
  122   setOperationAction(ISD::MUL,              MVT::i16,   LibCall);
  123   setOperationAction(ISD::MULHS,            MVT::i16,   Expand);
  124   setOperationAction(ISD::MULHU,            MVT::i16,   Expand);
  125   setOperationAction(ISD::SMUL_LOHI,        MVT::i16,   Expand);
  126   setOperationAction(ISD::UMUL_LOHI,        MVT::i16,   Expand);
  128   setOperationAction(ISD::UDIV,             MVT::i8,    Promote);
  129   setOperationAction(ISD::UDIVREM,          MVT::i8,    Promote);
  130   setOperationAction(ISD::UREM,             MVT::i8,    Promote);
  131   setOperationAction(ISD::SDIV,             MVT::i8,    Promote);
  132   setOperationAction(ISD::SDIVREM,          MVT::i8,    Promote);
  133   setOperationAction(ISD::SREM,             MVT::i8,    Promote);
  134   setOperationAction(ISD::UDIV,             MVT::i16,   LibCall);
  135   setOperationAction(ISD::UDIVREM,          MVT::i16,   Expand);
  136   setOperationAction(ISD::UREM,             MVT::i16,   LibCall);
  137   setOperationAction(ISD::SDIV,             MVT::i16,   LibCall);
  138   setOperationAction(ISD::SDIVREM,          MVT::i16,   Expand);
  139   setOperationAction(ISD::SREM,             MVT::i16,   LibCall);
  142   setOperationAction(ISD::VASTART,          MVT::Other, Custom);
  143   setOperationAction(ISD::VAARG,            MVT::Other, Expand);
  144   setOperationAction(ISD::VAEND,            MVT::Other, Expand);
  145   setOperationAction(ISD::VACOPY,           MVT::Other, Expand);
  146   setOperationAction(ISD::JumpTable,        MVT::i16,   Custom);
lib/Target/Mips/Mips16ISelLowering.cpp
  130   setOperationAction(ISD::ATOMIC_FENCE,       MVT::Other, Expand);
  131   setOperationAction(ISD::ATOMIC_CMP_SWAP,    MVT::i32,   Expand);
  132   setOperationAction(ISD::ATOMIC_SWAP,        MVT::i32,   Expand);
  133   setOperationAction(ISD::ATOMIC_LOAD_ADD,    MVT::i32,   Expand);
  134   setOperationAction(ISD::ATOMIC_LOAD_SUB,    MVT::i32,   Expand);
  135   setOperationAction(ISD::ATOMIC_LOAD_AND,    MVT::i32,   Expand);
  136   setOperationAction(ISD::ATOMIC_LOAD_OR,     MVT::i32,   Expand);
  137   setOperationAction(ISD::ATOMIC_LOAD_XOR,    MVT::i32,   Expand);
  138   setOperationAction(ISD::ATOMIC_LOAD_NAND,   MVT::i32,   Expand);
  139   setOperationAction(ISD::ATOMIC_LOAD_MIN,    MVT::i32,   Expand);
  140   setOperationAction(ISD::ATOMIC_LOAD_MAX,    MVT::i32,   Expand);
  141   setOperationAction(ISD::ATOMIC_LOAD_UMIN,   MVT::i32,   Expand);
  142   setOperationAction(ISD::ATOMIC_LOAD_UMAX,   MVT::i32,   Expand);
  144   setOperationAction(ISD::ROTR, MVT::i32,  Expand);
  145   setOperationAction(ISD::ROTR, MVT::i64,  Expand);
  146   setOperationAction(ISD::BSWAP, MVT::i32, Expand);
  147   setOperationAction(ISD::BSWAP, MVT::i64, Expand);
lib/Target/Mips/MipsISelLowering.cpp
  347   setOperationAction(ISD::BR_JT,              MVT::Other, Expand);
  348   setOperationAction(ISD::GlobalAddress,      MVT::i32,   Custom);
  349   setOperationAction(ISD::BlockAddress,       MVT::i32,   Custom);
  350   setOperationAction(ISD::GlobalTLSAddress,   MVT::i32,   Custom);
  351   setOperationAction(ISD::JumpTable,          MVT::i32,   Custom);
  352   setOperationAction(ISD::ConstantPool,       MVT::i32,   Custom);
  353   setOperationAction(ISD::SELECT,             MVT::f32,   Custom);
  354   setOperationAction(ISD::SELECT,             MVT::f64,   Custom);
  355   setOperationAction(ISD::SELECT,             MVT::i32,   Custom);
  356   setOperationAction(ISD::SETCC,              MVT::f32,   Custom);
  357   setOperationAction(ISD::SETCC,              MVT::f64,   Custom);
  358   setOperationAction(ISD::BRCOND,             MVT::Other, Custom);
  359   setOperationAction(ISD::FCOPYSIGN,          MVT::f32,   Custom);
  360   setOperationAction(ISD::FCOPYSIGN,          MVT::f64,   Custom);
  361   setOperationAction(ISD::FP_TO_SINT,         MVT::i32,   Custom);
  364     setOperationAction(ISD::FABS, MVT::f32, Custom);
  365     setOperationAction(ISD::FABS, MVT::f64, Custom);
  369     setOperationAction(ISD::GlobalAddress,      MVT::i64,   Custom);
  370     setOperationAction(ISD::BlockAddress,       MVT::i64,   Custom);
  371     setOperationAction(ISD::GlobalTLSAddress,   MVT::i64,   Custom);
  372     setOperationAction(ISD::JumpTable,          MVT::i64,   Custom);
  373     setOperationAction(ISD::ConstantPool,       MVT::i64,   Custom);
  374     setOperationAction(ISD::SELECT,             MVT::i64,   Custom);
  375     setOperationAction(ISD::LOAD,               MVT::i64,   Custom);
  376     setOperationAction(ISD::STORE,              MVT::i64,   Custom);
  377     setOperationAction(ISD::FP_TO_SINT,         MVT::i64,   Custom);
  378     setOperationAction(ISD::SHL_PARTS,          MVT::i64,   Custom);
  379     setOperationAction(ISD::SRA_PARTS,          MVT::i64,   Custom);
  380     setOperationAction(ISD::SRL_PARTS,          MVT::i64,   Custom);
  384     setOperationAction(ISD::SHL_PARTS,          MVT::i32,   Custom);
  385     setOperationAction(ISD::SRA_PARTS,          MVT::i32,   Custom);
  386     setOperationAction(ISD::SRL_PARTS,          MVT::i32,   Custom);
  389   setOperationAction(ISD::EH_DWARF_CFA,         MVT::i32,   Custom);
  391     setOperationAction(ISD::EH_DWARF_CFA,       MVT::i64,   Custom);
  393   setOperationAction(ISD::SDIV, MVT::i32, Expand);
  394   setOperationAction(ISD::SREM, MVT::i32, Expand);
  395   setOperationAction(ISD::UDIV, MVT::i32, Expand);
  396   setOperationAction(ISD::UREM, MVT::i32, Expand);
  397   setOperationAction(ISD::SDIV, MVT::i64, Expand);
  398   setOperationAction(ISD::SREM, MVT::i64, Expand);
  399   setOperationAction(ISD::UDIV, MVT::i64, Expand);
  400   setOperationAction(ISD::UREM, MVT::i64, Expand);
  403   setOperationAction(ISD::BR_CC,             MVT::f32,   Expand);
  404   setOperationAction(ISD::BR_CC,             MVT::f64,   Expand);
  405   setOperationAction(ISD::BR_CC,             MVT::i32,   Expand);
  406   setOperationAction(ISD::BR_CC,             MVT::i64,   Expand);
  407   setOperationAction(ISD::SELECT_CC,         MVT::i32,   Expand);
  408   setOperationAction(ISD::SELECT_CC,         MVT::i64,   Expand);
  409   setOperationAction(ISD::SELECT_CC,         MVT::f32,   Expand);
  410   setOperationAction(ISD::SELECT_CC,         MVT::f64,   Expand);
  411   setOperationAction(ISD::UINT_TO_FP,        MVT::i32,   Expand);
  412   setOperationAction(ISD::UINT_TO_FP,        MVT::i64,   Expand);
  413   setOperationAction(ISD::FP_TO_UINT,        MVT::i32,   Expand);
  414   setOperationAction(ISD::FP_TO_UINT,        MVT::i64,   Expand);
  415   setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i1,    Expand);
  417     setOperationAction(ISD::CTPOP,           MVT::i32,   Legal);
  418     setOperationAction(ISD::CTPOP,           MVT::i64,   Legal);
  420     setOperationAction(ISD::CTPOP,           MVT::i32,   Expand);
  421     setOperationAction(ISD::CTPOP,           MVT::i64,   Expand);
  423   setOperationAction(ISD::CTTZ,              MVT::i32,   Expand);
  424   setOperationAction(ISD::CTTZ,              MVT::i64,   Expand);
  425   setOperationAction(ISD::ROTL,              MVT::i32,   Expand);
  426   setOperationAction(ISD::ROTL,              MVT::i64,   Expand);
  427   setOperationAction(ISD::DYNAMIC_STACKALLOC, MVT::i32,  Expand);
  428   setOperationAction(ISD::DYNAMIC_STACKALLOC, MVT::i64,  Expand);
  431     setOperationAction(ISD::ROTR, MVT::i32,   Expand);
  434     setOperationAction(ISD::ROTR, MVT::i64,   Expand);
  436   setOperationAction(ISD::FSIN,              MVT::f32,   Expand);
  437   setOperationAction(ISD::FSIN,              MVT::f64,   Expand);
  438   setOperationAction(ISD::FCOS,              MVT::f32,   Expand);
  439   setOperationAction(ISD::FCOS,              MVT::f64,   Expand);
  440   setOperationAction(ISD::FSINCOS,           MVT::f32,   Expand);
  441   setOperationAction(ISD::FSINCOS,           MVT::f64,   Expand);
  442   setOperationAction(ISD::FPOW,              MVT::f32,   Expand);
  443   setOperationAction(ISD::FPOW,              MVT::f64,   Expand);
  444   setOperationAction(ISD::FLOG,              MVT::f32,   Expand);
  445   setOperationAction(ISD::FLOG2,             MVT::f32,   Expand);
  446   setOperationAction(ISD::FLOG10,            MVT::f32,   Expand);
  447   setOperationAction(ISD::FEXP,              MVT::f32,   Expand);
  448   setOperationAction(ISD::FMA,               MVT::f32,   Expand);
  449   setOperationAction(ISD::FMA,               MVT::f64,   Expand);
  450   setOperationAction(ISD::FREM,              MVT::f32,   Expand);
  451   setOperationAction(ISD::FREM,              MVT::f64,   Expand);
  454   setOperationAction(ISD::FP16_TO_FP,        MVT::f32,   Expand);
  455   setOperationAction(ISD::FP_TO_FP16,        MVT::f32,   Expand);
  456   setOperationAction(ISD::FP16_TO_FP,        MVT::f64,   Expand);
  457   setOperationAction(ISD::FP_TO_FP16,        MVT::f64,   Expand);
  459   setOperationAction(ISD::EH_RETURN, MVT::Other, Custom);
  461   setOperationAction(ISD::VASTART,           MVT::Other, Custom);
  462   setOperationAction(ISD::VAARG,             MVT::Other, Custom);
  463   setOperationAction(ISD::VACOPY,            MVT::Other, Expand);
  464   setOperationAction(ISD::VAEND,             MVT::Other, Expand);
  467   setOperationAction(ISD::STACKSAVE,         MVT::Other, Expand);
  468   setOperationAction(ISD::STACKRESTORE,      MVT::Other, Expand);
  471     setOperationAction(ISD::ATOMIC_LOAD,     MVT::i64,   Expand);
  472     setOperationAction(ISD::ATOMIC_STORE,    MVT::i64,   Expand);
  476     setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i8,  Expand);
  477     setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i16, Expand);
  482     setOperationAction(ISD::CTLZ, MVT::i32, Expand);
  484     setOperationAction(ISD::CTLZ, MVT::i64, Expand);
  487     setOperationAction(ISD::BSWAP, MVT::i32, Expand);
  489     setOperationAction(ISD::BSWAP, MVT::i64, Expand);
  498   setOperationAction(ISD::TRAP, MVT::Other, Legal);
lib/Target/Mips/MipsSEISelLowering.cpp
   92         setOperationAction(Opc, VecTys[i], Expand);
   94       setOperationAction(ISD::ADD, VecTys[i], Legal);
   95       setOperationAction(ISD::SUB, VecTys[i], Legal);
   96       setOperationAction(ISD::LOAD, VecTys[i], Legal);
   97       setOperationAction(ISD::STORE, VecTys[i], Legal);
   98       setOperationAction(ISD::BITCAST, VecTys[i], Legal);
  108       setOperationAction(ISD::ADDC, MVT::i32, Legal);
  109       setOperationAction(ISD::ADDE, MVT::i32, Legal);
  114     setOperationAction(ISD::MUL, MVT::v2i16, Legal);
  127     setOperationAction(ISD::SETCC, MVT::f16, Promote);
  128     setOperationAction(ISD::BR_CC, MVT::f16, Promote);
  129     setOperationAction(ISD::SELECT_CC, MVT::f16, Promote);
  130     setOperationAction(ISD::SELECT, MVT::f16, Promote);
  131     setOperationAction(ISD::FADD, MVT::f16, Promote);
  132     setOperationAction(ISD::FSUB, MVT::f16, Promote);
  133     setOperationAction(ISD::FMUL, MVT::f16, Promote);
  134     setOperationAction(ISD::FDIV, MVT::f16, Promote);
  135     setOperationAction(ISD::FREM, MVT::f16, Promote);
  136     setOperationAction(ISD::FMA, MVT::f16, Promote);
  137     setOperationAction(ISD::FNEG, MVT::f16, Promote);
  138     setOperationAction(ISD::FABS, MVT::f16, Promote);
  139     setOperationAction(ISD::FCEIL, MVT::f16, Promote);
  140     setOperationAction(ISD::FCOPYSIGN, MVT::f16, Promote);
  141     setOperationAction(ISD::FCOS, MVT::f16, Promote);
  142     setOperationAction(ISD::FP_EXTEND, MVT::f16, Promote);
  143     setOperationAction(ISD::FFLOOR, MVT::f16, Promote);
  144     setOperationAction(ISD::FNEARBYINT, MVT::f16, Promote);
  145     setOperationAction(ISD::FPOW, MVT::f16, Promote);
  146     setOperationAction(ISD::FPOWI, MVT::f16, Promote);
  147     setOperationAction(ISD::FRINT, MVT::f16, Promote);
  148     setOperationAction(ISD::FSIN, MVT::f16, Promote);
  149     setOperationAction(ISD::FSINCOS, MVT::f16, Promote);
  150     setOperationAction(ISD::FSQRT, MVT::f16, Promote);
  151     setOperationAction(ISD::FEXP, MVT::f16, Promote);
  152     setOperationAction(ISD::FEXP2, MVT::f16, Promote);
  153     setOperationAction(ISD::FLOG, MVT::f16, Promote);
  154     setOperationAction(ISD::FLOG2, MVT::f16, Promote);
  155     setOperationAction(ISD::FLOG10, MVT::f16, Promote);
  156     setOperationAction(ISD::FROUND, MVT::f16, Promote);
  157     setOperationAction(ISD::FTRUNC, MVT::f16, Promote);
  158     setOperationAction(ISD::FMINNUM, MVT::f16, Promote);
  159     setOperationAction(ISD::FMAXNUM, MVT::f16, Promote);
  160     setOperationAction(ISD::FMINIMUM, MVT::f16, Promote);
  161     setOperationAction(ISD::FMAXIMUM, MVT::f16, Promote);
  182   setOperationAction(ISD::SMUL_LOHI,          MVT::i32, Custom);
  183   setOperationAction(ISD::UMUL_LOHI,          MVT::i32, Custom);
  184   setOperationAction(ISD::MULHS,              MVT::i32, Custom);
  185   setOperationAction(ISD::MULHU,              MVT::i32, Custom);
  188     setOperationAction(ISD::MUL,              MVT::i64, Legal);
  190     setOperationAction(ISD::MUL,              MVT::i64, Custom);
  193     setOperationAction(ISD::SMUL_LOHI,        MVT::i64, Custom);
  194     setOperationAction(ISD::UMUL_LOHI,        MVT::i64, Custom);
  195     setOperationAction(ISD::MULHS,            MVT::i64, Custom);
  196     setOperationAction(ISD::MULHU,            MVT::i64, Custom);
  197     setOperationAction(ISD::SDIVREM,          MVT::i64, Custom);
  198     setOperationAction(ISD::UDIVREM,          MVT::i64, Custom);
  201   setOperationAction(ISD::INTRINSIC_WO_CHAIN, MVT::i64, Custom);
  202   setOperationAction(ISD::INTRINSIC_W_CHAIN,  MVT::i64, Custom);
  204   setOperationAction(ISD::SDIVREM, MVT::i32, Custom);
  205   setOperationAction(ISD::UDIVREM, MVT::i32, Custom);
  206   setOperationAction(ISD::ATOMIC_FENCE,       MVT::Other, Custom);
  207   setOperationAction(ISD::LOAD,               MVT::i32, Custom);
  208   setOperationAction(ISD::STORE,              MVT::i32, Custom);
  212   setOperationAction(ISD::INTRINSIC_WO_CHAIN, MVT::Other, Custom);
  213   setOperationAction(ISD::INTRINSIC_W_CHAIN, MVT::Other, Custom);
  214   setOperationAction(ISD::INTRINSIC_VOID, MVT::Other, Custom);
  218     setOperationAction(ISD::BITCAST, MVT::i64, Custom);
  222     setOperationAction(ISD::LOAD, MVT::f64, Custom);
  223     setOperationAction(ISD::STORE, MVT::f64, Custom);
  229     setOperationAction(ISD::SMUL_LOHI, MVT::i32, Expand);
  230     setOperationAction(ISD::UMUL_LOHI, MVT::i32, Expand);
  231     setOperationAction(ISD::MUL, MVT::i32, Legal);
  232     setOperationAction(ISD::MULHS, MVT::i32, Legal);
  233     setOperationAction(ISD::MULHU, MVT::i32, Legal);
  237     setOperationAction(ISD::SDIVREM, MVT::i32, Expand);
  238     setOperationAction(ISD::UDIVREM, MVT::i32, Expand);
  239     setOperationAction(ISD::SDIV, MVT::i32, Legal);
  240     setOperationAction(ISD::UDIV, MVT::i32, Legal);
  241     setOperationAction(ISD::SREM, MVT::i32, Legal);
  242     setOperationAction(ISD::UREM, MVT::i32, Legal);
  246     setOperationAction(ISD::SETCC, MVT::i32, Legal);
  247     setOperationAction(ISD::SELECT, MVT::i32, Legal);
  248     setOperationAction(ISD::SELECT_CC, MVT::i32, Expand);
  250     setOperationAction(ISD::SETCC, MVT::f32, Legal);
  251     setOperationAction(ISD::SELECT, MVT::f32, Legal);
  252     setOperationAction(ISD::SELECT_CC, MVT::f32, Expand);
  255     setOperationAction(ISD::SETCC, MVT::f64, Legal);
  256     setOperationAction(ISD::SELECT, MVT::f64, Custom);
  257     setOperationAction(ISD::SELECT_CC, MVT::f64, Expand);
  259     setOperationAction(ISD::BRCOND, MVT::Other, Legal);
  276     setOperationAction(ISD::SMUL_LOHI, MVT::i64, Expand);
  277     setOperationAction(ISD::UMUL_LOHI, MVT::i64, Expand);
  278     setOperationAction(ISD::MUL, MVT::i64, Legal);
  279     setOperationAction(ISD::MULHS, MVT::i64, Legal);
  280     setOperationAction(ISD::MULHU, MVT::i64, Legal);
  284     setOperationAction(ISD::SDIVREM, MVT::i64, Expand);
  285     setOperationAction(ISD::UDIVREM, MVT::i64, Expand);
  286     setOperationAction(ISD::SDIV, MVT::i64, Legal);
  287     setOperationAction(ISD::UDIV, MVT::i64, Legal);
  288     setOperationAction(ISD::SREM, MVT::i64, Legal);
  289     setOperationAction(ISD::UREM, MVT::i64, Legal);
  293     setOperationAction(ISD::SETCC, MVT::i64, Legal);
  294     setOperationAction(ISD::SELECT, MVT::i64, Legal);
  295     setOperationAction(ISD::SELECT_CC, MVT::i64, Expand);
  322     setOperationAction(Opc, Ty, Expand);
  324   setOperationAction(ISD::BITCAST, Ty, Legal);
  325   setOperationAction(ISD::LOAD, Ty, Legal);
  326   setOperationAction(ISD::STORE, Ty, Legal);
  327   setOperationAction(ISD::EXTRACT_VECTOR_ELT, Ty, Custom);
  328   setOperationAction(ISD::INSERT_VECTOR_ELT, Ty, Legal);
  329   setOperationAction(ISD::BUILD_VECTOR, Ty, Custom);
  330   setOperationAction(ISD::UNDEF, Ty, Legal);
  332   setOperationAction(ISD::ADD, Ty, Legal);
  333   setOperationAction(ISD::AND, Ty, Legal);
  334   setOperationAction(ISD::CTLZ, Ty, Legal);
  335   setOperationAction(ISD::CTPOP, Ty, Legal);
  336   setOperationAction(ISD::MUL, Ty, Legal);
  337   setOperationAction(ISD::OR, Ty, Legal);
  338   setOperationAction(ISD::SDIV, Ty, Legal);
  339   setOperationAction(ISD::SREM, Ty, Legal);
  340   setOperationAction(ISD::SHL, Ty, Legal);
  341   setOperationAction(ISD::SRA, Ty, Legal);
  342   setOperationAction(ISD::SRL, Ty, Legal);
  343   setOperationAction(ISD::SUB, Ty, Legal);
  344   setOperationAction(ISD::SMAX, Ty, Legal);
  345   setOperationAction(ISD::SMIN, Ty, Legal);
  346   setOperationAction(ISD::UDIV, Ty, Legal);
  347   setOperationAction(ISD::UREM, Ty, Legal);
  348   setOperationAction(ISD::UMAX, Ty, Legal);
  349   setOperationAction(ISD::UMIN, Ty, Legal);
  350   setOperationAction(ISD::VECTOR_SHUFFLE, Ty, Custom);
  351   setOperationAction(ISD::VSELECT, Ty, Legal);
  352   setOperationAction(ISD::XOR, Ty, Legal);
  355     setOperationAction(ISD::FP_TO_SINT, Ty, Legal);
  356     setOperationAction(ISD::FP_TO_UINT, Ty, Legal);
  357     setOperationAction(ISD::SINT_TO_FP, Ty, Legal);
  358     setOperationAction(ISD::UINT_TO_FP, Ty, Legal);
  361   setOperationAction(ISD::SETCC, Ty, Legal);
  376     setOperationAction(Opc, Ty, Expand);
  378   setOperationAction(ISD::LOAD, Ty, Legal);
  379   setOperationAction(ISD::STORE, Ty, Legal);
  380   setOperationAction(ISD::BITCAST, Ty, Legal);
  381   setOperationAction(ISD::EXTRACT_VECTOR_ELT, Ty, Legal);
  382   setOperationAction(ISD::INSERT_VECTOR_ELT, Ty, Legal);
  383   setOperationAction(ISD::BUILD_VECTOR, Ty, Custom);
  386     setOperationAction(ISD::FABS,  Ty, Legal);
  387     setOperationAction(ISD::FADD,  Ty, Legal);
  388     setOperationAction(ISD::FDIV,  Ty, Legal);
  389     setOperationAction(ISD::FEXP2, Ty, Legal);
  390     setOperationAction(ISD::FLOG2, Ty, Legal);
  391     setOperationAction(ISD::FMA,   Ty, Legal);
  392     setOperationAction(ISD::FMUL,  Ty, Legal);
  393     setOperationAction(ISD::FRINT, Ty, Legal);
  394     setOperationAction(ISD::FSQRT, Ty, Legal);
  395     setOperationAction(ISD::FSUB,  Ty, Legal);
  396     setOperationAction(ISD::VSELECT, Ty, Legal);
  398     setOperationAction(ISD::SETCC, Ty, Legal);
lib/Target/NVPTX/NVPTXISelLowering.cpp
  372     setOperationAction(Op, VT, STI.allowFP16Math() ? Action : NoF16Action);
  385   setOperationAction(ISD::SINT_TO_FP, MVT::f16, Legal);
  386   setOperationAction(ISD::FP_TO_SINT, MVT::f16, Legal);
  387   setOperationAction(ISD::BUILD_VECTOR, MVT::v2f16, Custom);
  388   setOperationAction(ISD::EXTRACT_VECTOR_ELT, MVT::v2f16, Custom);
  389   setOperationAction(ISD::INSERT_VECTOR_ELT, MVT::v2f16, Expand);
  390   setOperationAction(ISD::VECTOR_SHUFFLE, MVT::v2f16, Expand);
  398     setOperationAction(ISD::SELECT_CC, VT, Expand);
  399     setOperationAction(ISD::BR_CC, VT, Expand);
  404   setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i64, Legal);
  405   setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i32, Legal);
  406   setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i16, Legal);
  407   setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i8 , Legal);
  408   setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i1, Expand);
  410   setOperationAction(ISD::SHL_PARTS, MVT::i32  , Custom);
  411   setOperationAction(ISD::SRA_PARTS, MVT::i32  , Custom);
  412   setOperationAction(ISD::SRL_PARTS, MVT::i32  , Custom);
  413   setOperationAction(ISD::SHL_PARTS, MVT::i64  , Custom);
  414   setOperationAction(ISD::SRA_PARTS, MVT::i64  , Custom);
  415   setOperationAction(ISD::SRL_PARTS, MVT::i64  , Custom);
  417   setOperationAction(ISD::BITREVERSE, MVT::i32, Legal);
  418   setOperationAction(ISD::BITREVERSE, MVT::i64, Legal);
  423   setOperationAction(ISD::ROTL, MVT::i64, Legal);
  424   setOperationAction(ISD::ROTR, MVT::i64, Legal);
  425   setOperationAction(ISD::ROTL, MVT::i32, Legal);
  426   setOperationAction(ISD::ROTR, MVT::i32, Legal);
  428   setOperationAction(ISD::ROTL, MVT::i16, Expand);
  429   setOperationAction(ISD::ROTR, MVT::i16, Expand);
  430   setOperationAction(ISD::ROTL, MVT::i8, Expand);
  431   setOperationAction(ISD::ROTR, MVT::i8, Expand);
  432   setOperationAction(ISD::BSWAP, MVT::i16, Expand);
  433   setOperationAction(ISD::BSWAP, MVT::i32, Expand);
  434   setOperationAction(ISD::BSWAP, MVT::i64, Expand);
  438   setOperationAction(ISD::BR_JT, MVT::Other, Expand);
  439   setOperationAction(ISD::BRIND, MVT::Other, Expand);
  441   setOperationAction(ISD::GlobalAddress, MVT::i32, Custom);
  442   setOperationAction(ISD::GlobalAddress, MVT::i64, Custom);
  446   setOperationAction(ISD::INTRINSIC_W_CHAIN, MVT::Other, Custom);
  465   setOperationAction(ISD::LOAD, MVT::i1, Custom);
  466   setOperationAction(ISD::STORE, MVT::i1, Custom);
  475   setOperationAction(ISD::ConstantFP, MVT::f64, Legal);
  476   setOperationAction(ISD::ConstantFP, MVT::f32, Legal);
  477   setOperationAction(ISD::ConstantFP, MVT::f16, Legal);
  480   setOperationAction(ISD::TRAP, MVT::Other, Legal);
  485       setOperationAction(ISD::LOAD, VT, Custom);
  486       setOperationAction(ISD::STORE, VT, Custom);
  487       setOperationAction(ISD::INTRINSIC_W_CHAIN, VT, Custom);
  492   setOperationAction(ISD::INTRINSIC_W_CHAIN, MVT::i8, Custom);
  495     setOperationAction(ISD::ABS,  Ty, Legal);
  496     setOperationAction(ISD::SMIN, Ty, Legal);
  497     setOperationAction(ISD::SMAX, Ty, Legal);
  498     setOperationAction(ISD::UMIN, Ty, Legal);
  499     setOperationAction(ISD::UMAX, Ty, Legal);
  501     setOperationAction(ISD::CTPOP, Ty, Legal);
  502     setOperationAction(ISD::CTLZ, Ty, Legal);
  505   setOperationAction(ISD::CTTZ, MVT::i16, Expand);
  506   setOperationAction(ISD::CTTZ, MVT::i32, Expand);
  507   setOperationAction(ISD::CTTZ, MVT::i64, Expand);
  510   setOperationAction(ISD::SELECT, MVT::i1, Custom);
  513   setOperationAction(ISD::SMUL_LOHI, MVT::i64, Expand);
  514   setOperationAction(ISD::UMUL_LOHI, MVT::i64, Expand);
  542   setOperationAction(ISD::FNEG, MVT::f16, Expand);
  543   setOperationAction(ISD::FNEG, MVT::v2f16, Expand);
  550     setOperationAction(Op, MVT::f16, Legal);
  551     setOperationAction(Op, MVT::f32, Legal);
  552     setOperationAction(Op, MVT::f64, Legal);
  553     setOperationAction(Op, MVT::v2f16, Expand);
  556   setOperationAction(ISD::FROUND, MVT::f16, Promote);
  557   setOperationAction(ISD::FROUND, MVT::v2f16, Expand);
  558   setOperationAction(ISD::FROUND, MVT::f32, Custom);
  559   setOperationAction(ISD::FROUND, MVT::f64, Custom);
  563   setOperationAction(ISD::FCOPYSIGN, MVT::f16, Expand);
  564   setOperationAction(ISD::FCOPYSIGN, MVT::v2f16, Expand);
  565   setOperationAction(ISD::FCOPYSIGN, MVT::f32, Expand);
  566   setOperationAction(ISD::FCOPYSIGN, MVT::f64, Expand);
  573     setOperationAction(Op, MVT::f16, Promote);
  574     setOperationAction(Op, MVT::f32, Legal);
  575     setOperationAction(Op, MVT::f64, Legal);
  576     setOperationAction(Op, MVT::v2f16, Expand);
  578   setOperationAction(ISD::FMINNUM, MVT::f16, Promote);
  579   setOperationAction(ISD::FMAXNUM, MVT::f16, Promote);
  580   setOperationAction(ISD::FMINIMUM, MVT::f16, Promote);
  581   setOperationAction(ISD::FMAXIMUM, MVT::f16, Promote);
lib/Target/PowerPC/PPCISelLowering.cpp
  157   setOperationAction(ISD::BITREVERSE, MVT::i32, Legal);
  158   setOperationAction(ISD::BITREVERSE, MVT::i64, Legal);
  161   setOperationAction(ISD::ATOMIC_CMP_SWAP, MVT::i32, Custom);
  192     setOperationAction(ISD::ADDC, VT, Legal);
  193     setOperationAction(ISD::ADDE, VT, Legal);
  194     setOperationAction(ISD::SUBC, VT, Legal);
  195     setOperationAction(ISD::SUBE, VT, Legal);
  199     setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i1, Expand);
  202       setOperationAction(ISD::SINT_TO_FP, MVT::i1, Promote);
  205       setOperationAction(ISD::UINT_TO_FP, MVT::i1, Promote);
  209       setOperationAction(ISD::SINT_TO_FP, MVT::i1, Custom);
  210       setOperationAction(ISD::UINT_TO_FP, MVT::i1, Custom);
  214     setOperationAction(ISD::LOAD, MVT::i1, Custom);
  215     setOperationAction(ISD::STORE, MVT::i1, Custom);
  219       setOperationAction(ISD::TRUNCATE, MVT::i1, Custom);
  232   setOperationAction(ISD::FP_TO_SINT, MVT::ppcf128, Custom);
  233   setOperationAction(ISD::FP_TO_UINT, MVT::ppcf128, Custom);
  236   setOperationAction(ISD::FFLOOR, MVT::ppcf128, Expand);
  237   setOperationAction(ISD::FCEIL,  MVT::ppcf128, Expand);
  238   setOperationAction(ISD::FTRUNC, MVT::ppcf128, Expand);
  239   setOperationAction(ISD::FRINT,  MVT::ppcf128, Expand);
  240   setOperationAction(ISD::FNEARBYINT, MVT::ppcf128, Expand);
  241   setOperationAction(ISD::FREM, MVT::ppcf128, Expand);
  250     setOperationAction(ISD::SREM, MVT::i32, Custom);
  251     setOperationAction(ISD::UREM, MVT::i32, Custom);
  252     setOperationAction(ISD::SREM, MVT::i64, Custom);
  253     setOperationAction(ISD::UREM, MVT::i64, Custom);
  255     setOperationAction(ISD::SREM, MVT::i32, Expand);
  256     setOperationAction(ISD::UREM, MVT::i32, Expand);
  257     setOperationAction(ISD::SREM, MVT::i64, Expand);
  258     setOperationAction(ISD::UREM, MVT::i64, Expand);
  262   setOperationAction(ISD::UMUL_LOHI, MVT::i32, Expand);
  263   setOperationAction(ISD::SMUL_LOHI, MVT::i32, Expand);
  264   setOperationAction(ISD::UMUL_LOHI, MVT::i64, Expand);
  265   setOperationAction(ISD::SMUL_LOHI, MVT::i64, Expand);
  266   setOperationAction(ISD::UDIVREM, MVT::i32, Expand);
  267   setOperationAction(ISD::SDIVREM, MVT::i32, Expand);
  268   setOperationAction(ISD::UDIVREM, MVT::i64, Expand);
  269   setOperationAction(ISD::SDIVREM, MVT::i64, Expand);
  272   setOperationAction(ISD::FSIN , MVT::f64, Expand);
  273   setOperationAction(ISD::FCOS , MVT::f64, Expand);
  274   setOperationAction(ISD::FSINCOS, MVT::f64, Expand);
  275   setOperationAction(ISD::FREM , MVT::f64, Expand);
  276   setOperationAction(ISD::FPOW , MVT::f64, Expand);
  277   setOperationAction(ISD::FSIN , MVT::f32, Expand);
  278   setOperationAction(ISD::FCOS , MVT::f32, Expand);
  279   setOperationAction(ISD::FSINCOS, MVT::f32, Expand);
  280   setOperationAction(ISD::FREM , MVT::f32, Expand);
  281   setOperationAction(ISD::FPOW , MVT::f32, Expand);
  283     setOperationAction(ISD::FMA  , MVT::f64, Expand);
  284     setOperationAction(ISD::FMA  , MVT::f32, Expand);
  286     setOperationAction(ISD::FMA  , MVT::f64, Legal);
  287     setOperationAction(ISD::FMA  , MVT::f32, Legal);
  290   setOperationAction(ISD::FLT_ROUNDS_, MVT::i32, Custom);
  296     setOperationAction(ISD::FSQRT, MVT::f64, Expand);
  301     setOperationAction(ISD::FSQRT, MVT::f32, Expand);
  304     setOperationAction(ISD::FCOPYSIGN, MVT::f64, Legal);
  305     setOperationAction(ISD::FCOPYSIGN, MVT::f32, Legal);
  307     setOperationAction(ISD::FCOPYSIGN, MVT::f64, Expand);
  308     setOperationAction(ISD::FCOPYSIGN, MVT::f32, Expand);
  312     setOperationAction(ISD::FFLOOR, MVT::f64, Legal);
  313     setOperationAction(ISD::FCEIL,  MVT::f64, Legal);
  314     setOperationAction(ISD::FTRUNC, MVT::f64, Legal);
  315     setOperationAction(ISD::FROUND, MVT::f64, Legal);
  317     setOperationAction(ISD::FFLOOR, MVT::f32, Legal);
  318     setOperationAction(ISD::FCEIL,  MVT::f32, Legal);
  319     setOperationAction(ISD::FTRUNC, MVT::f32, Legal);
  320     setOperationAction(ISD::FROUND, MVT::f32, Legal);
  326   setOperationAction(ISD::BSWAP, MVT::i32  , Expand);
  328     setOperationAction(ISD::BSWAP, MVT::i64  , Custom);
  330     setOperationAction(ISD::BSWAP, MVT::i64  , Expand);
  332     setOperationAction(ISD::CTTZ , MVT::i32  , Legal);
  333     setOperationAction(ISD::CTTZ , MVT::i64  , Legal);
  335     setOperationAction(ISD::CTTZ , MVT::i32  , Expand);
  336     setOperationAction(ISD::CTTZ , MVT::i64  , Expand);
  340     setOperationAction(ISD::CTPOP, MVT::i32  , Legal);
  341     setOperationAction(ISD::CTPOP, MVT::i64  , Legal);
  343     setOperationAction(ISD::CTPOP, MVT::i32  , Expand);
  344     setOperationAction(ISD::CTPOP, MVT::i64  , Expand);
  348   setOperationAction(ISD::ROTR, MVT::i32   , Expand);
  349   setOperationAction(ISD::ROTR, MVT::i64   , Expand);
  353     setOperationAction(ISD::SELECT, MVT::i32, Expand);
  354     setOperationAction(ISD::SELECT, MVT::i64, Expand);
  355     setOperationAction(ISD::SELECT, MVT::f32, Expand);
  356     setOperationAction(ISD::SELECT, MVT::f64, Expand);
  360   setOperationAction(ISD::SELECT_CC, MVT::f32, Custom);
  361   setOperationAction(ISD::SELECT_CC, MVT::f64, Custom);
  365     setOperationAction(ISD::SETCC, MVT::i32, Custom);
  369     setOperationAction(ISD::BRCOND, MVT::Other, Expand);
  371   setOperationAction(ISD::BR_JT,  MVT::Other, Expand);
  375     setOperationAction(ISD::FP_TO_SINT, MVT::i32, Legal);
  376     setOperationAction(ISD::SINT_TO_FP, MVT::i32, Legal);
  377     setOperationAction(ISD::UINT_TO_FP, MVT::i32, Legal);
  380     setOperationAction(ISD::FP_TO_SINT, MVT::i32, Custom);
  383     setOperationAction(ISD::SINT_TO_FP, MVT::i32, Expand);
  384     setOperationAction(ISD::UINT_TO_FP, MVT::i32, Expand);
  388     setOperationAction(ISD::BITCAST, MVT::f32, Legal);
  389     setOperationAction(ISD::BITCAST, MVT::i32, Legal);
  390     setOperationAction(ISD::BITCAST, MVT::i64, Legal);
  391     setOperationAction(ISD::BITCAST, MVT::f64, Legal);
  393     setOperationAction(ISD::BITCAST, MVT::f32, Expand);
  394     setOperationAction(ISD::BITCAST, MVT::i32, Expand);
  395     setOperationAction(ISD::BITCAST, MVT::i64, Expand);
  396     setOperationAction(ISD::BITCAST, MVT::f64, Expand);
  400   setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i1, Expand);
  408   setOperationAction(ISD::EH_SJLJ_SETJMP, MVT::i32, Custom);
  409   setOperationAction(ISD::EH_SJLJ_LONGJMP, MVT::Other, Custom);
  413   setOperationAction(ISD::GlobalAddress, MVT::i32, Custom);
  414   setOperationAction(ISD::GlobalTLSAddress, MVT::i32, Custom);
  415   setOperationAction(ISD::BlockAddress,  MVT::i32, Custom);
  416   setOperationAction(ISD::ConstantPool,  MVT::i32, Custom);
  417   setOperationAction(ISD::JumpTable,     MVT::i32, Custom);
  418   setOperationAction(ISD::GlobalAddress, MVT::i64, Custom);
  419   setOperationAction(ISD::GlobalTLSAddress, MVT::i64, Custom);
  420   setOperationAction(ISD::BlockAddress,  MVT::i64, Custom);
  421   setOperationAction(ISD::ConstantPool,  MVT::i64, Custom);
  422   setOperationAction(ISD::JumpTable,     MVT::i64, Custom);
  425   setOperationAction(ISD::TRAP, MVT::Other, Legal);
  428   setOperationAction(ISD::INIT_TRAMPOLINE, MVT::Other, Custom);
  429   setOperationAction(ISD::ADJUST_TRAMPOLINE, MVT::Other, Custom);
  432   setOperationAction(ISD::VASTART           , MVT::Other, Custom);
  436     setOperationAction(ISD::VAARG, MVT::i1, Promote);
  438     setOperationAction(ISD::VAARG, MVT::i8, Promote);
  440     setOperationAction(ISD::VAARG, MVT::i16, Promote);
  442     setOperationAction(ISD::VAARG, MVT::i32, Promote);
  444     setOperationAction(ISD::VAARG, MVT::Other, Expand);
  447     setOperationAction(ISD::VAARG, MVT::Other, Custom);
  448     setOperationAction(ISD::VAARG, MVT::i64, Custom);
  450     setOperationAction(ISD::VAARG, MVT::Other, Expand);
  454     setOperationAction(ISD::VACOPY            , MVT::Other, Custom);
  456     setOperationAction(ISD::VACOPY            , MVT::Other, Expand);
  459   setOperationAction(ISD::VAEND             , MVT::Other, Expand);
  460   setOperationAction(ISD::STACKSAVE         , MVT::Other, Expand);
  461   setOperationAction(ISD::STACKRESTORE      , MVT::Other, Custom);
  462   setOperationAction(ISD::DYNAMIC_STACKALLOC, MVT::i32  , Custom);
  463   setOperationAction(ISD::DYNAMIC_STACKALLOC, MVT::i64  , Custom);
  464   setOperationAction(ISD::GET_DYNAMIC_AREA_OFFSET, MVT::i32, Custom);
  465   setOperationAction(ISD::GET_DYNAMIC_AREA_OFFSET, MVT::i64, Custom);
  466   setOperationAction(ISD::EH_DWARF_CFA, MVT::i32, Custom);
  467   setOperationAction(ISD::EH_DWARF_CFA, MVT::i64, Custom);
  470   setOperationAction(ISD::INTRINSIC_WO_CHAIN, MVT::Other, Custom);
  473   setOperationAction(ISD::INTRINSIC_W_CHAIN, MVT::i1, Custom);
  475   setOperationAction(ISD::INTRINSIC_VOID, MVT::i8, Custom);
  476   setOperationAction(ISD::INTRINSIC_VOID, MVT::i16, Custom);
  477   setOperationAction(ISD::INTRINSIC_VOID, MVT::i32, Custom);
  478   setOperationAction(ISD::INTRINSIC_VOID, MVT::Other, Custom);
  502     setOperationAction(ISD::FP_TO_SINT, MVT::i64, Custom);
  503     setOperationAction(ISD::FP_TO_UINT, MVT::i64, Expand);
  504     setOperationAction(ISD::SINT_TO_FP, MVT::i64, Custom);
  505     setOperationAction(ISD::UINT_TO_FP, MVT::i64, Expand);
  508     setOperationAction(ISD::FP_TO_UINT, MVT::i32, Custom);
  511       setOperationAction(ISD::SINT_TO_FP, MVT::i32, Custom);
  515       setOperationAction(ISD::FP_TO_UINT, MVT::i32, Legal);
  517       setOperationAction(ISD::FP_TO_UINT, MVT::i32, Expand);
  523       setOperationAction(ISD::FP_TO_SINT, MVT::i64, Custom);
  524       setOperationAction(ISD::FP_TO_UINT, MVT::i64, Custom);
  525       setOperationAction(ISD::SINT_TO_FP, MVT::i64, Custom);
  526       setOperationAction(ISD::UINT_TO_FP, MVT::i64, Custom);
  529     setOperationAction(ISD::FP_TO_SINT, MVT::i32, Custom);
  530     setOperationAction(ISD::FP_TO_UINT, MVT::i32, Custom);
  531     setOperationAction(ISD::SINT_TO_FP, MVT::i32, Custom);
  532     setOperationAction(ISD::UINT_TO_FP, MVT::i32, Custom);
  539     setOperationAction(ISD::BUILD_PAIR, MVT::i64, Expand);
  541     setOperationAction(ISD::SHL_PARTS, MVT::i64, Custom);
  542     setOperationAction(ISD::SRA_PARTS, MVT::i64, Custom);
  543     setOperationAction(ISD::SRL_PARTS, MVT::i64, Custom);
  546     setOperationAction(ISD::SHL_PARTS, MVT::i32, Custom);
  547     setOperationAction(ISD::SRA_PARTS, MVT::i32, Custom);
  548     setOperationAction(ISD::SRL_PARTS, MVT::i32, Custom);
  552     setOperationAction(ISD::FMAXNUM_IEEE, MVT::f64, Legal);
  553     setOperationAction(ISD::FMAXNUM_IEEE, MVT::f32, Legal);
  554     setOperationAction(ISD::FMINNUM_IEEE, MVT::f64, Legal);
  555     setOperationAction(ISD::FMINNUM_IEEE, MVT::f32, Legal);
  563       setOperationAction(ISD::ADD, VT, Legal);
  564       setOperationAction(ISD::SUB, VT, Legal);
  569         setOperationAction(ISD::SMAX, VT, Legal);
  570         setOperationAction(ISD::SMIN, VT, Legal);
  571         setOperationAction(ISD::UMAX, VT, Legal);
  572         setOperationAction(ISD::UMIN, VT, Legal);
  575         setOperationAction(ISD::SMAX, VT, Expand);
  576         setOperationAction(ISD::SMIN, VT, Expand);
  577         setOperationAction(ISD::UMAX, VT, Expand);
  578         setOperationAction(ISD::UMIN, VT, Expand);
  582         setOperationAction(ISD::FMAXNUM, VT, Legal);
  583         setOperationAction(ISD::FMINNUM, VT, Legal);
  588         setOperationAction(ISD::CTPOP, VT, Legal);
  589         setOperationAction(ISD::CTLZ, VT, Legal);
  592         setOperationAction(ISD::CTPOP, VT, Expand);
  593         setOperationAction(ISD::CTLZ, VT, Expand);
  598         setOperationAction(ISD::CTTZ, VT, Legal);
  600         setOperationAction(ISD::CTTZ, VT, Expand);
  603       setOperationAction(ISD::VECTOR_SHUFFLE, VT, Promote);
  607       setOperationAction(ISD::AND   , VT, Promote);
  609       setOperationAction(ISD::OR    , VT, Promote);
  611       setOperationAction(ISD::XOR   , VT, Promote);
  613       setOperationAction(ISD::LOAD  , VT, Promote);
  615       setOperationAction(ISD::SELECT, VT, Promote);
  617       setOperationAction(ISD::VSELECT, VT, Legal);
  618       setOperationAction(ISD::SELECT_CC, VT, Promote);
  620       setOperationAction(ISD::STORE, VT, Promote);
  624       setOperationAction(ISD::MUL , VT, Expand);
  625       setOperationAction(ISD::SDIV, VT, Expand);
  626       setOperationAction(ISD::SREM, VT, Expand);
  627       setOperationAction(ISD::UDIV, VT, Expand);
  628       setOperationAction(ISD::UREM, VT, Expand);
  629       setOperationAction(ISD::FDIV, VT, Expand);
  630       setOperationAction(ISD::FREM, VT, Expand);
  631       setOperationAction(ISD::FNEG, VT, Expand);
  632       setOperationAction(ISD::FSQRT, VT, Expand);
  633       setOperationAction(ISD::FLOG, VT, Expand);
  634       setOperationAction(ISD::FLOG10, VT, Expand);
  635       setOperationAction(ISD::FLOG2, VT, Expand);
  636       setOperationAction(ISD::FEXP, VT, Expand);
  637       setOperationAction(ISD::FEXP2, VT, Expand);
  638       setOperationAction(ISD::FSIN, VT, Expand);
  639       setOperationAction(ISD::FCOS, VT, Expand);
  640       setOperationAction(ISD::FABS, VT, Expand);
  641       setOperationAction(ISD::FFLOOR, VT, Expand);
  642       setOperationAction(ISD::FCEIL,  VT, Expand);
  643       setOperationAction(ISD::FTRUNC, VT, Expand);
  644       setOperationAction(ISD::FRINT,  VT, Expand);
  645       setOperationAction(ISD::FNEARBYINT, VT, Expand);
  646       setOperationAction(ISD::EXTRACT_VECTOR_ELT, VT, Expand);
  647       setOperationAction(ISD::INSERT_VECTOR_ELT, VT, Expand);
  648       setOperationAction(ISD::BUILD_VECTOR, VT, Expand);
  649       setOperationAction(ISD::MULHU, VT, Expand);
  650       setOperationAction(ISD::MULHS, VT, Expand);
  651       setOperationAction(ISD::UMUL_LOHI, VT, Expand);
  652       setOperationAction(ISD::SMUL_LOHI, VT, Expand);
  653       setOperationAction(ISD::UDIVREM, VT, Expand);
  654       setOperationAction(ISD::SDIVREM, VT, Expand);
  655       setOperationAction(ISD::SCALAR_TO_VECTOR, VT, Expand);
  656       setOperationAction(ISD::FPOW, VT, Expand);
  657       setOperationAction(ISD::BSWAP, VT, Expand);
  658       setOperationAction(ISD::SIGN_EXTEND_INREG, VT, Expand);
  659       setOperationAction(ISD::ROTL, VT, Expand);
  660       setOperationAction(ISD::ROTR, VT, Expand);
  670       setOperationAction(ISD::SMAX, MVT::v2i64, Expand);
  671       setOperationAction(ISD::SMIN, MVT::v2i64, Expand);
  672       setOperationAction(ISD::UMAX, MVT::v2i64, Expand);
  673       setOperationAction(ISD::UMIN, MVT::v2i64, Expand);
  677       setOperationAction(ISD::ABS, VT, Custom);
  681     setOperationAction(ISD::VECTOR_SHUFFLE, MVT::v16i8, Custom);
  685     setOperationAction(ISD::TRUNCATE, MVT::v8i8, Custom);
  686     setOperationAction(ISD::TRUNCATE, MVT::v4i8, Custom);
  687     setOperationAction(ISD::TRUNCATE, MVT::v2i8, Custom);
  688     setOperationAction(ISD::TRUNCATE, MVT::v4i16, Custom);
  689     setOperationAction(ISD::TRUNCATE, MVT::v2i16, Custom);
  691     setOperationAction(ISD::AND   , MVT::v4i32, Legal);
  692     setOperationAction(ISD::OR    , MVT::v4i32, Legal);
  693     setOperationAction(ISD::XOR   , MVT::v4i32, Legal);
  694     setOperationAction(ISD::LOAD  , MVT::v4i32, Legal);
  695     setOperationAction(ISD::SELECT, MVT::v4i32,
  697     setOperationAction(ISD::STORE , MVT::v4i32, Legal);
  698     setOperationAction(ISD::FP_TO_SINT, MVT::v4i32, Legal);
  699     setOperationAction(ISD::FP_TO_UINT, MVT::v4i32, Legal);
  700     setOperationAction(ISD::SINT_TO_FP, MVT::v4i32, Legal);
  701     setOperationAction(ISD::UINT_TO_FP, MVT::v4i32, Legal);
  702     setOperationAction(ISD::FFLOOR, MVT::v4f32, Legal);
  703     setOperationAction(ISD::FCEIL, MVT::v4f32, Legal);
  704     setOperationAction(ISD::FTRUNC, MVT::v4f32, Legal);
  705     setOperationAction(ISD::FNEARBYINT, MVT::v4f32, Legal);
  710       setOperationAction(ISD::ABS, MVT::v2i64, Expand);
  717     setOperationAction(ISD::MUL, MVT::v4f32, Legal);
  718     setOperationAction(ISD::FMA, MVT::v4f32, Legal);
  721       setOperationAction(ISD::FDIV, MVT::v4f32, Legal);
  722       setOperationAction(ISD::FSQRT, MVT::v4f32, Legal);
  726       setOperationAction(ISD::MUL, MVT::v4i32, Legal);
  728       setOperationAction(ISD::MUL, MVT::v4i32, Custom);
  730     setOperationAction(ISD::MUL, MVT::v8i16, Custom);
  731     setOperationAction(ISD::MUL, MVT::v16i8, Custom);
  733     setOperationAction(ISD::SCALAR_TO_VECTOR, MVT::v4f32, Custom);
  734     setOperationAction(ISD::SCALAR_TO_VECTOR, MVT::v4i32, Custom);
  736     setOperationAction(ISD::BUILD_VECTOR, MVT::v16i8, Custom);
  737     setOperationAction(ISD::BUILD_VECTOR, MVT::v8i16, Custom);
  738     setOperationAction(ISD::BUILD_VECTOR, MVT::v4i32, Custom);
  739     setOperationAction(ISD::BUILD_VECTOR, MVT::v4f32, Custom);
  748       setOperationAction(ISD::SCALAR_TO_VECTOR, MVT::v2f64, Legal);
  749       setOperationAction(ISD::EXTRACT_VECTOR_ELT, MVT::v2f64, Legal);
  751         setOperationAction(ISD::SCALAR_TO_VECTOR, MVT::v4f32, Legal);
  752         setOperationAction(ISD::EXTRACT_VECTOR_ELT, MVT::v4f32, Legal);
  755         setOperationAction(ISD::SCALAR_TO_VECTOR, MVT::v16i8, Legal);
  756         setOperationAction(ISD::SCALAR_TO_VECTOR, MVT::v8i16, Legal);
  757         setOperationAction(ISD::SCALAR_TO_VECTOR, MVT::v4i32, Legal);
  758         setOperationAction(ISD::SCALAR_TO_VECTOR, MVT::v2i64, Legal);
  759         setOperationAction(ISD::EXTRACT_VECTOR_ELT, MVT::v16i8, Legal);
  760         setOperationAction(ISD::EXTRACT_VECTOR_ELT, MVT::v8i16, Legal);
  761         setOperationAction(ISD::EXTRACT_VECTOR_ELT, MVT::v4i32, Legal);
  762         setOperationAction(ISD::EXTRACT_VECTOR_ELT, MVT::v2i64, Legal);
  764       setOperationAction(ISD::EXTRACT_VECTOR_ELT, MVT::v2f64, Legal);
  766       setOperationAction(ISD::FFLOOR, MVT::v2f64, Legal);
  767       setOperationAction(ISD::FCEIL, MVT::v2f64, Legal);
  768       setOperationAction(ISD::FTRUNC, MVT::v2f64, Legal);
  769       setOperationAction(ISD::FNEARBYINT, MVT::v2f64, Legal);
  770       setOperationAction(ISD::FROUND, MVT::v2f64, Legal);
  772       setOperationAction(ISD::FROUND, MVT::v4f32, Legal);
  774       setOperationAction(ISD::MUL, MVT::v2f64, Legal);
  775       setOperationAction(ISD::FMA, MVT::v2f64, Legal);
  777       setOperationAction(ISD::FDIV, MVT::v2f64, Legal);
  778       setOperationAction(ISD::FSQRT, MVT::v2f64, Legal);
  786       setOperationAction(ISD::LOAD, MVT::v2f64, Legal);
  787       setOperationAction(ISD::STORE, MVT::v2f64, Legal);
  789       setOperationAction(ISD::VECTOR_SHUFFLE, MVT::v2f64, Legal);
  801         setOperationAction(ISD::SHL, MVT::v2i64, Legal);
  802         setOperationAction(ISD::SRA, MVT::v2i64, Legal);
  803         setOperationAction(ISD::SRL, MVT::v2i64, Legal);
  809         setOperationAction(ISD::SHL, MVT::v1i128, Expand);
  810         setOperationAction(ISD::SRL, MVT::v1i128, Expand);
  811         setOperationAction(ISD::SRA, MVT::v1i128, Expand);
  813         setOperationAction(ISD::SETCC, MVT::v2i64, Legal);
  816         setOperationAction(ISD::SHL, MVT::v2i64, Expand);
  817         setOperationAction(ISD::SRA, MVT::v2i64, Expand);
  818         setOperationAction(ISD::SRL, MVT::v2i64, Expand);
  820         setOperationAction(ISD::SETCC, MVT::v2i64, Custom);
  823         setOperationAction(ISD::ADD, MVT::v2i64, Expand);
  824         setOperationAction(ISD::SUB, MVT::v2i64, Expand);
  827       setOperationAction(ISD::LOAD, MVT::v2i64, Promote);
  829       setOperationAction(ISD::STORE, MVT::v2i64, Promote);
  832       setOperationAction(ISD::VECTOR_SHUFFLE, MVT::v2i64, Legal);
  834       setOperationAction(ISD::SINT_TO_FP, MVT::v2i64, Legal);
  835       setOperationAction(ISD::UINT_TO_FP, MVT::v2i64, Legal);
  836       setOperationAction(ISD::FP_TO_SINT, MVT::v2i64, Legal);
  837       setOperationAction(ISD::FP_TO_UINT, MVT::v2i64, Legal);
  842       setOperationAction(ISD::UINT_TO_FP, MVT::v2i8, Custom);
  843       setOperationAction(ISD::UINT_TO_FP, MVT::v4i8, Custom);
  844       setOperationAction(ISD::UINT_TO_FP, MVT::v2i16, Custom);
  845       setOperationAction(ISD::UINT_TO_FP, MVT::v4i16, Custom);
  846       setOperationAction(ISD::SINT_TO_FP, MVT::v2i8, Custom);
  847       setOperationAction(ISD::SINT_TO_FP, MVT::v4i8, Custom);
  848       setOperationAction(ISD::SINT_TO_FP, MVT::v2i16, Custom);
  849       setOperationAction(ISD::SINT_TO_FP, MVT::v4i16, Custom);
  851       setOperationAction(ISD::FNEG, MVT::v4f32, Legal);
  852       setOperationAction(ISD::FNEG, MVT::v2f64, Legal);
  853       setOperationAction(ISD::FABS, MVT::v4f32, Legal);
  854       setOperationAction(ISD::FABS, MVT::v2f64, Legal);
  855       setOperationAction(ISD::FCOPYSIGN, MVT::v4f32, Legal);
  856       setOperationAction(ISD::FCOPYSIGN, MVT::v2f64, Legal);
  859         setOperationAction(ISD::BUILD_VECTOR, MVT::v2i64, Custom);
  860       setOperationAction(ISD::BUILD_VECTOR, MVT::v2f64, Custom);
  871       setOperationAction(ISD::INSERT_VECTOR_ELT, MVT::v4i32, Custom);
  872       setOperationAction(ISD::INSERT_VECTOR_ELT, MVT::v4f32, Custom);
  877       setOperationAction(ISD::SHL, MVT::v1i128, Legal);
  878       setOperationAction(ISD::SRL, MVT::v1i128, Legal);
  879       setOperationAction(ISD::SRA, MVT::v1i128, Expand);
  883         setOperationAction(ISD::FADD, MVT::f128, Legal);
  884         setOperationAction(ISD::FSUB, MVT::f128, Legal);
  885         setOperationAction(ISD::FDIV, MVT::f128, Legal);
  886         setOperationAction(ISD::FMUL, MVT::f128, Legal);
  887         setOperationAction(ISD::FP_EXTEND, MVT::f128, Legal);
  891         setOperationAction(ISD::FMA, MVT::f128, Legal);
  899         setOperationAction(ISD::FTRUNC, MVT::f128, Legal);
  900         setOperationAction(ISD::FRINT, MVT::f128, Legal);
  901         setOperationAction(ISD::FFLOOR, MVT::f128, Legal);
  902         setOperationAction(ISD::FCEIL, MVT::f128, Legal);
  903         setOperationAction(ISD::FNEARBYINT, MVT::f128, Legal);
  904         setOperationAction(ISD::FROUND, MVT::f128, Legal);
  906         setOperationAction(ISD::SELECT, MVT::f128, Expand);
  907         setOperationAction(ISD::FP_ROUND, MVT::f64, Legal);
  908         setOperationAction(ISD::FP_ROUND, MVT::f32, Legal);
  911         setOperationAction(ISD::BITCAST, MVT::i128, Custom);
  913         setOperationAction(ISD::FSIN , MVT::f128, Expand);
  914         setOperationAction(ISD::FCOS , MVT::f128, Expand);
  915         setOperationAction(ISD::FPOW, MVT::f128, Expand);
  916         setOperationAction(ISD::FPOWI, MVT::f128, Expand);
  917         setOperationAction(ISD::FREM, MVT::f128, Expand);
  919       setOperationAction(ISD::FP_EXTEND, MVT::v2f32, Custom);
  924       setOperationAction(ISD::INSERT_VECTOR_ELT, MVT::v8i16, Custom);
  925       setOperationAction(ISD::INSERT_VECTOR_ELT, MVT::v16i8, Custom);
  930     setOperationAction(ISD::FADD, MVT::v4f64, Legal);
  931     setOperationAction(ISD::FSUB, MVT::v4f64, Legal);
  932     setOperationAction(ISD::FMUL, MVT::v4f64, Legal);
  933     setOperationAction(ISD::FREM, MVT::v4f64, Expand);
  935     setOperationAction(ISD::FCOPYSIGN, MVT::v4f64, Legal);
  936     setOperationAction(ISD::FGETSIGN, MVT::v4f64, Expand);
  938     setOperationAction(ISD::LOAD  , MVT::v4f64, Custom);
  939     setOperationAction(ISD::STORE , MVT::v4f64, Custom);
  945       setOperationAction(ISD::SELECT, MVT::v4f64, Expand);
  946     setOperationAction(ISD::VSELECT, MVT::v4f64, Legal);
  948     setOperationAction(ISD::EXTRACT_VECTOR_ELT , MVT::v4f64, Legal);
  949     setOperationAction(ISD::INSERT_VECTOR_ELT , MVT::v4f64, Expand);
  950     setOperationAction(ISD::CONCAT_VECTORS , MVT::v4f64, Expand);
  951     setOperationAction(ISD::EXTRACT_SUBVECTOR , MVT::v4f64, Expand);
  952     setOperationAction(ISD::VECTOR_SHUFFLE , MVT::v4f64, Custom);
  953     setOperationAction(ISD::SCALAR_TO_VECTOR, MVT::v4f64, Legal);
  954     setOperationAction(ISD::BUILD_VECTOR, MVT::v4f64, Custom);
  956     setOperationAction(ISD::FP_TO_SINT , MVT::v4f64, Legal);
  957     setOperationAction(ISD::FP_TO_UINT , MVT::v4f64, Expand);
  959     setOperationAction(ISD::FP_ROUND , MVT::v4f32, Legal);
  960     setOperationAction(ISD::FP_EXTEND, MVT::v4f64, Legal);
  962     setOperationAction(ISD::FNEG , MVT::v4f64, Legal);
  963     setOperationAction(ISD::FABS , MVT::v4f64, Legal);
  964     setOperationAction(ISD::FSIN , MVT::v4f64, Expand);
  965     setOperationAction(ISD::FCOS , MVT::v4f64, Expand);
  966     setOperationAction(ISD::FPOW , MVT::v4f64, Expand);
  967     setOperationAction(ISD::FLOG , MVT::v4f64, Expand);
  968     setOperationAction(ISD::FLOG2 , MVT::v4f64, Expand);
  969     setOperationAction(ISD::FLOG10 , MVT::v4f64, Expand);
  970     setOperationAction(ISD::FEXP , MVT::v4f64, Expand);
  971     setOperationAction(ISD::FEXP2 , MVT::v4f64, Expand);
  973     setOperationAction(ISD::FMINNUM, MVT::v4f64, Legal);
  974     setOperationAction(ISD::FMAXNUM, MVT::v4f64, Legal);
  981     setOperationAction(ISD::FADD, MVT::v4f32, Legal);
  982     setOperationAction(ISD::FSUB, MVT::v4f32, Legal);
  983     setOperationAction(ISD::FMUL, MVT::v4f32, Legal);
  984     setOperationAction(ISD::FREM, MVT::v4f32, Expand);
  986     setOperationAction(ISD::FCOPYSIGN, MVT::v4f32, Legal);
  987     setOperationAction(ISD::FGETSIGN, MVT::v4f32, Expand);
  989     setOperationAction(ISD::LOAD  , MVT::v4f32, Custom);
  990     setOperationAction(ISD::STORE , MVT::v4f32, Custom);
  993       setOperationAction(ISD::SELECT, MVT::v4f32, Expand);
  994     setOperationAction(ISD::VSELECT, MVT::v4f32, Legal);
  996     setOperationAction(ISD::EXTRACT_VECTOR_ELT , MVT::v4f32, Legal);
  997     setOperationAction(ISD::INSERT_VECTOR_ELT , MVT::v4f32, Expand);
  998     setOperationAction(ISD::CONCAT_VECTORS , MVT::v4f32, Expand);
  999     setOperationAction(ISD::EXTRACT_SUBVECTOR , MVT::v4f32, Expand);
 1000     setOperationAction(ISD::VECTOR_SHUFFLE , MVT::v4f32, Custom);
 1001     setOperationAction(ISD::SCALAR_TO_VECTOR, MVT::v4f32, Legal);
 1002     setOperationAction(ISD::BUILD_VECTOR, MVT::v4f32, Custom);
 1004     setOperationAction(ISD::FP_TO_SINT , MVT::v4f32, Legal);
 1005     setOperationAction(ISD::FP_TO_UINT , MVT::v4f32, Expand);
 1007     setOperationAction(ISD::FNEG , MVT::v4f32, Legal);
 1008     setOperationAction(ISD::FABS , MVT::v4f32, Legal);
 1009     setOperationAction(ISD::FSIN , MVT::v4f32, Expand);
 1010     setOperationAction(ISD::FCOS , MVT::v4f32, Expand);
 1011     setOperationAction(ISD::FPOW , MVT::v4f32, Expand);
 1012     setOperationAction(ISD::FLOG , MVT::v4f32, Expand);
 1013     setOperationAction(ISD::FLOG2 , MVT::v4f32, Expand);
 1014     setOperationAction(ISD::FLOG10 , MVT::v4f32, Expand);
 1015     setOperationAction(ISD::FEXP , MVT::v4f32, Expand);
 1016     setOperationAction(ISD::FEXP2 , MVT::v4f32, Expand);
 1018     setOperationAction(ISD::FMINNUM, MVT::v4f32, Legal);
 1019     setOperationAction(ISD::FMAXNUM, MVT::v4f32, Legal);
 1026     setOperationAction(ISD::AND , MVT::v4i1, Legal);
 1027     setOperationAction(ISD::OR , MVT::v4i1, Legal);
 1028     setOperationAction(ISD::XOR , MVT::v4i1, Legal);
 1031       setOperationAction(ISD::SELECT, MVT::v4i1, Expand);
 1032     setOperationAction(ISD::VSELECT, MVT::v4i1, Legal);
 1034     setOperationAction(ISD::LOAD  , MVT::v4i1, Custom);
 1035     setOperationAction(ISD::STORE , MVT::v4i1, Custom);
 1037     setOperationAction(ISD::EXTRACT_VECTOR_ELT , MVT::v4i1, Custom);
 1038     setOperationAction(ISD::INSERT_VECTOR_ELT , MVT::v4i1, Expand);
 1039     setOperationAction(ISD::CONCAT_VECTORS , MVT::v4i1, Expand);
 1040     setOperationAction(ISD::EXTRACT_SUBVECTOR , MVT::v4i1, Expand);
 1041     setOperationAction(ISD::VECTOR_SHUFFLE , MVT::v4i1, Custom);
 1042     setOperationAction(ISD::SCALAR_TO_VECTOR, MVT::v4i1, Expand);
 1043     setOperationAction(ISD::BUILD_VECTOR, MVT::v4i1, Custom);
 1045     setOperationAction(ISD::SINT_TO_FP, MVT::v4i1, Custom);
 1046     setOperationAction(ISD::UINT_TO_FP, MVT::v4i1, Custom);
 1050     setOperationAction(ISD::FFLOOR, MVT::v4f64, Legal);
 1051     setOperationAction(ISD::FCEIL,  MVT::v4f64, Legal);
 1052     setOperationAction(ISD::FTRUNC, MVT::v4f64, Legal);
 1053     setOperationAction(ISD::FROUND, MVT::v4f64, Legal);
 1055     setOperationAction(ISD::FFLOOR, MVT::v4f32, Legal);
 1056     setOperationAction(ISD::FCEIL,  MVT::v4f32, Legal);
 1057     setOperationAction(ISD::FTRUNC, MVT::v4f32, Legal);
 1058     setOperationAction(ISD::FROUND, MVT::v4f32, Legal);
 1060     setOperationAction(ISD::FNEARBYINT, MVT::v4f64, Expand);
 1061     setOperationAction(ISD::FNEARBYINT, MVT::v4f32, Expand);
 1064     setOperationAction(ISD::FRINT, MVT::v4f64, Expand);
 1065     setOperationAction(ISD::FRINT, MVT::v4f32, Expand);
 1068       setOperationAction(ISD::FDIV, MVT::v4f64, Legal);
 1069       setOperationAction(ISD::FSQRT, MVT::v4f64, Legal);
 1071       setOperationAction(ISD::FDIV, MVT::v4f32, Legal);
 1072       setOperationAction(ISD::FSQRT, MVT::v4f32, Legal);
 1074       setOperationAction(ISD::FDIV, MVT::v4f64, Expand);
 1075       setOperationAction(ISD::FSQRT, MVT::v4f64, Expand);
 1077       setOperationAction(ISD::FDIV, MVT::v4f32, Expand);
 1078       setOperationAction(ISD::FSQRT, MVT::v4f32, Expand);
 1083     setOperationAction(ISD::PREFETCH, MVT::Other, Legal);
 1085   setOperationAction(ISD::READCYCLECOUNTER, MVT::i64, isPPC64 ? Legal : Custom);
 1088     setOperationAction(ISD::ATOMIC_LOAD,  MVT::i64, Expand);
 1089     setOperationAction(ISD::ATOMIC_STORE, MVT::i64, Expand);
lib/Target/RISCV/RISCVISelLowering.cpp
   84   setOperationAction(ISD::DYNAMIC_STACKALLOC, XLenVT, Expand);
   86   setOperationAction(ISD::BR_JT, MVT::Other, Expand);
   87   setOperationAction(ISD::BR_CC, XLenVT, Expand);
   88   setOperationAction(ISD::SELECT, XLenVT, Custom);
   89   setOperationAction(ISD::SELECT_CC, XLenVT, Expand);
   91   setOperationAction(ISD::STACKSAVE, MVT::Other, Expand);
   92   setOperationAction(ISD::STACKRESTORE, MVT::Other, Expand);
   94   setOperationAction(ISD::VASTART, MVT::Other, Custom);
   95   setOperationAction(ISD::VAARG, MVT::Other, Expand);
   96   setOperationAction(ISD::VACOPY, MVT::Other, Expand);
   97   setOperationAction(ISD::VAEND, MVT::Other, Expand);
  100     setOperationAction(ISD::SIGN_EXTEND_INREG, VT, Expand);
  103     setOperationAction(ISD::ADD, MVT::i32, Custom);
  104     setOperationAction(ISD::SUB, MVT::i32, Custom);
  105     setOperationAction(ISD::SHL, MVT::i32, Custom);
  106     setOperationAction(ISD::SRA, MVT::i32, Custom);
  107     setOperationAction(ISD::SRL, MVT::i32, Custom);
  111     setOperationAction(ISD::MUL, XLenVT, Expand);
  112     setOperationAction(ISD::MULHS, XLenVT, Expand);
  113     setOperationAction(ISD::MULHU, XLenVT, Expand);
  114     setOperationAction(ISD::SDIV, XLenVT, Expand);
  115     setOperationAction(ISD::UDIV, XLenVT, Expand);
  116     setOperationAction(ISD::SREM, XLenVT, Expand);
  117     setOperationAction(ISD::UREM, XLenVT, Expand);
  121     setOperationAction(ISD::MUL, MVT::i32, Custom);
  122     setOperationAction(ISD::SDIV, MVT::i32, Custom);
  123     setOperationAction(ISD::UDIV, MVT::i32, Custom);
  124     setOperationAction(ISD::UREM, MVT::i32, Custom);
  127   setOperationAction(ISD::SDIVREM, XLenVT, Expand);
  128   setOperationAction(ISD::UDIVREM, XLenVT, Expand);
  129   setOperationAction(ISD::SMUL_LOHI, XLenVT, Expand);
  130   setOperationAction(ISD::UMUL_LOHI, XLenVT, Expand);
  132   setOperationAction(ISD::SHL_PARTS, XLenVT, Custom);
  133   setOperationAction(ISD::SRL_PARTS, XLenVT, Custom);
  134   setOperationAction(ISD::SRA_PARTS, XLenVT, Custom);
  136   setOperationAction(ISD::ROTL, XLenVT, Expand);
  137   setOperationAction(ISD::ROTR, XLenVT, Expand);
  138   setOperationAction(ISD::BSWAP, XLenVT, Expand);
  139   setOperationAction(ISD::CTTZ, XLenVT, Expand);
  140   setOperationAction(ISD::CTLZ, XLenVT, Expand);
  141   setOperationAction(ISD::CTPOP, XLenVT, Expand);
  153     setOperationAction(ISD::FMINNUM, MVT::f32, Legal);
  154     setOperationAction(ISD::FMAXNUM, MVT::f32, Legal);
  157     setOperationAction(ISD::SELECT_CC, MVT::f32, Expand);
  158     setOperationAction(ISD::SELECT, MVT::f32, Custom);
  159     setOperationAction(ISD::BR_CC, MVT::f32, Expand);
  161       setOperationAction(Op, MVT::f32, Expand);
  167     setOperationAction(ISD::BITCAST, MVT::i32, Custom);
  170     setOperationAction(ISD::FMINNUM, MVT::f64, Legal);
  171     setOperationAction(ISD::FMAXNUM, MVT::f64, Legal);
  174     setOperationAction(ISD::SELECT_CC, MVT::f64, Expand);
  175     setOperationAction(ISD::SELECT, MVT::f64, Custom);
  176     setOperationAction(ISD::BR_CC, MVT::f64, Expand);
  180       setOperationAction(Op, MVT::f64, Expand);
  185   setOperationAction(ISD::GlobalAddress, XLenVT, Custom);
  186   setOperationAction(ISD::BlockAddress, XLenVT, Custom);
  187   setOperationAction(ISD::ConstantPool, XLenVT, Custom);
  189   setOperationAction(ISD::GlobalTLSAddress, XLenVT, Custom);
  193   setOperationAction(ISD::READCYCLECOUNTER, MVT::i64,
  196   setOperationAction(ISD::TRAP, MVT::Other, Legal);
  197   setOperationAction(ISD::DEBUGTRAP, MVT::Other, Legal);
lib/Target/Sparc/SparcISelLowering.cpp
 1438       setOperationAction(Op, MVT::v2i32, Expand);
 1454     setOperationAction(ISD::LOAD, MVT::v2i32, Legal);
 1455     setOperationAction(ISD::STORE, MVT::v2i32, Legal);
 1456     setOperationAction(ISD::EXTRACT_VECTOR_ELT, MVT::v2i32, Legal);
 1457     setOperationAction(ISD::BUILD_VECTOR, MVT::v2i32, Legal);
 1460     setOperationAction(ISD::LOAD, MVT::i64, Custom);
 1461     setOperationAction(ISD::STORE, MVT::i64, Custom);
 1484   setOperationAction(ISD::GlobalAddress, PtrVT, Custom);
 1485   setOperationAction(ISD::GlobalTLSAddress, PtrVT, Custom);
 1486   setOperationAction(ISD::ConstantPool, PtrVT, Custom);
 1487   setOperationAction(ISD::BlockAddress, PtrVT, Custom);
 1490   setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i16, Expand);
 1491   setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i8 , Expand);
 1492   setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i1 , Expand);
 1495   setOperationAction(ISD::UREM, MVT::i32, Expand);
 1496   setOperationAction(ISD::SREM, MVT::i32, Expand);
 1497   setOperationAction(ISD::SDIVREM, MVT::i32, Expand);
 1498   setOperationAction(ISD::UDIVREM, MVT::i32, Expand);
 1502     setOperationAction(ISD::UREM, MVT::i64, Expand);
 1503     setOperationAction(ISD::SREM, MVT::i64, Expand);
 1504     setOperationAction(ISD::SDIVREM, MVT::i64, Expand);
 1505     setOperationAction(ISD::UDIVREM, MVT::i64, Expand);
 1509   setOperationAction(ISD::FP_TO_SINT, MVT::i32, Custom);
 1510   setOperationAction(ISD::SINT_TO_FP, MVT::i32, Custom);
 1511   setOperationAction(ISD::FP_TO_SINT, MVT::i64, Custom);
 1512   setOperationAction(ISD::SINT_TO_FP, MVT::i64, Custom);
 1515   setOperationAction(ISD::FP_TO_UINT, MVT::i32, Custom);
 1516   setOperationAction(ISD::UINT_TO_FP, MVT::i32, Custom);
 1517   setOperationAction(ISD::FP_TO_UINT, MVT::i64, Custom);
 1518   setOperationAction(ISD::UINT_TO_FP, MVT::i64, Custom);
 1520   setOperationAction(ISD::BITCAST, MVT::f32, Expand);
 1521   setOperationAction(ISD::BITCAST, MVT::i32, Expand);
 1524   setOperationAction(ISD::SELECT, MVT::i32, Expand);
 1525   setOperationAction(ISD::SELECT, MVT::f32, Expand);
 1526   setOperationAction(ISD::SELECT, MVT::f64, Expand);
 1527   setOperationAction(ISD::SELECT, MVT::f128, Expand);
 1529   setOperationAction(ISD::SETCC, MVT::i32, Expand);
 1530   setOperationAction(ISD::SETCC, MVT::f32, Expand);
 1531   setOperationAction(ISD::SETCC, MVT::f64, Expand);
 1532   setOperationAction(ISD::SETCC, MVT::f128, Expand);
 1535   setOperationAction(ISD::BRCOND, MVT::Other, Expand);
 1536   setOperationAction(ISD::BRIND, MVT::Other, Expand);
 1537   setOperationAction(ISD::BR_JT, MVT::Other, Expand);
 1538   setOperationAction(ISD::BR_CC, MVT::i32, Custom);
 1539   setOperationAction(ISD::BR_CC, MVT::f32, Custom);
 1540   setOperationAction(ISD::BR_CC, MVT::f64, Custom);
 1541   setOperationAction(ISD::BR_CC, MVT::f128, Custom);
 1543   setOperationAction(ISD::SELECT_CC, MVT::i32, Custom);
 1544   setOperationAction(ISD::SELECT_CC, MVT::f32, Custom);
 1545   setOperationAction(ISD::SELECT_CC, MVT::f64, Custom);
 1546   setOperationAction(ISD::SELECT_CC, MVT::f128, Custom);
 1548   setOperationAction(ISD::ADDC, MVT::i32, Custom);
 1549   setOperationAction(ISD::ADDE, MVT::i32, Custom);
 1550   setOperationAction(ISD::SUBC, MVT::i32, Custom);
 1551   setOperationAction(ISD::SUBE, MVT::i32, Custom);
 1554     setOperationAction(ISD::ADDC, MVT::i64, Custom);
 1555     setOperationAction(ISD::ADDE, MVT::i64, Custom);
 1556     setOperationAction(ISD::SUBC, MVT::i64, Custom);
 1557     setOperationAction(ISD::SUBE, MVT::i64, Custom);
 1558     setOperationAction(ISD::BITCAST, MVT::f64, Expand);
 1559     setOperationAction(ISD::BITCAST, MVT::i64, Expand);
 1560     setOperationAction(ISD::SELECT, MVT::i64, Expand);
 1561     setOperationAction(ISD::SETCC, MVT::i64, Expand);
 1562     setOperationAction(ISD::BR_CC, MVT::i64, Custom);
 1563     setOperationAction(ISD::SELECT_CC, MVT::i64, Custom);
 1565     setOperationAction(ISD::CTPOP, MVT::i64,
 1567     setOperationAction(ISD::CTTZ , MVT::i64, Expand);
 1568     setOperationAction(ISD::CTLZ , MVT::i64, Expand);
 1569     setOperationAction(ISD::BSWAP, MVT::i64, Expand);
 1570     setOperationAction(ISD::ROTL , MVT::i64, Expand);
 1571     setOperationAction(ISD::ROTR , MVT::i64, Expand);
 1572     setOperationAction(ISD::DYNAMIC_STACKALLOC, MVT::i64, Custom);
 1588   setOperationAction(ISD::ATOMIC_SWAP, MVT::i32, Legal);
 1590   setOperationAction(ISD::ATOMIC_FENCE, MVT::Other, Legal);
 1593   setOperationAction(ISD::ATOMIC_LOAD, MVT::i32, Custom);
 1594   setOperationAction(ISD::ATOMIC_STORE, MVT::i32, Custom);
 1597     setOperationAction(ISD::ATOMIC_CMP_SWAP, MVT::i64, Legal);
 1598     setOperationAction(ISD::ATOMIC_SWAP, MVT::i64, Legal);
 1599     setOperationAction(ISD::ATOMIC_LOAD, MVT::i64, Custom);
 1600     setOperationAction(ISD::ATOMIC_STORE, MVT::i64, Custom);
 1612     setOperationAction(ISD::FNEG, MVT::f64, Custom);
 1613     setOperationAction(ISD::FABS, MVT::f64, Custom);
 1616   setOperationAction(ISD::FSIN , MVT::f128, Expand);
 1617   setOperationAction(ISD::FCOS , MVT::f128, Expand);
 1618   setOperationAction(ISD::FSINCOS, MVT::f128, Expand);
 1619   setOperationAction(ISD::FREM , MVT::f128, Expand);
 1620   setOperationAction(ISD::FMA  , MVT::f128, Expand);
 1621   setOperationAction(ISD::FSIN , MVT::f64, Expand);
 1622   setOperationAction(ISD::FCOS , MVT::f64, Expand);
 1623   setOperationAction(ISD::FSINCOS, MVT::f64, Expand);
 1624   setOperationAction(ISD::FREM , MVT::f64, Expand);
 1625   setOperationAction(ISD::FMA  , MVT::f64, Expand);
 1626   setOperationAction(ISD::FSIN , MVT::f32, Expand);
 1627   setOperationAction(ISD::FCOS , MVT::f32, Expand);
 1628   setOperationAction(ISD::FSINCOS, MVT::f32, Expand);
 1629   setOperationAction(ISD::FREM , MVT::f32, Expand);
 1630   setOperationAction(ISD::FMA  , MVT::f32, Expand);
 1631   setOperationAction(ISD::CTTZ , MVT::i32, Expand);
 1632   setOperationAction(ISD::CTLZ , MVT::i32, Expand);
 1633   setOperationAction(ISD::ROTL , MVT::i32, Expand);
 1634   setOperationAction(ISD::ROTR , MVT::i32, Expand);
 1635   setOperationAction(ISD::BSWAP, MVT::i32, Expand);
 1636   setOperationAction(ISD::FCOPYSIGN, MVT::f128, Expand);
 1637   setOperationAction(ISD::FCOPYSIGN, MVT::f64, Expand);
 1638   setOperationAction(ISD::FCOPYSIGN, MVT::f32, Expand);
 1639   setOperationAction(ISD::FPOW , MVT::f128, Expand);
 1640   setOperationAction(ISD::FPOW , MVT::f64, Expand);
 1641   setOperationAction(ISD::FPOW , MVT::f32, Expand);
 1643   setOperationAction(ISD::SHL_PARTS, MVT::i32, Expand);
 1644   setOperationAction(ISD::SRA_PARTS, MVT::i32, Expand);
 1645   setOperationAction(ISD::SRL_PARTS, MVT::i32, Expand);
 1648   setOperationAction(ISD::MULHU,     MVT::i32, Expand);
 1649   setOperationAction(ISD::MULHS,     MVT::i32, Expand);
 1650   setOperationAction(ISD::MUL,       MVT::i32, Expand);
 1654     setOperationAction(ISD::SMUL_LOHI, MVT::i32, Expand);
 1655     setOperationAction(ISD::UMUL_LOHI, MVT::i32, Expand);
 1658     setOperationAction(ISD::SDIV, MVT::i32, Expand);
 1661     setOperationAction(ISD::UDIV, MVT::i32, Expand);
 1669     setOperationAction(ISD::UMUL_LOHI, MVT::i64, Expand);
 1670     setOperationAction(ISD::SMUL_LOHI, MVT::i64, Expand);
 1671     setOperationAction(ISD::MULHU,     MVT::i64, Expand);
 1672     setOperationAction(ISD::MULHS,     MVT::i64, Expand);
 1674     setOperationAction(ISD::UMULO,     MVT::i64, Custom);
 1675     setOperationAction(ISD::SMULO,     MVT::i64, Custom);
 1677     setOperationAction(ISD::SHL_PARTS, MVT::i64, Expand);
 1678     setOperationAction(ISD::SRA_PARTS, MVT::i64, Expand);
 1679     setOperationAction(ISD::SRL_PARTS, MVT::i64, Expand);
 1683   setOperationAction(ISD::VASTART           , MVT::Other, Custom);
 1685   setOperationAction(ISD::VAARG             , MVT::Other, Custom);
 1687   setOperationAction(ISD::TRAP              , MVT::Other, Legal);
 1688   setOperationAction(ISD::DEBUGTRAP         , MVT::Other, Legal);
 1691   setOperationAction(ISD::VACOPY            , MVT::Other, Expand);
 1692   setOperationAction(ISD::VAEND             , MVT::Other, Expand);
 1693   setOperationAction(ISD::STACKSAVE         , MVT::Other, Expand);
 1694   setOperationAction(ISD::STACKRESTORE      , MVT::Other, Expand);
 1695   setOperationAction(ISD::DYNAMIC_STACKALLOC, MVT::i32  , Custom);
 1699   setOperationAction(ISD::CTPOP, MVT::i32,
 1703     setOperationAction(ISD::LOAD, MVT::f128, Legal);
 1704     setOperationAction(ISD::STORE, MVT::f128, Legal);
 1706     setOperationAction(ISD::LOAD, MVT::f128, Custom);
 1707     setOperationAction(ISD::STORE, MVT::f128, Custom);
 1711     setOperationAction(ISD::FADD,  MVT::f128, Legal);
 1712     setOperationAction(ISD::FSUB,  MVT::f128, Legal);
 1713     setOperationAction(ISD::FMUL,  MVT::f128, Legal);
 1714     setOperationAction(ISD::FDIV,  MVT::f128, Legal);
 1715     setOperationAction(ISD::FSQRT, MVT::f128, Legal);
 1716     setOperationAction(ISD::FP_EXTEND, MVT::f128, Legal);
 1717     setOperationAction(ISD::FP_ROUND,  MVT::f64, Legal);
 1719       setOperationAction(ISD::FNEG, MVT::f128, Legal);
 1720       setOperationAction(ISD::FABS, MVT::f128, Legal);
 1722       setOperationAction(ISD::FNEG, MVT::f128, Custom);
 1723       setOperationAction(ISD::FABS, MVT::f128, Custom);
 1736     setOperationAction(ISD::FADD,  MVT::f128, Custom);
 1737     setOperationAction(ISD::FSUB,  MVT::f128, Custom);
 1738     setOperationAction(ISD::FMUL,  MVT::f128, Custom);
 1739     setOperationAction(ISD::FDIV,  MVT::f128, Custom);
 1740     setOperationAction(ISD::FSQRT, MVT::f128, Custom);
 1741     setOperationAction(ISD::FNEG,  MVT::f128, Custom);
 1742     setOperationAction(ISD::FABS,  MVT::f128, Custom);
 1744     setOperationAction(ISD::FP_EXTEND, MVT::f128, Custom);
 1745     setOperationAction(ISD::FP_ROUND,  MVT::f64, Custom);
 1746     setOperationAction(ISD::FP_ROUND,  MVT::f32, Custom);
 1791     setOperationAction(ISD::FDIV, MVT::f32, Promote);
 1792     setOperationAction(ISD::FSQRT, MVT::f32, Promote);
 1796     setOperationAction(ISD::FMUL, MVT::f32, Promote);
 1804     setOperationAction(ISD::READCYCLECOUNTER, MVT::i64, Custom);
 1806   setOperationAction(ISD::INTRINSIC_WO_CHAIN, MVT::Other, Custom);
lib/Target/SystemZ/SystemZISelLowering.cpp
  134       setOperationAction(ISD::SETCC, VT, Custom);
  137       setOperationAction(ISD::SELECT, VT, Expand);
  140       setOperationAction(ISD::SELECT_CC, VT, Custom);
  141       setOperationAction(ISD::BR_CC,     VT, Custom);
  147   setOperationAction(ISD::BR_JT, MVT::Other, Expand);
  150   setOperationAction(ISD::BRCOND, MVT::Other, Expand);
  159       setOperationAction(ISD::SDIV, VT, Expand);
  160       setOperationAction(ISD::UDIV, VT, Expand);
  161       setOperationAction(ISD::SREM, VT, Expand);
  162       setOperationAction(ISD::UREM, VT, Expand);
  163       setOperationAction(ISD::SDIVREM, VT, Custom);
  164       setOperationAction(ISD::UDIVREM, VT, Custom);
  167       setOperationAction(ISD::SADDO, VT, Custom);
  168       setOperationAction(ISD::SSUBO, VT, Custom);
  171       setOperationAction(ISD::UADDO, VT, Custom);
  172       setOperationAction(ISD::USUBO, VT, Custom);
  175       setOperationAction(ISD::ADDCARRY, VT, Custom);
  176       setOperationAction(ISD::SUBCARRY, VT, Custom);
  180       setOperationAction(ISD::ATOMIC_LOAD,  VT, Custom);
  181       setOperationAction(ISD::ATOMIC_STORE, VT, Custom);
  185       setOperationAction(ISD::ATOMIC_LOAD_SUB, VT, Custom);
  189         setOperationAction(ISD::CTPOP, VT, Custom);
  191         setOperationAction(ISD::CTPOP, VT, Expand);
  194       setOperationAction(ISD::CTTZ,            VT, Expand);
  195       setOperationAction(ISD::ROTR,            VT, Expand);
  198       setOperationAction(ISD::MULHS, VT, Expand);
  199       setOperationAction(ISD::MULHU, VT, Expand);
  200       setOperationAction(ISD::SMUL_LOHI, VT, Custom);
  201       setOperationAction(ISD::UMUL_LOHI, VT, Custom);
  208         setOperationAction(ISD::FP_TO_UINT, VT, Expand);
  212       setOperationAction(ISD::STRICT_FP_TO_SINT, VT, Legal);
  214         setOperationAction(ISD::STRICT_FP_TO_UINT, VT, Legal);
  221   setOperationAction(ISD::ATOMIC_SWAP,      MVT::i32, Custom);
  222   setOperationAction(ISD::ATOMIC_LOAD_ADD,  MVT::i32, Custom);
  223   setOperationAction(ISD::ATOMIC_LOAD_SUB,  MVT::i32, Custom);
  224   setOperationAction(ISD::ATOMIC_LOAD_AND,  MVT::i32, Custom);
  225   setOperationAction(ISD::ATOMIC_LOAD_OR,   MVT::i32, Custom);
  226   setOperationAction(ISD::ATOMIC_LOAD_XOR,  MVT::i32, Custom);
  227   setOperationAction(ISD::ATOMIC_LOAD_NAND, MVT::i32, Custom);
  228   setOperationAction(ISD::ATOMIC_LOAD_MIN,  MVT::i32, Custom);
  229   setOperationAction(ISD::ATOMIC_LOAD_MAX,  MVT::i32, Custom);
  230   setOperationAction(ISD::ATOMIC_LOAD_UMIN, MVT::i32, Custom);
  231   setOperationAction(ISD::ATOMIC_LOAD_UMAX, MVT::i32, Custom);
  235   setOperationAction(ISD::ATOMIC_LOAD,     MVT::i128, Custom);
  236   setOperationAction(ISD::ATOMIC_STORE,    MVT::i128, Custom);
  240   setOperationAction(ISD::ATOMIC_CMP_SWAP_WITH_SUCCESS, MVT::i32, Custom);
  241   setOperationAction(ISD::ATOMIC_CMP_SWAP_WITH_SUCCESS, MVT::i64, Custom);
  242   setOperationAction(ISD::ATOMIC_CMP_SWAP_WITH_SUCCESS, MVT::i128, Custom);
  244   setOperationAction(ISD::ATOMIC_FENCE, MVT::Other, Custom);
  247   setOperationAction(ISD::TRAP, MVT::Other, Legal);
  252     setOperationAction(ISD::UINT_TO_FP, MVT::i32, Promote);
  253     setOperationAction(ISD::UINT_TO_FP, MVT::i64, Expand);
  257   setOperationAction(ISD::CTLZ, MVT::i32, Promote);
  258   setOperationAction(ISD::CTLZ_ZERO_UNDEF, MVT::i32, Promote);
  259   setOperationAction(ISD::CTLZ, MVT::i64, Legal);
  263     setOperationAction(ISD::CTPOP, MVT::i32, Promote);
  264     setOperationAction(ISD::CTPOP, MVT::i64, Legal);
  268   setOperationAction(ISD::OR, MVT::i64, Custom);
  271   setOperationAction(ISD::SRL_PARTS, MVT::i64, Expand);
  272   setOperationAction(ISD::SHL_PARTS, MVT::i64, Expand);
  273   setOperationAction(ISD::SRA_PARTS, MVT::i64, Expand);
  276   setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i1, Expand);
  284   setOperationAction(ISD::ConstantPool,     PtrVT, Custom);
  285   setOperationAction(ISD::GlobalAddress,    PtrVT, Custom);
  286   setOperationAction(ISD::GlobalTLSAddress, PtrVT, Custom);
  287   setOperationAction(ISD::BlockAddress,     PtrVT, Custom);
  288   setOperationAction(ISD::JumpTable,        PtrVT, Custom);
  292   setOperationAction(ISD::DYNAMIC_STACKALLOC, PtrVT, Custom);
  293   setOperationAction(ISD::GET_DYNAMIC_AREA_OFFSET, PtrVT, Custom);
  297   setOperationAction(ISD::STACKSAVE,    MVT::Other, Custom);
  298   setOperationAction(ISD::STACKRESTORE, MVT::Other, Custom);
  301   setOperationAction(ISD::PREFETCH, MVT::Other, Custom);
  307         setOperationAction(Opcode, VT, Expand);
  322       setOperationAction(ISD::LOAD, VT, Legal);
  323       setOperationAction(ISD::STORE, VT, Legal);
  324       setOperationAction(ISD::VSELECT, VT, Legal);
  325       setOperationAction(ISD::BITCAST, VT, Legal);
  326       setOperationAction(ISD::UNDEF, VT, Legal);
  330       setOperationAction(ISD::BUILD_VECTOR, VT, Custom);
  331       setOperationAction(ISD::VECTOR_SHUFFLE, VT, Custom);
  339       setOperationAction(ISD::EXTRACT_VECTOR_ELT, VT, Legal);
  340       setOperationAction(ISD::INSERT_VECTOR_ELT, VT, Legal);
  341       setOperationAction(ISD::ADD, VT, Legal);
  342       setOperationAction(ISD::SUB, VT, Legal);
  344         setOperationAction(ISD::MUL, VT, Legal);
  345       setOperationAction(ISD::AND, VT, Legal);
  346       setOperationAction(ISD::OR, VT, Legal);
  347       setOperationAction(ISD::XOR, VT, Legal);
  349         setOperationAction(ISD::CTPOP, VT, Legal);
  351         setOperationAction(ISD::CTPOP, VT, Custom);
  352       setOperationAction(ISD::CTTZ, VT, Legal);
  353       setOperationAction(ISD::CTLZ, VT, Legal);
  356       setOperationAction(ISD::SCALAR_TO_VECTOR, VT, Custom);
  359       setOperationAction(ISD::SIGN_EXTEND_VECTOR_INREG, VT, Custom);
  360       setOperationAction(ISD::ZERO_EXTEND_VECTOR_INREG, VT, Custom);
  364       setOperationAction(ISD::SHL, VT, Custom);
  365       setOperationAction(ISD::SRA, VT, Custom);
  366       setOperationAction(ISD::SRL, VT, Custom);
  370       setOperationAction(ISD::ROTL, VT, Expand);
  371       setOperationAction(ISD::ROTR, VT, Expand);
  375       setOperationAction(ISD::SETCC, VT, Custom);
  382     setOperationAction(ISD::FP_TO_SINT, MVT::v2i64, Legal);
  383     setOperationAction(ISD::FP_TO_SINT, MVT::v2f64, Legal);
  384     setOperationAction(ISD::FP_TO_UINT, MVT::v2i64, Legal);
  385     setOperationAction(ISD::FP_TO_UINT, MVT::v2f64, Legal);
  386     setOperationAction(ISD::SINT_TO_FP, MVT::v2i64, Legal);
  387     setOperationAction(ISD::SINT_TO_FP, MVT::v2f64, Legal);
  388     setOperationAction(ISD::UINT_TO_FP, MVT::v2i64, Legal);
  389     setOperationAction(ISD::UINT_TO_FP, MVT::v2f64, Legal);
  391     setOperationAction(ISD::STRICT_FP_TO_SINT, MVT::v2i64, Legal);
  392     setOperationAction(ISD::STRICT_FP_TO_SINT, MVT::v2f64, Legal);
  393     setOperationAction(ISD::STRICT_FP_TO_UINT, MVT::v2i64, Legal);
  394     setOperationAction(ISD::STRICT_FP_TO_UINT, MVT::v2f64, Legal);
  398     setOperationAction(ISD::FP_TO_SINT, MVT::v4i32, Legal);
  399     setOperationAction(ISD::FP_TO_SINT, MVT::v4f32, Legal);
  400     setOperationAction(ISD::FP_TO_UINT, MVT::v4i32, Legal);
  401     setOperationAction(ISD::FP_TO_UINT, MVT::v4f32, Legal);
  402     setOperationAction(ISD::SINT_TO_FP, MVT::v4i32, Legal);
  403     setOperationAction(ISD::SINT_TO_FP, MVT::v4f32, Legal);
  404     setOperationAction(ISD::UINT_TO_FP, MVT::v4i32, Legal);
  405     setOperationAction(ISD::UINT_TO_FP, MVT::v4f32, Legal);
  407     setOperationAction(ISD::STRICT_FP_TO_SINT, MVT::v4i32, Legal);
  408     setOperationAction(ISD::STRICT_FP_TO_SINT, MVT::v4f32, Legal);
  409     setOperationAction(ISD::STRICT_FP_TO_UINT, MVT::v4i32, Legal);
  410     setOperationAction(ISD::STRICT_FP_TO_UINT, MVT::v4f32, Legal);
  420       setOperationAction(ISD::FRINT, VT, Legal);
  424         setOperationAction(ISD::FNEARBYINT, VT, Legal);
  425         setOperationAction(ISD::FFLOOR, VT, Legal);
  426         setOperationAction(ISD::FCEIL, VT, Legal);
  427         setOperationAction(ISD::FTRUNC, VT, Legal);
  428         setOperationAction(ISD::FROUND, VT, Legal);
  432       setOperationAction(ISD::FSIN, VT, Expand);
  433       setOperationAction(ISD::FCOS, VT, Expand);
  434       setOperationAction(ISD::FSINCOS, VT, Expand);
  435       setOperationAction(ISD::FREM, VT, Expand);
  436       setOperationAction(ISD::FPOW, VT, Expand);
  439       setOperationAction(ISD::STRICT_FADD, VT, Legal);
  440       setOperationAction(ISD::STRICT_FSUB, VT, Legal);
  441       setOperationAction(ISD::STRICT_FMUL, VT, Legal);
  442       setOperationAction(ISD::STRICT_FDIV, VT, Legal);
  443       setOperationAction(ISD::STRICT_FMA, VT, Legal);
  444       setOperationAction(ISD::STRICT_FSQRT, VT, Legal);
  445       setOperationAction(ISD::STRICT_FRINT, VT, Legal);
  446       setOperationAction(ISD::STRICT_FP_ROUND, VT, Legal);
  447       setOperationAction(ISD::STRICT_FP_EXTEND, VT, Legal);
  449         setOperationAction(ISD::STRICT_FNEARBYINT, VT, Legal);
  450         setOperationAction(ISD::STRICT_FFLOOR, VT, Legal);
  451         setOperationAction(ISD::STRICT_FCEIL, VT, Legal);
  452         setOperationAction(ISD::STRICT_FROUND, VT, Legal);
  453         setOperationAction(ISD::STRICT_FTRUNC, VT, Legal);
  461     setOperationAction(ISD::SCALAR_TO_VECTOR, MVT::v4f32, Legal);
  462     setOperationAction(ISD::SCALAR_TO_VECTOR, MVT::v2f64, Legal);
  466     setOperationAction(ISD::INSERT_VECTOR_ELT, MVT::v4f32, Custom);
  467     setOperationAction(ISD::INSERT_VECTOR_ELT, MVT::v2f64, Custom);
  468     setOperationAction(ISD::EXTRACT_VECTOR_ELT, MVT::v4f32, Custom);
  469     setOperationAction(ISD::EXTRACT_VECTOR_ELT, MVT::v2f64, Custom);
  472     setOperationAction(ISD::FADD, MVT::v2f64, Legal);
  473     setOperationAction(ISD::FNEG, MVT::v2f64, Legal);
  474     setOperationAction(ISD::FSUB, MVT::v2f64, Legal);
  475     setOperationAction(ISD::FMUL, MVT::v2f64, Legal);
  476     setOperationAction(ISD::FMA, MVT::v2f64, Legal);
  477     setOperationAction(ISD::FDIV, MVT::v2f64, Legal);
  478     setOperationAction(ISD::FABS, MVT::v2f64, Legal);
  479     setOperationAction(ISD::FSQRT, MVT::v2f64, Legal);
  480     setOperationAction(ISD::FRINT, MVT::v2f64, Legal);
  481     setOperationAction(ISD::FNEARBYINT, MVT::v2f64, Legal);
  482     setOperationAction(ISD::FFLOOR, MVT::v2f64, Legal);
  483     setOperationAction(ISD::FCEIL, MVT::v2f64, Legal);
  484     setOperationAction(ISD::FTRUNC, MVT::v2f64, Legal);
  485     setOperationAction(ISD::FROUND, MVT::v2f64, Legal);
  488     setOperationAction(ISD::STRICT_FADD, MVT::v2f64, Legal);
  489     setOperationAction(ISD::STRICT_FSUB, MVT::v2f64, Legal);
  490     setOperationAction(ISD::STRICT_FMUL, MVT::v2f64, Legal);
  491     setOperationAction(ISD::STRICT_FMA, MVT::v2f64, Legal);
  492     setOperationAction(ISD::STRICT_FDIV, MVT::v2f64, Legal);
  493     setOperationAction(ISD::STRICT_FSQRT, MVT::v2f64, Legal);
  494     setOperationAction(ISD::STRICT_FRINT, MVT::v2f64, Legal);
  495     setOperationAction(ISD::STRICT_FNEARBYINT, MVT::v2f64, Legal);
  496     setOperationAction(ISD::STRICT_FFLOOR, MVT::v2f64, Legal);
  497     setOperationAction(ISD::STRICT_FCEIL, MVT::v2f64, Legal);
  498     setOperationAction(ISD::STRICT_FTRUNC, MVT::v2f64, Legal);
  499     setOperationAction(ISD::STRICT_FROUND, MVT::v2f64, Legal);
  504     setOperationAction(ISD::FADD, MVT::v4f32, Legal);
  505     setOperationAction(ISD::FNEG, MVT::v4f32, Legal);
  506     setOperationAction(ISD::FSUB, MVT::v4f32, Legal);
  507     setOperationAction(ISD::FMUL, MVT::v4f32, Legal);
  508     setOperationAction(ISD::FMA, MVT::v4f32, Legal);
  509     setOperationAction(ISD::FDIV, MVT::v4f32, Legal);
  510     setOperationAction(ISD::FABS, MVT::v4f32, Legal);
  511     setOperationAction(ISD::FSQRT, MVT::v4f32, Legal);
  512     setOperationAction(ISD::FRINT, MVT::v4f32, Legal);
  513     setOperationAction(ISD::FNEARBYINT, MVT::v4f32, Legal);
  514     setOperationAction(ISD::FFLOOR, MVT::v4f32, Legal);
  515     setOperationAction(ISD::FCEIL, MVT::v4f32, Legal);
  516     setOperationAction(ISD::FTRUNC, MVT::v4f32, Legal);
  517     setOperationAction(ISD::FROUND, MVT::v4f32, Legal);
  519     setOperationAction(ISD::FMAXNUM, MVT::f64, Legal);
  520     setOperationAction(ISD::FMAXIMUM, MVT::f64, Legal);
  521     setOperationAction(ISD::FMINNUM, MVT::f64, Legal);
  522     setOperationAction(ISD::FMINIMUM, MVT::f64, Legal);
  524     setOperationAction(ISD::FMAXNUM, MVT::v2f64, Legal);
  525     setOperationAction(ISD::FMAXIMUM, MVT::v2f64, Legal);
  526     setOperationAction(ISD::FMINNUM, MVT::v2f64, Legal);
  527     setOperationAction(ISD::FMINIMUM, MVT::v2f64, Legal);
  529     setOperationAction(ISD::FMAXNUM, MVT::f32, Legal);
  530     setOperationAction(ISD::FMAXIMUM, MVT::f32, Legal);
  531     setOperationAction(ISD::FMINNUM, MVT::f32, Legal);
  532     setOperationAction(ISD::FMINIMUM, MVT::f32, Legal);
  534     setOperationAction(ISD::FMAXNUM, MVT::v4f32, Legal);
  535     setOperationAction(ISD::FMAXIMUM, MVT::v4f32, Legal);
  536     setOperationAction(ISD::FMINNUM, MVT::v4f32, Legal);
  537     setOperationAction(ISD::FMINIMUM, MVT::v4f32, Legal);
  539     setOperationAction(ISD::FMAXNUM, MVT::f128, Legal);
  540     setOperationAction(ISD::FMAXIMUM, MVT::f128, Legal);
  541     setOperationAction(ISD::FMINNUM, MVT::f128, Legal);
  542     setOperationAction(ISD::FMINIMUM, MVT::f128, Legal);
  545     setOperationAction(ISD::STRICT_FADD, MVT::v4f32, Legal);
  546     setOperationAction(ISD::STRICT_FSUB, MVT::v4f32, Legal);
  547     setOperationAction(ISD::STRICT_FMUL, MVT::v4f32, Legal);
  548     setOperationAction(ISD::STRICT_FMA, MVT::v4f32, Legal);
  549     setOperationAction(ISD::STRICT_FDIV, MVT::v4f32, Legal);
  550     setOperationAction(ISD::STRICT_FSQRT, MVT::v4f32, Legal);
  551     setOperationAction(ISD::STRICT_FRINT, MVT::v4f32, Legal);
  552     setOperationAction(ISD::STRICT_FNEARBYINT, MVT::v4f32, Legal);
  553     setOperationAction(ISD::STRICT_FFLOOR, MVT::v4f32, Legal);
  554     setOperationAction(ISD::STRICT_FCEIL, MVT::v4f32, Legal);
  555     setOperationAction(ISD::STRICT_FROUND, MVT::v4f32, Legal);
  556     setOperationAction(ISD::STRICT_FTRUNC, MVT::v4f32, Legal);
  559       setOperationAction(ISD::STRICT_FMAXNUM, VT, Legal);
  560       setOperationAction(ISD::STRICT_FMINNUM, VT, Legal);
  565   setOperationAction(ISD::FMA, MVT::f32,  Legal);
  566   setOperationAction(ISD::FMA, MVT::f64,  Legal);
  568     setOperationAction(ISD::FMA, MVT::f128, Legal);
  570     setOperationAction(ISD::FMA, MVT::f128, Expand);
  574     setOperationAction(ISD::FCOPYSIGN, MVT::f128, Expand);
  596     setOperationAction(ISD::BITCAST, MVT::i32, Custom);
  597     setOperationAction(ISD::BITCAST, MVT::f32, Custom);
  602   setOperationAction(ISD::VASTART, MVT::Other, Custom);
  603   setOperationAction(ISD::VACOPY,  MVT::Other, Custom);
  604   setOperationAction(ISD::VAEND,   MVT::Other, Expand);
  623   setOperationAction(ISD::INTRINSIC_W_CHAIN, MVT::Other, Custom);
  624   setOperationAction(ISD::INTRINSIC_WO_CHAIN, MVT::Other, Custom);
lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
   71   setOperationAction(ISD::GlobalAddress, MVTPtr, Custom);
   72   setOperationAction(ISD::ExternalSymbol, MVTPtr, Custom);
   73   setOperationAction(ISD::JumpTable, MVTPtr, Custom);
   74   setOperationAction(ISD::BlockAddress, MVTPtr, Custom);
   75   setOperationAction(ISD::BRIND, MVT::Other, Custom);
   79   setOperationAction(ISD::VASTART, MVT::Other, Custom);
   80   setOperationAction(ISD::VAARG, MVT::Other, Expand);
   81   setOperationAction(ISD::VACOPY, MVT::Other, Expand);
   82   setOperationAction(ISD::VAEND, MVT::Other, Expand);
   86     setOperationAction(ISD::ConstantFP, T, Legal);
   94       setOperationAction(Op, T, Expand);
   99       setOperationAction(Op, T, Legal);
  101     setOperationAction(ISD::FMINIMUM, T, Legal);
  102     setOperationAction(ISD::FMAXIMUM, T, Legal);
  104     setOperationAction(ISD::FP16_TO_FP, T, Expand);
  105     setOperationAction(ISD::FP_TO_FP16, T, Expand);
  116       setOperationAction(Op, T, Expand);
  119         setOperationAction(Op, T, Expand);
  121       setOperationAction(Op, MVT::v2i64, Expand);
  129         setOperationAction(Op, T, Legal);
  133       setOperationAction(ISD::BUILD_VECTOR, T, Custom);
  136         setOperationAction(ISD::BUILD_VECTOR, T, Custom);
  140       setOperationAction(ISD::VECTOR_SHUFFLE, T, Custom);
  143         setOperationAction(ISD::VECTOR_SHUFFLE, T, Custom);
  148         setOperationAction(Op, T, Custom);
  150         setOperationAction(Op, MVT::v2i64, Custom);
  156         setOperationAction(Op, T, Custom);
  159           setOperationAction(Op, T, Custom);
  163     setOperationAction(ISD::MUL, MVT::v2i64, Expand);
  168         setOperationAction(Op, T, Expand);
  171           setOperationAction(Op, T, Expand);
  178         setOperationAction(Op, T, Expand);
  180         setOperationAction(Op, MVT::v2i64, Expand);
  187       setOperationAction(Op, MVT::v4f32, Expand);
  189         setOperationAction(Op, MVT::v2f64, Expand);
  194       setOperationAction(ISD::FSQRT, MVT::v4f32, Expand);
  195       setOperationAction(ISD::FDIV, MVT::v4f32, Expand);
  201   setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i1, Expand);
  206       setOperationAction(ISD::SIGN_EXTEND_INREG, T, Action);
  209     setOperationAction(ISD::SIGN_EXTEND_INREG, T, Expand);
  212   setOperationAction(ISD::STACKSAVE, MVT::Other, Expand);
  213   setOperationAction(ISD::STACKRESTORE, MVT::Other, Expand);
  214   setOperationAction(ISD::DYNAMIC_STACKALLOC, MVTPtr, Expand);
  216   setOperationAction(ISD::FrameIndex, MVT::i32, Custom);
  217   setOperationAction(ISD::CopyToReg, MVT::Other, Custom);
  222       setOperationAction(Op, T, Expand);
  225   setOperationAction(ISD::BR_JT, MVT::Other, Custom);
  259   setOperationAction(ISD::BUILD_PAIR, MVT::i64, Expand);
  262   setOperationAction(ISD::TRAP, MVT::Other, Legal);
  265   setOperationAction(ISD::INTRINSIC_WO_CHAIN, MVT::Other, Custom);
  266   setOperationAction(ISD::INTRINSIC_VOID, MVT::Other, Custom);
lib/Target/X86/X86ISelLowering.cpp
  207     setOperationAction(ISD::ABS            , MVT::i16  , Custom);
  208     setOperationAction(ISD::ABS            , MVT::i32  , Custom);
  210   setOperationAction(ISD::ABS              , MVT::i64  , Custom);
  214     setOperationAction(ShiftOp             , MVT::i16  , Custom);
  215     setOperationAction(ShiftOp             , MVT::i32  , Custom);
  217       setOperationAction(ShiftOp           , MVT::i64  , Custom);
  222   setOperationAction(ISD::UINT_TO_FP       , MVT::i1   , Promote);
  223   setOperationAction(ISD::UINT_TO_FP       , MVT::i8   , Promote);
  224   setOperationAction(ISD::UINT_TO_FP       , MVT::i16  , Promote);
  229     setOperationAction(ISD::UINT_TO_FP     , MVT::i64  , Custom);
  232     setOperationAction(ISD::UINT_TO_FP     , MVT::i32  , Custom);
  234     setOperationAction(ISD::UINT_TO_FP     , MVT::i32  , Expand);
  239   setOperationAction(ISD::SINT_TO_FP       , MVT::i1   , Promote);
  240   setOperationAction(ISD::SINT_TO_FP       , MVT::i8   , Promote);
  245       setOperationAction(ISD::SINT_TO_FP     , MVT::i16  , Promote);
  247       setOperationAction(ISD::SINT_TO_FP     , MVT::i32  , Custom);
  249       setOperationAction(ISD::SINT_TO_FP     , MVT::i16  , Custom);
  250       setOperationAction(ISD::SINT_TO_FP     , MVT::i32  , Custom);
  253     setOperationAction(ISD::SINT_TO_FP     , MVT::i16  , Promote);
  254     setOperationAction(ISD::SINT_TO_FP     , MVT::i32  , Expand);
  259   setOperationAction(ISD::FP_TO_SINT       , MVT::i1   , Promote);
  260   setOperationAction(ISD::FP_TO_SINT       , MVT::i8   , Promote);
  265     setOperationAction(ISD::FP_TO_SINT     , MVT::i64  , Custom);
  266     setOperationAction(ISD::SINT_TO_FP     , MVT::i64  , Custom);
  268     setOperationAction(ISD::FP_TO_SINT     , MVT::i16  , Custom);
  269     setOperationAction(ISD::FP_TO_SINT     , MVT::i32  , Custom);
  271     setOperationAction(ISD::FP_TO_SINT     , MVT::i16  , Promote);
  272     setOperationAction(ISD::FP_TO_SINT     , MVT::i32  , Expand);
  273     setOperationAction(ISD::FP_TO_SINT     , MVT::i64  , Expand);
  278   setOperationAction(ISD::FP_TO_UINT       , MVT::i1   , Promote);
  279   setOperationAction(ISD::FP_TO_UINT       , MVT::i8   , Promote);
  280   setOperationAction(ISD::FP_TO_UINT       , MVT::i16  , Promote);
  283     setOperationAction(ISD::FP_TO_UINT, MVT::i32, Custom);
  284     setOperationAction(ISD::FP_TO_UINT, MVT::i64, Custom);
  289     setOperationAction(ISD::BITCAST        , MVT::f32  , Expand);
  290     setOperationAction(ISD::BITCAST        , MVT::i32  , Expand);
  292       setOperationAction(ISD::BITCAST      , MVT::f64  , Expand);
  294       setOperationAction(ISD::BITCAST      , MVT::i64  , Expand);
  297     setOperationAction(ISD::BITCAST      , MVT::i64  , Custom);
  310     setOperationAction(ISD::MULHS, VT, Expand);
  311     setOperationAction(ISD::MULHU, VT, Expand);
  312     setOperationAction(ISD::SDIV, VT, Expand);
  313     setOperationAction(ISD::UDIV, VT, Expand);
  314     setOperationAction(ISD::SREM, VT, Expand);
  315     setOperationAction(ISD::UREM, VT, Expand);
  318   setOperationAction(ISD::BR_JT            , MVT::Other, Expand);
  319   setOperationAction(ISD::BRCOND           , MVT::Other, Custom);
  322     setOperationAction(ISD::BR_CC,     VT, Expand);
  323     setOperationAction(ISD::SELECT_CC, VT, Expand);
  326     setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i32, Legal);
  327   setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i16  , Legal);
  328   setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i8   , Legal);
  329   setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i1   , Expand);
  331   setOperationAction(ISD::FREM             , MVT::f32  , Expand);
  332   setOperationAction(ISD::FREM             , MVT::f64  , Expand);
  333   setOperationAction(ISD::FREM             , MVT::f80  , Expand);
  334   setOperationAction(ISD::FREM             , MVT::f128 , Expand);
  335   setOperationAction(ISD::FLT_ROUNDS_      , MVT::i32  , Custom);
  342     setOperationAction(ISD::CTTZ           , MVT::i16  , Custom);
  343     setOperationAction(ISD::CTTZ           , MVT::i32  , Custom);
  344     setOperationAction(ISD::CTTZ_ZERO_UNDEF, MVT::i16  , Legal);
  345     setOperationAction(ISD::CTTZ_ZERO_UNDEF, MVT::i32  , Legal);
  347       setOperationAction(ISD::CTTZ         , MVT::i64  , Custom);
  348       setOperationAction(ISD::CTTZ_ZERO_UNDEF, MVT::i64, Legal);
  358     setOperationAction(ISD::CTLZ           , MVT::i8   , Custom);
  359     setOperationAction(ISD::CTLZ           , MVT::i16  , Custom);
  360     setOperationAction(ISD::CTLZ           , MVT::i32  , Custom);
  361     setOperationAction(ISD::CTLZ_ZERO_UNDEF, MVT::i8   , Custom);
  362     setOperationAction(ISD::CTLZ_ZERO_UNDEF, MVT::i16  , Custom);
  363     setOperationAction(ISD::CTLZ_ZERO_UNDEF, MVT::i32  , Custom);
  365       setOperationAction(ISD::CTLZ         , MVT::i64  , Custom);
  366       setOperationAction(ISD::CTLZ_ZERO_UNDEF, MVT::i64, Custom);
  374     setOperationAction(ISD::FP16_TO_FP, MVT::f32, Expand);
  375     setOperationAction(ISD::FP_TO_FP16, MVT::f32, Expand);
  379   setOperationAction(ISD::FP16_TO_FP, MVT::f64, Expand);
  380   setOperationAction(ISD::FP16_TO_FP, MVT::f80, Expand);
  381   setOperationAction(ISD::FP16_TO_FP, MVT::f128, Expand);
  382   setOperationAction(ISD::FP_TO_FP16, MVT::f64, Expand);
  383   setOperationAction(ISD::FP_TO_FP16, MVT::f80, Expand);
  384   setOperationAction(ISD::FP_TO_FP16, MVT::f128, Expand);
  398     setOperationAction(ISD::CTPOP          , MVT::i8   , Expand);
  399     setOperationAction(ISD::CTPOP          , MVT::i16  , Expand);
  400     setOperationAction(ISD::CTPOP          , MVT::i32  , Expand);
  402       setOperationAction(ISD::CTPOP        , MVT::i64  , Expand);
  404       setOperationAction(ISD::CTPOP        , MVT::i64  , Custom);
  407   setOperationAction(ISD::READCYCLECOUNTER , MVT::i64  , Custom);
  410     setOperationAction(ISD::BSWAP          , MVT::i16  , Expand);
  413   setOperationAction(ISD::SELECT          , MVT::i1   , Promote);
  416     setOperationAction(ISD::SELECT, VT, Custom);
  417     setOperationAction(ISD::SETCC, VT, Custom);
  422     setOperationAction(ISD::SELECT, VT, Custom);
  423     setOperationAction(ISD::SETCC,  VT, Custom);
  427   setOperationAction(ISD::SELECT, MVT::x86mmx, Custom);
  428   setOperationAction(ISD::SELECT_CC, MVT::x86mmx, Expand);
  430   setOperationAction(ISD::EH_RETURN       , MVT::Other, Custom);
  433   setOperationAction(ISD::EH_SJLJ_SETJMP, MVT::i32, Custom);
  434   setOperationAction(ISD::EH_SJLJ_LONGJMP, MVT::Other, Custom);
  435   setOperationAction(ISD::EH_SJLJ_SETUP_DISPATCH, MVT::Other, Custom);
  443     setOperationAction(ISD::ConstantPool    , VT, Custom);
  444     setOperationAction(ISD::JumpTable       , VT, Custom);
  445     setOperationAction(ISD::GlobalAddress   , VT, Custom);
  446     setOperationAction(ISD::GlobalTLSAddress, VT, Custom);
  447     setOperationAction(ISD::ExternalSymbol  , VT, Custom);
  448     setOperationAction(ISD::BlockAddress    , VT, Custom);
  455     setOperationAction(ISD::SHL_PARTS, VT, Custom);
  456     setOperationAction(ISD::SRA_PARTS, VT, Custom);
  457     setOperationAction(ISD::SRL_PARTS, VT, Custom);
  461     setOperationAction(ISD::PREFETCH      , MVT::Other, Legal);
  463   setOperationAction(ISD::ATOMIC_FENCE  , MVT::Other, Custom);
  467     setOperationAction(ISD::ATOMIC_CMP_SWAP_WITH_SUCCESS, VT, Custom);
  468     setOperationAction(ISD::ATOMIC_LOAD_SUB, VT, Custom);
  469     setOperationAction(ISD::ATOMIC_LOAD_ADD, VT, Custom);
  470     setOperationAction(ISD::ATOMIC_LOAD_OR, VT, Custom);
  471     setOperationAction(ISD::ATOMIC_LOAD_XOR, VT, Custom);
  472     setOperationAction(ISD::ATOMIC_LOAD_AND, VT, Custom);
  473     setOperationAction(ISD::ATOMIC_STORE, VT, Custom);
  477     setOperationAction(ISD::ATOMIC_LOAD, MVT::i64, Custom);
  480     setOperationAction(ISD::ATOMIC_CMP_SWAP_WITH_SUCCESS, MVT::i128, Custom);
  487     setOperationAction(ISD::EH_LABEL, MVT::Other, Expand);
  490   setOperationAction(ISD::FRAME_TO_ARGS_OFFSET, MVT::i32, Custom);
  491   setOperationAction(ISD::FRAME_TO_ARGS_OFFSET, MVT::i64, Custom);
  493   setOperationAction(ISD::INIT_TRAMPOLINE, MVT::Other, Custom);
  494   setOperationAction(ISD::ADJUST_TRAMPOLINE, MVT::Other, Custom);
  496   setOperationAction(ISD::TRAP, MVT::Other, Legal);
  497   setOperationAction(ISD::DEBUGTRAP, MVT::Other, Legal);
  500   setOperationAction(ISD::VASTART           , MVT::Other, Custom);
  501   setOperationAction(ISD::VAEND             , MVT::Other, Expand);
  503   setOperationAction(ISD::VAARG,  MVT::Other, Is64Bit ? Custom : Expand);
  504   setOperationAction(ISD::VACOPY, MVT::Other, Is64Bit ? Custom : Expand);
  506   setOperationAction(ISD::STACKSAVE,          MVT::Other, Expand);
  507   setOperationAction(ISD::STACKRESTORE,       MVT::Other, Expand);
  509   setOperationAction(ISD::DYNAMIC_STACKALLOC, PtrVT, Custom);
  512   setOperationAction(ISD::GC_TRANSITION_START, MVT::Other, Custom);
  513   setOperationAction(ISD::GC_TRANSITION_END, MVT::Other, Custom);
  531       setOperationAction(ISD::FABS, VT, Custom);
  534       setOperationAction(ISD::FNEG, VT, Custom);
  537       setOperationAction(ISD::FCOPYSIGN, VT, Custom);
  540       setOperationAction(ISD::FADD, VT, Custom);
  541       setOperationAction(ISD::FSUB, VT, Custom);
  544       setOperationAction(ISD::FSIN   , VT, Expand);
  545       setOperationAction(ISD::FCOS   , VT, Expand);
  546       setOperationAction(ISD::FSINCOS, VT, Expand);
  550     setOperationAction(ISD::FGETSIGN, MVT::i64, Custom);
  551     setOperationAction(ISD::FGETSIGN, MVT::i32, Custom);
  561     setOperationAction(ISD::FABS , MVT::f32, Custom);
  564     setOperationAction(ISD::FNEG , MVT::f32, Custom);
  567       setOperationAction(ISD::UNDEF, MVT::f64, Expand);
  571       setOperationAction(ISD::FCOPYSIGN, MVT::f64, Expand);
  572     setOperationAction(ISD::FCOPYSIGN, MVT::f32, Custom);
  575     setOperationAction(ISD::FSIN   , MVT::f32, Expand);
  576     setOperationAction(ISD::FCOS   , MVT::f32, Expand);
  577     setOperationAction(ISD::FSINCOS, MVT::f32, Expand);
  581       setOperationAction(ISD::FSIN, MVT::f64, Expand);
  582       setOperationAction(ISD::FCOS, MVT::f64, Expand);
  583       setOperationAction(ISD::FSINCOS, MVT::f64, Expand);
  592       setOperationAction(ISD::UNDEF,     VT, Expand);
  593       setOperationAction(ISD::FCOPYSIGN, VT, Expand);
  596       setOperationAction(ISD::FSIN   , VT, Expand);
  597       setOperationAction(ISD::FCOS   , VT, Expand);
  598       setOperationAction(ISD::FSINCOS, VT, Expand);
  624   setOperationAction(ISD::FMA, MVT::f64, Expand);
  625   setOperationAction(ISD::FMA, MVT::f32, Expand);
  630     setOperationAction(ISD::UNDEF,     MVT::f80, Expand);
  631     setOperationAction(ISD::FCOPYSIGN, MVT::f80, Expand);
  648     setOperationAction(ISD::FSIN   , MVT::f80, Expand);
  649     setOperationAction(ISD::FCOS   , MVT::f80, Expand);
  650     setOperationAction(ISD::FSINCOS, MVT::f80, Expand);
  652     setOperationAction(ISD::FFLOOR, MVT::f80, Expand);
  653     setOperationAction(ISD::FCEIL,  MVT::f80, Expand);
  654     setOperationAction(ISD::FTRUNC, MVT::f80, Expand);
  655     setOperationAction(ISD::FRINT,  MVT::f80, Expand);
  656     setOperationAction(ISD::FNEARBYINT, MVT::f80, Expand);
  657     setOperationAction(ISD::FMA, MVT::f80, Expand);
  658     setOperationAction(ISD::LROUND, MVT::f80, Expand);
  659     setOperationAction(ISD::LLROUND, MVT::f80, Expand);
  660     setOperationAction(ISD::LRINT, MVT::f80, Expand);
  661     setOperationAction(ISD::LLRINT, MVT::f80, Expand);
  671     setOperationAction(ISD::FADD, MVT::f128, Custom);
  672     setOperationAction(ISD::FSUB, MVT::f128, Custom);
  673     setOperationAction(ISD::FDIV, MVT::f128, Custom);
  674     setOperationAction(ISD::FMUL, MVT::f128, Custom);
  675     setOperationAction(ISD::FMA,  MVT::f128, Expand);
  677     setOperationAction(ISD::FABS, MVT::f128, Custom);
  678     setOperationAction(ISD::FNEG, MVT::f128, Custom);
  679     setOperationAction(ISD::FCOPYSIGN, MVT::f128, Custom);
  681     setOperationAction(ISD::FSIN,    MVT::f128, Expand);
  682     setOperationAction(ISD::FCOS,    MVT::f128, Expand);
  683     setOperationAction(ISD::FSINCOS, MVT::f128, Expand);
  684     setOperationAction(ISD::FSQRT,   MVT::f128, Expand);
  686     setOperationAction(ISD::FP_EXTEND, MVT::f128, Custom);
  691       setOperationAction(ISD::FP_ROUND, MVT::f32, Custom);
  692       setOperationAction(ISD::STRICT_FP_ROUND, MVT::f32, Custom);
  695       setOperationAction(ISD::FP_ROUND, MVT::f64, Custom);
  696       setOperationAction(ISD::STRICT_FP_ROUND, MVT::f64, Custom);
  699       setOperationAction(ISD::FP_ROUND, MVT::f80, Custom);
  700       setOperationAction(ISD::STRICT_FP_ROUND, MVT::f80, Custom);
  703     setOperationAction(ISD::SETCC, MVT::f128, Custom);
  714   setOperationAction(ISD::FPOW             , MVT::f32  , Expand);
  715   setOperationAction(ISD::FPOW             , MVT::f64  , Expand);
  716   setOperationAction(ISD::FPOW             , MVT::f80  , Expand);
  717   setOperationAction(ISD::FPOW             , MVT::f128 , Expand);
  719   setOperationAction(ISD::FLOG, MVT::f80, Expand);
  720   setOperationAction(ISD::FLOG2, MVT::f80, Expand);
  721   setOperationAction(ISD::FLOG10, MVT::f80, Expand);
  722   setOperationAction(ISD::FEXP, MVT::f80, Expand);
  723   setOperationAction(ISD::FEXP2, MVT::f80, Expand);
  724   setOperationAction(ISD::FMINNUM, MVT::f80, Expand);
  725   setOperationAction(ISD::FMAXNUM, MVT::f80, Expand);
  730     setOperationAction(ISD::FSIN,      VT, Expand);
  731     setOperationAction(ISD::FSINCOS,   VT, Expand);
  732     setOperationAction(ISD::FCOS,      VT, Expand);
  733     setOperationAction(ISD::FREM,      VT, Expand);
  734     setOperationAction(ISD::FCOPYSIGN, VT, Expand);
  735     setOperationAction(ISD::FPOW,      VT, Expand);
  736     setOperationAction(ISD::FLOG,      VT, Expand);
  737     setOperationAction(ISD::FLOG2,     VT, Expand);
  738     setOperationAction(ISD::FLOG10,    VT, Expand);
  739     setOperationAction(ISD::FEXP,      VT, Expand);
  740     setOperationAction(ISD::FEXP2,     VT, Expand);
  747     setOperationAction(ISD::SDIV, VT, Expand);
  748     setOperationAction(ISD::UDIV, VT, Expand);
  749     setOperationAction(ISD::SREM, VT, Expand);
  750     setOperationAction(ISD::UREM, VT, Expand);
  751     setOperationAction(ISD::EXTRACT_VECTOR_ELT, VT,Expand);
  752     setOperationAction(ISD::INSERT_VECTOR_ELT, VT, Expand);
  753     setOperationAction(ISD::EXTRACT_SUBVECTOR, VT,Expand);
  754     setOperationAction(ISD::INSERT_SUBVECTOR, VT,Expand);
  755     setOperationAction(ISD::FMA,  VT, Expand);
  756     setOperationAction(ISD::FFLOOR, VT, Expand);
  757     setOperationAction(ISD::FCEIL, VT, Expand);
  758     setOperationAction(ISD::FTRUNC, VT, Expand);
  759     setOperationAction(ISD::FRINT, VT, Expand);
  760     setOperationAction(ISD::FNEARBYINT, VT, Expand);
  761     setOperationAction(ISD::SMUL_LOHI, VT, Expand);
  762     setOperationAction(ISD::MULHS, VT, Expand);
  763     setOperationAction(ISD::UMUL_LOHI, VT, Expand);
  764     setOperationAction(ISD::MULHU, VT, Expand);
  765     setOperationAction(ISD::SDIVREM, VT, Expand);
  766     setOperationAction(ISD::UDIVREM, VT, Expand);
  767     setOperationAction(ISD::CTPOP, VT, Expand);
  768     setOperationAction(ISD::CTTZ, VT, Expand);
  769     setOperationAction(ISD::CTLZ, VT, Expand);
  770     setOperationAction(ISD::ROTL, VT, Expand);
  771     setOperationAction(ISD::ROTR, VT, Expand);
  772     setOperationAction(ISD::BSWAP, VT, Expand);
  773     setOperationAction(ISD::SETCC, VT, Expand);
  774     setOperationAction(ISD::FP_TO_UINT, VT, Expand);
  775     setOperationAction(ISD::FP_TO_SINT, VT, Expand);
  776     setOperationAction(ISD::UINT_TO_FP, VT, Expand);
  777     setOperationAction(ISD::SINT_TO_FP, VT, Expand);
  778     setOperationAction(ISD::SIGN_EXTEND_INREG, VT,Expand);
  779     setOperationAction(ISD::TRUNCATE, VT, Expand);
  780     setOperationAction(ISD::SIGN_EXTEND, VT, Expand);
  781     setOperationAction(ISD::ZERO_EXTEND, VT, Expand);
  782     setOperationAction(ISD::ANY_EXTEND, VT, Expand);
  783     setOperationAction(ISD::SELECT_CC, VT, Expand);
  815     setOperationAction(ISD::FNEG,               MVT::v4f32, Custom);
  816     setOperationAction(ISD::FABS,               MVT::v4f32, Custom);
  817     setOperationAction(ISD::FCOPYSIGN,          MVT::v4f32, Custom);
  818     setOperationAction(ISD::BUILD_VECTOR,       MVT::v4f32, Custom);
  819     setOperationAction(ISD::VECTOR_SHUFFLE,     MVT::v4f32, Custom);
  820     setOperationAction(ISD::VSELECT,            MVT::v4f32, Custom);
  821     setOperationAction(ISD::EXTRACT_VECTOR_ELT, MVT::v4f32, Custom);
  822     setOperationAction(ISD::SELECT,             MVT::v4f32, Custom);
  823     setOperationAction(ISD::UINT_TO_FP,         MVT::v4i32, Custom);
  825     setOperationAction(ISD::LOAD,               MVT::v2f32, Custom);
  826     setOperationAction(ISD::STORE,              MVT::v2f32, Custom);
  828     setOperationAction(ISD::STRICT_FP_ROUND,    MVT::v4f32, Custom);
  848       setOperationAction(ISD::SDIV, VT, Custom);
  849       setOperationAction(ISD::SREM, VT, Custom);
  850       setOperationAction(ISD::UDIV, VT, Custom);
  851       setOperationAction(ISD::UREM, VT, Custom);
  854     setOperationAction(ISD::MUL,                MVT::v2i8,  Custom);
  855     setOperationAction(ISD::MUL,                MVT::v4i8,  Custom);
  856     setOperationAction(ISD::MUL,                MVT::v8i8,  Custom);
  858     setOperationAction(ISD::MUL,                MVT::v16i8, Custom);
  859     setOperationAction(ISD::MUL,                MVT::v4i32, Custom);
  860     setOperationAction(ISD::MUL,                MVT::v2i64, Custom);
  861     setOperationAction(ISD::MULHU,              MVT::v4i32, Custom);
  862     setOperationAction(ISD::MULHS,              MVT::v4i32, Custom);
  863     setOperationAction(ISD::MULHU,              MVT::v16i8, Custom);
  864     setOperationAction(ISD::MULHS,              MVT::v16i8, Custom);
  865     setOperationAction(ISD::MULHU,              MVT::v8i16, Legal);
  866     setOperationAction(ISD::MULHS,              MVT::v8i16, Legal);
  867     setOperationAction(ISD::MUL,                MVT::v8i16, Legal);
  868     setOperationAction(ISD::FNEG,               MVT::v2f64, Custom);
  869     setOperationAction(ISD::FABS,               MVT::v2f64, Custom);
  870     setOperationAction(ISD::FCOPYSIGN,          MVT::v2f64, Custom);
  873       setOperationAction(ISD::SMAX, VT, VT == MVT::v8i16 ? Legal : Custom);
  874       setOperationAction(ISD::SMIN, VT, VT == MVT::v8i16 ? Legal : Custom);
  875       setOperationAction(ISD::UMAX, VT, VT == MVT::v16i8 ? Legal : Custom);
  876       setOperationAction(ISD::UMIN, VT, VT == MVT::v16i8 ? Legal : Custom);
  879     setOperationAction(ISD::UADDSAT,            MVT::v16i8, Legal);
  880     setOperationAction(ISD::SADDSAT,            MVT::v16i8, Legal);
  881     setOperationAction(ISD::USUBSAT,            MVT::v16i8, Legal);
  882     setOperationAction(ISD::SSUBSAT,            MVT::v16i8, Legal);
  883     setOperationAction(ISD::UADDSAT,            MVT::v8i16, Legal);
  884     setOperationAction(ISD::SADDSAT,            MVT::v8i16, Legal);
  885     setOperationAction(ISD::USUBSAT,            MVT::v8i16, Legal);
  886     setOperationAction(ISD::SSUBSAT,            MVT::v8i16, Legal);
  887     setOperationAction(ISD::UADDSAT,            MVT::v4i32, Custom);
  888     setOperationAction(ISD::USUBSAT,            MVT::v4i32, Custom);
  889     setOperationAction(ISD::UADDSAT,            MVT::v2i64, Custom);
  890     setOperationAction(ISD::USUBSAT,            MVT::v2i64, Custom);
  892     setOperationAction(ISD::INSERT_VECTOR_ELT,  MVT::v8i16, Custom);
  893     setOperationAction(ISD::INSERT_VECTOR_ELT,  MVT::v4i32, Custom);
  894     setOperationAction(ISD::INSERT_VECTOR_ELT,  MVT::v4f32, Custom);
  897       setOperationAction(ISD::SETCC,              VT, Custom);
  898       setOperationAction(ISD::CTPOP,              VT, Custom);
  899       setOperationAction(ISD::ABS,                VT, Custom);
  908       setOperationAction(ISD::SCALAR_TO_VECTOR,   VT, Custom);
  909       setOperationAction(ISD::BUILD_VECTOR,       VT, Custom);
  910       setOperationAction(ISD::VECTOR_SHUFFLE,     VT, Custom);
  911       setOperationAction(ISD::VSELECT,            VT, Custom);
  912       setOperationAction(ISD::EXTRACT_VECTOR_ELT, VT, Custom);
  916       setOperationAction(ISD::BUILD_VECTOR,       VT, Custom);
  917       setOperationAction(ISD::VECTOR_SHUFFLE,     VT, Custom);
  918       setOperationAction(ISD::VSELECT,            VT, Custom);
  923       setOperationAction(ISD::INSERT_VECTOR_ELT,  VT, Custom);
  924       setOperationAction(ISD::EXTRACT_VECTOR_ELT, VT, Custom);
  928     setOperationAction(ISD::SELECT,             MVT::v2f64, Custom);
  929     setOperationAction(ISD::SELECT,             MVT::v2i64, Custom);
  930     setOperationAction(ISD::SELECT,             MVT::v4i32, Custom);
  931     setOperationAction(ISD::SELECT,             MVT::v8i16, Custom);
  932     setOperationAction(ISD::SELECT,             MVT::v16i8, Custom);
  934     setOperationAction(ISD::FP_TO_SINT,         MVT::v4i32, Legal);
  935     setOperationAction(ISD::FP_TO_SINT,         MVT::v2i32, Custom);
  938     setOperationAction(ISD::FP_TO_SINT,         MVT::v2i8,  Custom);
  939     setOperationAction(ISD::FP_TO_SINT,         MVT::v4i8,  Custom);
  940     setOperationAction(ISD::FP_TO_SINT,         MVT::v8i8,  Custom);
  941     setOperationAction(ISD::FP_TO_SINT,         MVT::v2i16, Custom);
  942     setOperationAction(ISD::FP_TO_SINT,         MVT::v4i16, Custom);
  943     setOperationAction(ISD::FP_TO_UINT,         MVT::v2i8,  Custom);
  944     setOperationAction(ISD::FP_TO_UINT,         MVT::v4i8,  Custom);
  945     setOperationAction(ISD::FP_TO_UINT,         MVT::v8i8,  Custom);
  946     setOperationAction(ISD::FP_TO_UINT,         MVT::v2i16, Custom);
  947     setOperationAction(ISD::FP_TO_UINT,         MVT::v4i16, Custom);
  955     setOperationAction(ISD::FP_TO_SINT,         MVT::v8i16, Custom);
  957     setOperationAction(ISD::SINT_TO_FP,         MVT::v4i32, Legal);
  958     setOperationAction(ISD::SINT_TO_FP,         MVT::v2i32, Custom);
  960     setOperationAction(ISD::UINT_TO_FP,         MVT::v2i32, Custom);
  963     setOperationAction(ISD::UINT_TO_FP,         MVT::v2f32, Custom);
  965     setOperationAction(ISD::FP_EXTEND,          MVT::v2f32, Custom);
  966     setOperationAction(ISD::FP_ROUND,           MVT::v2f32, Custom);
  971     setOperationAction(ISD::LOAD,               MVT::v2i32, Custom);
  972     setOperationAction(ISD::LOAD,               MVT::v4i16, Custom);
  973     setOperationAction(ISD::LOAD,               MVT::v8i8,  Custom);
  974     setOperationAction(ISD::STORE,              MVT::v2i32, Custom);
  975     setOperationAction(ISD::STORE,              MVT::v4i16, Custom);
  976     setOperationAction(ISD::STORE,              MVT::v8i8,  Custom);
  978     setOperationAction(ISD::BITCAST,            MVT::v2i32, Custom);
  979     setOperationAction(ISD::BITCAST,            MVT::v4i16, Custom);
  980     setOperationAction(ISD::BITCAST,            MVT::v8i8,  Custom);
  982       setOperationAction(ISD::BITCAST, MVT::v16i1, Custom);
  984     setOperationAction(ISD::SIGN_EXTEND_VECTOR_INREG, MVT::v2i64, Custom);
  985     setOperationAction(ISD::SIGN_EXTEND_VECTOR_INREG, MVT::v4i32, Custom);
  986     setOperationAction(ISD::SIGN_EXTEND_VECTOR_INREG, MVT::v8i16, Custom);
  988     setOperationAction(ISD::SIGN_EXTEND, MVT::v4i64, Custom);
  990     setOperationAction(ISD::TRUNCATE,    MVT::v2i8,  Custom);
  991     setOperationAction(ISD::TRUNCATE,    MVT::v2i16, Custom);
  992     setOperationAction(ISD::TRUNCATE,    MVT::v2i32, Custom);
  993     setOperationAction(ISD::TRUNCATE,    MVT::v4i8,  Custom);
  994     setOperationAction(ISD::TRUNCATE,    MVT::v4i16, Custom);
  995     setOperationAction(ISD::TRUNCATE,    MVT::v8i8,  Custom);
 1000       setOperationAction(ISD::SRL,              VT, Custom);
 1001       setOperationAction(ISD::SHL,              VT, Custom);
 1002       setOperationAction(ISD::SRA,              VT, Custom);
 1005     setOperationAction(ISD::ROTL,               MVT::v4i32, Custom);
 1006     setOperationAction(ISD::ROTL,               MVT::v8i16, Custom);
 1010       setOperationAction(ISD::ROTL,             MVT::v16i8, Custom);
 1014     setOperationAction(ISD::ABS,                MVT::v16i8, Legal);
 1015     setOperationAction(ISD::ABS,                MVT::v8i16, Legal);
 1016     setOperationAction(ISD::ABS,                MVT::v4i32, Legal);
 1017     setOperationAction(ISD::BITREVERSE,         MVT::v16i8, Custom);
 1018     setOperationAction(ISD::CTLZ,               MVT::v16i8, Custom);
 1019     setOperationAction(ISD::CTLZ,               MVT::v8i16, Custom);
 1020     setOperationAction(ISD::CTLZ,               MVT::v4i32, Custom);
 1021     setOperationAction(ISD::CTLZ,               MVT::v2i64, Custom);
 1024     setOperationAction(ISD::ADD,                MVT::i16, Custom);
 1025     setOperationAction(ISD::ADD,                MVT::i32, Custom);
 1026     setOperationAction(ISD::SUB,                MVT::i16, Custom);
 1027     setOperationAction(ISD::SUB,                MVT::i32, Custom);
 1032       setOperationAction(ISD::FFLOOR,           RoundedTy,  Legal);
 1033       setOperationAction(ISD::FCEIL,            RoundedTy,  Legal);
 1034       setOperationAction(ISD::FTRUNC,           RoundedTy,  Legal);
 1035       setOperationAction(ISD::FRINT,            RoundedTy,  Legal);
 1036       setOperationAction(ISD::FNEARBYINT,       RoundedTy,  Legal);
 1039     setOperationAction(ISD::SMAX,               MVT::v16i8, Legal);
 1040     setOperationAction(ISD::SMAX,               MVT::v4i32, Legal);
 1041     setOperationAction(ISD::UMAX,               MVT::v8i16, Legal);
 1042     setOperationAction(ISD::UMAX,               MVT::v4i32, Legal);
 1043     setOperationAction(ISD::SMIN,               MVT::v16i8, Legal);
 1044     setOperationAction(ISD::SMIN,               MVT::v4i32, Legal);
 1045     setOperationAction(ISD::UMIN,               MVT::v8i16, Legal);
 1046     setOperationAction(ISD::UMIN,               MVT::v4i32, Legal);
 1049     setOperationAction(ISD::MUL,                MVT::v4i32, Legal);
 1053     setOperationAction(ISD::VSELECT,            MVT::v16i8, Legal);
 1058       setOperationAction(ISD::SIGN_EXTEND_VECTOR_INREG, VT, Legal);
 1059       setOperationAction(ISD::ZERO_EXTEND_VECTOR_INREG, VT, Legal);
 1074     setOperationAction(ISD::INSERT_VECTOR_ELT,  MVT::v16i8, Custom);
 1080       setOperationAction(ISD::ROTL, VT, Custom);
 1084       setOperationAction(ISD::BITREVERSE, VT, Custom);
 1088       setOperationAction(ISD::BITREVERSE, VT, Custom);
 1108       setOperationAction(ISD::FFLOOR,     VT, Legal);
 1109       setOperationAction(ISD::FCEIL,      VT, Legal);
 1110       setOperationAction(ISD::FTRUNC,     VT, Legal);
 1111       setOperationAction(ISD::FRINT,      VT, Legal);
 1112       setOperationAction(ISD::FNEARBYINT, VT, Legal);
 1113       setOperationAction(ISD::FNEG,       VT, Custom);
 1114       setOperationAction(ISD::FABS,       VT, Custom);
 1115       setOperationAction(ISD::FCOPYSIGN,  VT, Custom);
 1122     setOperationAction(ISD::FP_TO_SINT,         MVT::v8i32, Legal);
 1124     setOperationAction(ISD::SINT_TO_FP,         MVT::v8i32, Legal);
 1126     setOperationAction(ISD::STRICT_FP_ROUND,    MVT::v8f32, Custom);
 1129       setOperationAction(ISD::BITCAST, MVT::v32i1, Custom);
 1134       setOperationAction(ISD::SRL, VT, Custom);
 1135       setOperationAction(ISD::SHL, VT, Custom);
 1136       setOperationAction(ISD::SRA, VT, Custom);
 1140     setOperationAction(ISD::SIGN_EXTEND,       MVT::v8i64,  Custom);
 1141     setOperationAction(ISD::SIGN_EXTEND,       MVT::v16i32, Custom);
 1142     setOperationAction(ISD::ZERO_EXTEND,       MVT::v8i64,  Custom);
 1143     setOperationAction(ISD::ZERO_EXTEND,       MVT::v16i32, Custom);
 1145     setOperationAction(ISD::ROTL,              MVT::v8i32,  Custom);
 1146     setOperationAction(ISD::ROTL,              MVT::v16i16, Custom);
 1150       setOperationAction(ISD::ROTL,            MVT::v32i8,  Custom);
 1152     setOperationAction(ISD::SELECT,            MVT::v4f64, Custom);
 1153     setOperationAction(ISD::SELECT,            MVT::v4i64, Custom);
 1154     setOperationAction(ISD::SELECT,            MVT::v8i32, Custom);
 1155     setOperationAction(ISD::SELECT,            MVT::v16i16, Custom);
 1156     setOperationAction(ISD::SELECT,            MVT::v32i8, Custom);
 1157     setOperationAction(ISD::SELECT,            MVT::v8f32, Custom);
 1160       setOperationAction(ISD::SIGN_EXTEND,     VT, Custom);
 1161       setOperationAction(ISD::ZERO_EXTEND,     VT, Custom);
 1162       setOperationAction(ISD::ANY_EXTEND,      VT, Custom);
 1165     setOperationAction(ISD::TRUNCATE,          MVT::v16i8, Custom);
 1166     setOperationAction(ISD::TRUNCATE,          MVT::v8i16, Custom);
 1167     setOperationAction(ISD::TRUNCATE,          MVT::v4i32, Custom);
 1168     setOperationAction(ISD::BITREVERSE,        MVT::v32i8, Custom);
 1171       setOperationAction(ISD::SETCC,           VT, Custom);
 1172       setOperationAction(ISD::CTPOP,           VT, Custom);
 1173       setOperationAction(ISD::CTLZ,            VT, Custom);
 1184         setOperationAction(ISD::FMA, VT, Legal);
 1188       setOperationAction(ISD::ADD, VT, HasInt256 ? Legal : Custom);
 1189       setOperationAction(ISD::SUB, VT, HasInt256 ? Legal : Custom);
 1192     setOperationAction(ISD::MUL,       MVT::v4i64,  Custom);
 1193     setOperationAction(ISD::MUL,       MVT::v8i32,  HasInt256 ? Legal : Custom);
 1194     setOperationAction(ISD::MUL,       MVT::v16i16, HasInt256 ? Legal : Custom);
 1195     setOperationAction(ISD::MUL,       MVT::v32i8,  Custom);
 1197     setOperationAction(ISD::MULHU,     MVT::v8i32,  Custom);
 1198     setOperationAction(ISD::MULHS,     MVT::v8i32,  Custom);
 1199     setOperationAction(ISD::MULHU,     MVT::v16i16, HasInt256 ? Legal : Custom);
 1200     setOperationAction(ISD::MULHS,     MVT::v16i16, HasInt256 ? Legal : Custom);
 1201     setOperationAction(ISD::MULHU,     MVT::v32i8,  Custom);
 1202     setOperationAction(ISD::MULHS,     MVT::v32i8,  Custom);
 1204     setOperationAction(ISD::ABS,       MVT::v4i64,  Custom);
 1205     setOperationAction(ISD::SMAX,      MVT::v4i64,  Custom);
 1206     setOperationAction(ISD::UMAX,      MVT::v4i64,  Custom);
 1207     setOperationAction(ISD::SMIN,      MVT::v4i64,  Custom);
 1208     setOperationAction(ISD::UMIN,      MVT::v4i64,  Custom);
 1210     setOperationAction(ISD::UADDSAT,   MVT::v32i8,  HasInt256 ? Legal : Custom);
 1211     setOperationAction(ISD::SADDSAT,   MVT::v32i8,  HasInt256 ? Legal : Custom);
 1212     setOperationAction(ISD::USUBSAT,   MVT::v32i8,  HasInt256 ? Legal : Custom);
 1213     setOperationAction(ISD::SSUBSAT,   MVT::v32i8,  HasInt256 ? Legal : Custom);
 1214     setOperationAction(ISD::UADDSAT,   MVT::v16i16, HasInt256 ? Legal : Custom);
 1215     setOperationAction(ISD::SADDSAT,   MVT::v16i16, HasInt256 ? Legal : Custom);
 1216     setOperationAction(ISD::USUBSAT,   MVT::v16i16, HasInt256 ? Legal : Custom);
 1217     setOperationAction(ISD::SSUBSAT,   MVT::v16i16, HasInt256 ? Legal : Custom);
 1220       setOperationAction(ISD::ABS,  VT, HasInt256 ? Legal : Custom);
 1221       setOperationAction(ISD::SMAX, VT, HasInt256 ? Legal : Custom);
 1222       setOperationAction(ISD::UMAX, VT, HasInt256 ? Legal : Custom);
 1223       setOperationAction(ISD::SMIN, VT, HasInt256 ? Legal : Custom);
 1224       setOperationAction(ISD::UMIN, VT, HasInt256 ? Legal : Custom);
 1228       setOperationAction(ISD::SIGN_EXTEND_VECTOR_INREG, VT, Custom);
 1229       setOperationAction(ISD::ZERO_EXTEND_VECTOR_INREG, VT, Custom);
 1235       setOperationAction(ISD::UINT_TO_FP, MVT::v8i32, Custom);
 1250       setOperationAction(ISD::MLOAD,  VT, Subtarget.hasVLX() ? Legal : Custom);
 1251       setOperationAction(ISD::MSTORE, VT, Legal);
 1258       setOperationAction(ISD::EXTRACT_SUBVECTOR, VT, Legal);
 1264       setOperationAction(ISD::BUILD_VECTOR,       VT, Custom);
 1265       setOperationAction(ISD::VECTOR_SHUFFLE,     VT, Custom);
 1266       setOperationAction(ISD::VSELECT,            VT, Custom);
 1267       setOperationAction(ISD::INSERT_VECTOR_ELT,  VT, Custom);
 1268       setOperationAction(ISD::EXTRACT_VECTOR_ELT, VT, Custom);
 1269       setOperationAction(ISD::SCALAR_TO_VECTOR,   VT, Custom);
 1270       setOperationAction(ISD::INSERT_SUBVECTOR,   VT, Legal);
 1271       setOperationAction(ISD::CONCAT_VECTORS,     VT, Custom);
 1272       setOperationAction(ISD::STORE,              VT, Custom);
 1276       setOperationAction(ISD::VSELECT, MVT::v32i8, Legal);
 1279       setOperationAction(ISD::MGATHER, MVT::v2f32, Custom);
 1280       setOperationAction(ISD::MGATHER, MVT::v2i32, Custom);
 1284         setOperationAction(ISD::MGATHER,  VT, Custom);
 1298     setOperationAction(ISD::SELECT,             MVT::v1i1, Custom);
 1299     setOperationAction(ISD::EXTRACT_VECTOR_ELT, MVT::v1i1, Custom);
 1300     setOperationAction(ISD::BUILD_VECTOR,       MVT::v1i1, Custom);
 1306     setOperationAction(ISD::FP_TO_SINT,         MVT::v2i1,  Custom);
 1307     setOperationAction(ISD::FP_TO_UINT,         MVT::v2i1,  Custom);
 1311       setOperationAction(ISD::LOAD, MVT::v1i1, Custom);
 1312       setOperationAction(ISD::LOAD, MVT::v2i1, Custom);
 1313       setOperationAction(ISD::LOAD, MVT::v4i1, Custom);
 1314       setOperationAction(ISD::LOAD, MVT::v8i1, Custom);
 1316       setOperationAction(ISD::STORE, MVT::v1i1, Custom);
 1317       setOperationAction(ISD::STORE, MVT::v2i1, Custom);
 1318       setOperationAction(ISD::STORE, MVT::v4i1, Custom);
 1319       setOperationAction(ISD::STORE, MVT::v8i1, Custom);
 1324       setOperationAction(ISD::SIGN_EXTEND, VT, Custom);
 1325       setOperationAction(ISD::ZERO_EXTEND, VT, Custom);
 1326       setOperationAction(ISD::ANY_EXTEND,  VT, Custom);
 1330       setOperationAction(ISD::ADD,              VT, Custom);
 1331       setOperationAction(ISD::SUB,              VT, Custom);
 1332       setOperationAction(ISD::MUL,              VT, Custom);
 1333       setOperationAction(ISD::SETCC,            VT, Custom);
 1334       setOperationAction(ISD::SELECT,           VT, Custom);
 1335       setOperationAction(ISD::TRUNCATE,         VT, Custom);
 1336       setOperationAction(ISD::UADDSAT,          VT, Custom);
 1337       setOperationAction(ISD::SADDSAT,          VT, Custom);
 1338       setOperationAction(ISD::USUBSAT,          VT, Custom);
 1339       setOperationAction(ISD::SSUBSAT,          VT, Custom);
 1341       setOperationAction(ISD::BUILD_VECTOR,     VT, Custom);
 1342       setOperationAction(ISD::CONCAT_VECTORS,   VT, Custom);
 1343       setOperationAction(ISD::EXTRACT_VECTOR_ELT, VT, Custom);
 1344       setOperationAction(ISD::INSERT_SUBVECTOR, VT, Custom);
 1345       setOperationAction(ISD::INSERT_VECTOR_ELT, VT, Custom);
 1346       setOperationAction(ISD::VECTOR_SHUFFLE,   VT,  Custom);
 1347       setOperationAction(ISD::VSELECT,          VT,  Expand);
 1351       setOperationAction(ISD::EXTRACT_SUBVECTOR, VT, Custom);
 1372       setOperationAction(ISD::FNEG,  VT, Custom);
 1373       setOperationAction(ISD::FABS,  VT, Custom);
 1374       setOperationAction(ISD::FMA,   VT, Legal);
 1375       setOperationAction(ISD::FCOPYSIGN, VT, Custom);
 1378     setOperationAction(ISD::FP_TO_SINT,         MVT::v16i32, Legal);
 1382     setOperationAction(ISD::FP_TO_UINT,         MVT::v16i32, Legal);
 1386     setOperationAction(ISD::SINT_TO_FP,         MVT::v16i32, Legal);
 1387     setOperationAction(ISD::UINT_TO_FP,         MVT::v16i32, Legal);
 1389     setOperationAction(ISD::STRICT_FP_ROUND,    MVT::v16f32, Custom);
 1403         setOperationAction(ISD::MLOAD,  VT, Custom);
 1404         setOperationAction(ISD::MSTORE, VT, Custom);
 1408     setOperationAction(ISD::TRUNCATE,           MVT::v8i32, Custom);
 1409     setOperationAction(ISD::TRUNCATE,           MVT::v16i16, Custom);
 1410     setOperationAction(ISD::ZERO_EXTEND,        MVT::v16i32, Custom);
 1411     setOperationAction(ISD::ZERO_EXTEND,        MVT::v8i64, Custom);
 1412     setOperationAction(ISD::ANY_EXTEND,         MVT::v16i32, Custom);
 1413     setOperationAction(ISD::ANY_EXTEND,         MVT::v8i64, Custom);
 1414     setOperationAction(ISD::SIGN_EXTEND,        MVT::v16i32, Custom);
 1415     setOperationAction(ISD::SIGN_EXTEND,        MVT::v8i64, Custom);
 1418     setOperationAction(ISD::ANY_EXTEND,         MVT::v8i8, Custom);
 1419     setOperationAction(ISD::ZERO_EXTEND,        MVT::v8i8, Custom);
 1420     setOperationAction(ISD::SIGN_EXTEND,        MVT::v8i8, Custom);
 1423       setOperationAction(ISD::FFLOOR,           VT, Legal);
 1424       setOperationAction(ISD::FCEIL,            VT, Legal);
 1425       setOperationAction(ISD::FTRUNC,           VT, Legal);
 1426       setOperationAction(ISD::FRINT,            VT, Legal);
 1427       setOperationAction(ISD::FNEARBYINT,       VT, Legal);
 1429       setOperationAction(ISD::SELECT,           VT, Custom);
 1434       setOperationAction(ISD::SIGN_EXTEND_VECTOR_INREG, VT, Custom);
 1435       setOperationAction(ISD::ZERO_EXTEND_VECTOR_INREG, VT, Custom);
 1438     setOperationAction(ISD::CONCAT_VECTORS,     MVT::v8f64,  Custom);
 1439     setOperationAction(ISD::CONCAT_VECTORS,     MVT::v8i64,  Custom);
 1440     setOperationAction(ISD::CONCAT_VECTORS,     MVT::v16f32,  Custom);
 1441     setOperationAction(ISD::CONCAT_VECTORS,     MVT::v16i32,  Custom);
 1443     setOperationAction(ISD::MUL,                MVT::v8i64, Custom);
 1444     setOperationAction(ISD::MUL,                MVT::v16i32, Legal);
 1446     setOperationAction(ISD::MULHU,              MVT::v16i32,  Custom);
 1447     setOperationAction(ISD::MULHS,              MVT::v16i32,  Custom);
 1450       setOperationAction(ISD::SMAX,             VT, Legal);
 1451       setOperationAction(ISD::UMAX,             VT, Legal);
 1452       setOperationAction(ISD::SMIN,             VT, Legal);
 1453       setOperationAction(ISD::UMIN,             VT, Legal);
 1454       setOperationAction(ISD::ABS,              VT, Legal);
 1455       setOperationAction(ISD::SRL,              VT, Custom);
 1456       setOperationAction(ISD::SHL,              VT, Custom);
 1457       setOperationAction(ISD::SRA,              VT, Custom);
 1458       setOperationAction(ISD::CTPOP,            VT, Custom);
 1459       setOperationAction(ISD::ROTL,             VT, Custom);
 1460       setOperationAction(ISD::ROTR,             VT, Custom);
 1461       setOperationAction(ISD::SETCC,            VT, Custom);
 1462       setOperationAction(ISD::SELECT,           VT, Custom);
 1471       setOperationAction(ISD::SINT_TO_FP, MVT::v8i64, Legal);
 1472       setOperationAction(ISD::UINT_TO_FP, MVT::v8i64, Legal);
 1473       setOperationAction(ISD::FP_TO_SINT, MVT::v8i64, Legal);
 1474       setOperationAction(ISD::FP_TO_UINT, MVT::v8i64, Legal);
 1476       setOperationAction(ISD::MUL,        MVT::v8i64, Legal);
 1482         setOperationAction(ISD::CTLZ,            VT, Legal);
 1488         setOperationAction(ISD::CTPOP, VT, Legal);
 1496       setOperationAction(ISD::EXTRACT_SUBVECTOR, VT, Legal);
 1499       setOperationAction(ISD::VECTOR_SHUFFLE,      VT, Custom);
 1500       setOperationAction(ISD::INSERT_VECTOR_ELT,   VT, Custom);
 1501       setOperationAction(ISD::BUILD_VECTOR,        VT, Custom);
 1502       setOperationAction(ISD::VSELECT,             VT, Custom);
 1503       setOperationAction(ISD::EXTRACT_VECTOR_ELT,  VT, Custom);
 1504       setOperationAction(ISD::SCALAR_TO_VECTOR,    VT, Custom);
 1505       setOperationAction(ISD::INSERT_SUBVECTOR,    VT, Legal);
 1506       setOperationAction(ISD::MLOAD,               VT, Legal);
 1507       setOperationAction(ISD::MSTORE,              VT, Legal);
 1508       setOperationAction(ISD::MGATHER,             VT, Custom);
 1509       setOperationAction(ISD::MSCATTER,            VT, Custom);
 1513       setOperationAction(ISD::BITCAST, MVT::v32i16, Custom);
 1514       setOperationAction(ISD::BITCAST, MVT::v64i8,  Custom);
 1517       setOperationAction(ISD::BITREVERSE, MVT::v8i64, Custom);
 1518       setOperationAction(ISD::BITREVERSE, MVT::v16i32, Custom);
 1523         setOperationAction(ISD::FSHL, VT, Custom);
 1524         setOperationAction(ISD::FSHR, VT, Custom);
 1537     setOperationAction(ISD::FP_TO_UINT,         MVT::v8i32, Legal);
 1538     setOperationAction(ISD::FP_TO_UINT,         MVT::v4i32, Legal);
 1539     setOperationAction(ISD::FP_TO_UINT,         MVT::v2i32, Custom);
 1540     setOperationAction(ISD::UINT_TO_FP,         MVT::v8i32, Legal);
 1541     setOperationAction(ISD::UINT_TO_FP,         MVT::v4i32, Legal);
 1544       setOperationAction(ISD::SMAX, VT, Legal);
 1545       setOperationAction(ISD::UMAX, VT, Legal);
 1546       setOperationAction(ISD::SMIN, VT, Legal);
 1547       setOperationAction(ISD::UMIN, VT, Legal);
 1548       setOperationAction(ISD::ABS,  VT, Legal);
 1552       setOperationAction(ISD::ROTL,     VT, Custom);
 1553       setOperationAction(ISD::ROTR,     VT, Custom);
 1557     setOperationAction(ISD::MSCATTER, MVT::v2f32, Custom);
 1558     setOperationAction(ISD::MSCATTER, MVT::v2i32, Custom);
 1562       setOperationAction(ISD::MSCATTER, VT, Custom);
 1566         setOperationAction(ISD::SINT_TO_FP,     VT, Legal);
 1567         setOperationAction(ISD::UINT_TO_FP,     VT, Legal);
 1568         setOperationAction(ISD::FP_TO_SINT,     VT, Legal);
 1569         setOperationAction(ISD::FP_TO_UINT,     VT, Legal);
 1571         setOperationAction(ISD::MUL,            VT, Legal);
 1577         setOperationAction(ISD::CTLZ,            VT, Legal);
 1583         setOperationAction(ISD::CTPOP, VT, Legal);
 1595       setOperationAction(ISD::ADD,                VT, Custom);
 1596       setOperationAction(ISD::SUB,                VT, Custom);
 1597       setOperationAction(ISD::MUL,                VT, Custom);
 1598       setOperationAction(ISD::VSELECT,            VT, Expand);
 1599       setOperationAction(ISD::UADDSAT,            VT, Custom);
 1600       setOperationAction(ISD::SADDSAT,            VT, Custom);
 1601       setOperationAction(ISD::USUBSAT,            VT, Custom);
 1602       setOperationAction(ISD::SSUBSAT,            VT, Custom);
 1604       setOperationAction(ISD::TRUNCATE,           VT, Custom);
 1605       setOperationAction(ISD::SETCC,              VT, Custom);
 1606       setOperationAction(ISD::EXTRACT_VECTOR_ELT, VT, Custom);
 1607       setOperationAction(ISD::INSERT_VECTOR_ELT,  VT, Custom);
 1608       setOperationAction(ISD::SELECT,             VT, Custom);
 1609       setOperationAction(ISD::BUILD_VECTOR,       VT, Custom);
 1610       setOperationAction(ISD::VECTOR_SHUFFLE,     VT, Custom);
 1613     setOperationAction(ISD::CONCAT_VECTORS,     MVT::v32i1, Custom);
 1614     setOperationAction(ISD::CONCAT_VECTORS,     MVT::v64i1, Custom);
 1615     setOperationAction(ISD::INSERT_SUBVECTOR,   MVT::v32i1, Custom);
 1616     setOperationAction(ISD::INSERT_SUBVECTOR,   MVT::v64i1, Custom);
 1618       setOperationAction(ISD::EXTRACT_SUBVECTOR, VT, Custom);
 1621     setOperationAction(ISD::SIGN_EXTEND,        MVT::v32i8, Custom);
 1622     setOperationAction(ISD::ZERO_EXTEND,        MVT::v32i8, Custom);
 1623     setOperationAction(ISD::ANY_EXTEND,         MVT::v32i8, Custom);
 1634     setOperationAction(ISD::SIGN_EXTEND,        MVT::v64i8, Custom);
 1635     setOperationAction(ISD::ZERO_EXTEND,        MVT::v64i8, Custom);
 1636     setOperationAction(ISD::ANY_EXTEND,         MVT::v64i8, Custom);
 1638     setOperationAction(ISD::MUL,                MVT::v32i16, Legal);
 1639     setOperationAction(ISD::MUL,                MVT::v64i8, Custom);
 1640     setOperationAction(ISD::MULHS,              MVT::v32i16, Legal);
 1641     setOperationAction(ISD::MULHU,              MVT::v32i16, Legal);
 1642     setOperationAction(ISD::MULHS,              MVT::v64i8, Custom);
 1643     setOperationAction(ISD::MULHU,              MVT::v64i8, Custom);
 1644     setOperationAction(ISD::CONCAT_VECTORS,     MVT::v32i16, Custom);
 1645     setOperationAction(ISD::CONCAT_VECTORS,     MVT::v64i8, Custom);
 1646     setOperationAction(ISD::INSERT_SUBVECTOR,   MVT::v32i16, Legal);
 1647     setOperationAction(ISD::INSERT_SUBVECTOR,   MVT::v64i8, Legal);
 1648     setOperationAction(ISD::EXTRACT_VECTOR_ELT, MVT::v32i16, Custom);
 1649     setOperationAction(ISD::EXTRACT_VECTOR_ELT, MVT::v64i8, Custom);
 1650     setOperationAction(ISD::SCALAR_TO_VECTOR,   MVT::v32i16, Custom);
 1651     setOperationAction(ISD::SCALAR_TO_VECTOR,   MVT::v64i8, Custom);
 1652     setOperationAction(ISD::SIGN_EXTEND,        MVT::v32i16, Custom);
 1653     setOperationAction(ISD::ZERO_EXTEND,        MVT::v32i16, Custom);
 1654     setOperationAction(ISD::ANY_EXTEND,         MVT::v32i16, Custom);
 1655     setOperationAction(ISD::VECTOR_SHUFFLE,     MVT::v32i16, Custom);
 1656     setOperationAction(ISD::VECTOR_SHUFFLE,     MVT::v64i8, Custom);
 1657     setOperationAction(ISD::INSERT_VECTOR_ELT,  MVT::v32i16, Custom);
 1658     setOperationAction(ISD::INSERT_VECTOR_ELT,  MVT::v64i8, Custom);
 1659     setOperationAction(ISD::TRUNCATE,           MVT::v32i8, Custom);
 1660     setOperationAction(ISD::BITREVERSE,         MVT::v64i8, Custom);
 1662     setOperationAction(ISD::SIGN_EXTEND_VECTOR_INREG, MVT::v32i16, Custom);
 1663     setOperationAction(ISD::ZERO_EXTEND_VECTOR_INREG, MVT::v32i16, Custom);
 1668       setOperationAction(ISD::BUILD_VECTOR, VT, Custom);
 1669       setOperationAction(ISD::VSELECT,      VT, Custom);
 1670       setOperationAction(ISD::ABS,          VT, Legal);
 1671       setOperationAction(ISD::SRL,          VT, Custom);
 1672       setOperationAction(ISD::SHL,          VT, Custom);
 1673       setOperationAction(ISD::SRA,          VT, Custom);
 1674       setOperationAction(ISD::MLOAD,        VT, Legal);
 1675       setOperationAction(ISD::MSTORE,       VT, Legal);
 1676       setOperationAction(ISD::CTPOP,        VT, Custom);
 1677       setOperationAction(ISD::CTLZ,         VT, Custom);
 1678       setOperationAction(ISD::SMAX,         VT, Legal);
 1679       setOperationAction(ISD::UMAX,         VT, Legal);
 1680       setOperationAction(ISD::SMIN,         VT, Legal);
 1681       setOperationAction(ISD::UMIN,         VT, Legal);
 1682       setOperationAction(ISD::SETCC,        VT, Custom);
 1683       setOperationAction(ISD::UADDSAT,      VT, Legal);
 1684       setOperationAction(ISD::SADDSAT,      VT, Legal);
 1685       setOperationAction(ISD::USUBSAT,      VT, Legal);
 1686       setOperationAction(ISD::SSUBSAT,      VT, Legal);
 1687       setOperationAction(ISD::SELECT,       VT, Custom);
 1701         setOperationAction(ISD::CTPOP, VT, Legal);
 1705       setOperationAction(ISD::FSHL, MVT::v32i16, Custom);
 1706       setOperationAction(ISD::FSHR, MVT::v32i16, Custom);
 1712       setOperationAction(ISD::MLOAD,  VT, Subtarget.hasVLX() ? Legal : Custom);
 1713       setOperationAction(ISD::MSTORE, VT, Subtarget.hasVLX() ? Legal : Custom);
 1722         setOperationAction(ISD::CTPOP, VT, Legal);
 1742       setOperationAction(ISD::SINT_TO_FP,    MVT::v2f32, Custom);
 1746       setOperationAction(ISD::FP_TO_SINT,    MVT::v2f32, Custom);
 1747       setOperationAction(ISD::FP_TO_UINT,    MVT::v2f32, Custom);
 1759         setOperationAction(ISD::FSHL, VT, Custom);
 1760         setOperationAction(ISD::FSHR, VT, Custom);
 1764     setOperationAction(ISD::TRUNCATE, MVT::v16i32, Custom);
 1765     setOperationAction(ISD::TRUNCATE, MVT::v8i64, Custom);
 1766     setOperationAction(ISD::TRUNCATE, MVT::v16i64, Custom);
 1770   setOperationAction(ISD::INTRINSIC_WO_CHAIN, MVT::Other, Custom);
 1771   setOperationAction(ISD::INTRINSIC_W_CHAIN, MVT::Other, Custom);
 1772   setOperationAction(ISD::INTRINSIC_VOID, MVT::Other, Custom);
 1774     setOperationAction(ISD::INTRINSIC_W_CHAIN, MVT::i64, Custom);
 1787     setOperationAction(ISD::SADDO, VT, Custom);
 1788     setOperationAction(ISD::UADDO, VT, Custom);
 1789     setOperationAction(ISD::SSUBO, VT, Custom);
 1790     setOperationAction(ISD::USUBO, VT, Custom);
 1791     setOperationAction(ISD::SMULO, VT, Custom);
 1792     setOperationAction(ISD::UMULO, VT, Custom);
 1795     setOperationAction(ISD::ADDCARRY, VT, Custom);
 1796     setOperationAction(ISD::SUBCARRY, VT, Custom);
 1797     setOperationAction(ISD::SETCCCARRY, VT, Custom);
 1811     setOperationAction(ISD::FSINCOS, MVT::f64, Custom);
 1812     setOperationAction(ISD::FSINCOS, MVT::f32, Custom);
 1816     setOperationAction(ISD::SDIV, MVT::i128, Custom);
 1817     setOperationAction(ISD::UDIV, MVT::i128, Custom);
 1818     setOperationAction(ISD::SREM, MVT::i128, Custom);
 1819     setOperationAction(ISD::UREM, MVT::i128, Custom);
 1820     setOperationAction(ISD::SDIVREM, MVT::i128, Custom);
 1821     setOperationAction(ISD::UDIVREM, MVT::i128, Custom);
 1834         setOperationAction(Op, MVT::f32, Promote);
lib/Target/XCore/XCoreISelLowering.cpp
   91   setOperationAction(ISD::BR_CC,     MVT::i32,   Expand);
   92   setOperationAction(ISD::SELECT_CC, MVT::i32,   Expand);
   95   setOperationAction(ISD::ADD, MVT::i64, Custom);
   96   setOperationAction(ISD::SUB, MVT::i64, Custom);
   97   setOperationAction(ISD::SMUL_LOHI, MVT::i32, Custom);
   98   setOperationAction(ISD::UMUL_LOHI, MVT::i32, Custom);
   99   setOperationAction(ISD::MULHS, MVT::i32, Expand);
  100   setOperationAction(ISD::MULHU, MVT::i32, Expand);
  101   setOperationAction(ISD::SHL_PARTS, MVT::i32, Expand);
  102   setOperationAction(ISD::SRA_PARTS, MVT::i32, Expand);
  103   setOperationAction(ISD::SRL_PARTS, MVT::i32, Expand);
  106   setOperationAction(ISD::CTPOP, MVT::i32, Expand);
  107   setOperationAction(ISD::ROTL , MVT::i32, Expand);
  108   setOperationAction(ISD::ROTR , MVT::i32, Expand);
  110   setOperationAction(ISD::TRAP, MVT::Other, Legal);
  113   setOperationAction(ISD::BR_JT, MVT::Other, Custom);
  115   setOperationAction(ISD::GlobalAddress, MVT::i32,   Custom);
  116   setOperationAction(ISD::BlockAddress, MVT::i32 , Custom);
  119   setOperationAction(ISD::ConstantPool, MVT::i32,   Custom);
  132   setOperationAction(ISD::LOAD, MVT::i32, Custom);
  133   setOperationAction(ISD::STORE, MVT::i32, Custom);
  136   setOperationAction(ISD::VAEND, MVT::Other, Expand);
  137   setOperationAction(ISD::VACOPY, MVT::Other, Expand);
  138   setOperationAction(ISD::VAARG, MVT::Other, Custom);
  139   setOperationAction(ISD::VASTART, MVT::Other, Custom);
  142   setOperationAction(ISD::STACKSAVE, MVT::Other, Expand);
  143   setOperationAction(ISD::STACKRESTORE, MVT::Other, Expand);
  144   setOperationAction(ISD::DYNAMIC_STACKALLOC, MVT::i32, Expand);
  147   setOperationAction(ISD::EH_RETURN, MVT::Other, Custom);
  148   setOperationAction(ISD::FRAME_TO_ARGS_OFFSET, MVT::i32, Custom);
  153   setOperationAction(ISD::ATOMIC_FENCE, MVT::Other, Custom);
  154   setOperationAction(ISD::ATOMIC_LOAD, MVT::i32, Custom);
  155   setOperationAction(ISD::ATOMIC_STORE, MVT::i32, Custom);
  158   setOperationAction(ISD::INIT_TRAMPOLINE, MVT::Other, Custom);
  159   setOperationAction(ISD::ADJUST_TRAMPOLINE, MVT::Other, Custom);
  162   setOperationAction(ISD::INTRINSIC_WO_CHAIN, MVT::Other, Custom);