namespace ARMeilleure.CodeGen.Arm64
{
    enum IntrinsicType
    {
        ScalarUnary,
        ScalarUnaryByElem,
        ScalarBinary,
        ScalarBinaryByElem,
        ScalarBinaryFPByElem,
        ScalarBinaryRd,
        ScalarBinaryShl,
        ScalarBinaryShr,
        ScalarFcsel,
        ScalarFmovi,
        ScalarFPCompare,
        ScalarFPCompareCond,
        ScalarFPConv,
        ScalarFPConvFixed,
        ScalarFPConvFixedGpr,
        ScalarFPConvGpr,
        ScalarTernary,
        ScalarTernaryFPRdByElem,
        ScalarTernaryShlRd,
        ScalarTernaryShrRd,

        VectorUnary,
        VectorUnaryBitwise,
        VectorUnaryByElem,
        VectorBinary,
        VectorBinaryBitwise,
        VectorBinaryBitwiseImm,
        VectorBinaryByElem,
        VectorBinaryFPByElem,
        VectorBinaryRd,
        VectorBinaryShl,
        VectorBinaryShr,
        VectorExt,
        VectorFmovi,
        VectorFPConvFixed,
        VectorInsertByElem,
        VectorLdSt,
        VectorLdStSs,
        VectorLookupTable,
        VectorMovi,
        VectorMvni,
        VectorTernaryFPRdByElem,
        VectorTernaryRd,
        VectorTernaryRdBitwise,
        VectorTernaryRdByElem,
        VectorTernaryShlRd,
        VectorTernaryShrRd,

        Vector128Unary,
        Vector128Binary,

        GetRegister,
        SetRegister
    }
}